Mines Logo

Course Code: CSCI 341 Computer Organization

Semester Year: Spring 2021, January 12 - May 14

Credit Hours: 3.0

Class Meeting Times: Section C: 3:00-3:50 pm MWF

Class Location: Zoom (links on Canvas)

This is a long document; some content you may see in other syllabi, some is specific to this course. Do not assume 262 policies apply in this class - this syllabus lays out this course’s policies. Be sure to read it all, so you are aware of this course’s policies and expectations.


Instructor: Prof. Amelia Read read (at) mines (dot) edu
Office Phone: 720-432-2366 (cell)
Office Hours: 10am-11:30am Monday, 2pm-4pm Tuesday, 6pm-7:30pm Wednesday or by arrangement on Thursday or Friday (link in Canvas)

Course Coordinator: Dr. Qi Han qhan (at) mines (dot) edu

Teaching Assistants (TAs)

(shared with Sections A & B)


Prerequisites

The prerequisite is CSCI-261 Programming Concepts. The corequisite is CSCI-262 Data Structures

This course includes programming in MIPS assembly, applying concepts from CSCI 261 and CSCI 262.

Required Technology

Online Community and Communication

Course flow, grades, quizzes, homework, and programming assignments will be provided and submitted on Canvas. Please upload a profile picture similar to the type used on your blaster card, so we can all get to know each other in this online format.

That profile picture should also be used on Zoom and Piazza.

We use Piazza in the class for communicating with the instructor, TAs, and your classmates.


Welcome to Computer Organization

We are going to make use of your programming skills to explore the simplest, yet most complex, of computer languages, assembly. Assembly is the bridge between software and hardware - the software/hardware interface - so it will show us how a CPU behaves, what compilers have to consider, and what memory-constrained devices have to deal with. These are critical skills in the current technological world of gaming, hacking, and big data.

Course Description

CSCI 341 covers the basic concepts of computer architecture and organization. Topics include machine level instructions and operating system calls used to write programs in assembly language, computer arithmetics, performance, processor design, and pipelining techniques. This course provides insight into the way computers operate at the machine level.

Learning Outcomes

At the end of this course, students will be able to:

  1. Recognize and manipulate numbers stored in digital computers
  2. Utilize the MIPS instruction set to translate snippets of C programs to assembly and vice-versa
  3. Describe the interface between the MIPS instruction set and hardware
  4. Build a five-stage pipelined datapath from a single-cycle datapath to execute a selected set of MIPS instructions
  5. Explain principle of locality and its relationship to memory hierarchy
  6. Measure CPU performance from IC, CPI, and CC Time

Textbook and Other Reading Materials

NOTE: the following resource is REQUIRED. I assign readings and activities in the zyBook.

Assessments

Reading activities: You will be working on activities in the zyBook to show an understanding of the material provided in the text, due before the class the reading applies to; these activities show a basic understanding of the material and comprise 5% of your course grade.

Quizzes: You will have a timed quiz to complete each Friday, consisting of questions based on that week’s material. The quiz is open for 20 minutes once started, or adjusted per accommodations. These quizzes show further understanding of the material and comprise 20% of your course grade. One submission only is permitted; be on a reliable internet connection when you start the quiz.

Homework will show a deeper comprehension of the material, giving you an opportunity to apply what you have learned in new scenarios not covered in the book or class. These will be topical questions or programming assignments. The programming assignments will help you develop your skills with assembly language, while the topical questions will further prepare you for the assessments made in the midterms and final exams as well as showing the ability apply the material learned. These will generally be due on Tuesdays, with some adjustments around school closures. The homeworks comprise 20% of your course grade.

Midterm and Final: The exams are comprehensive assessments giving you an opportunity to show that the material has been internalized and can be applied in time-limited situations. The midterm is 25% of your course grade, and the final exam is 30% of your course grade.

Grading Policy

The following percentages show how final grades will be calculated.

item percentage
reading activities 5%
quizzes 20%
homeworks 20%
midterm 25%
final exam 30%

Letter grades will be calculated based on the following intervals:

+ interval -
  A (93+) A– (93- to 90+)
B+ (90- to 87+) B (87- to 83+) B– (83- to 80+)
C+ (80- to 77+) C (77- to 73+) C– (73- to 70+)
D+ (70- to 67+) D (67- to 63+) D– (63- to 60+)
  F (60-)  

Coursework Return Policy

We aim to return on-time coursework with feedback and grades within 4 days of the due date if submitted on time. Reading and quizzes are usually auto-graded, if manual re-grading is required it will be completed within 4 days of your request. We aim to return late coursework within 1 week of its submission. If outside events slow the return of coursework, students will be notified along with an expected return date.

If you do not understand from the feedback provided on your coursework how to improve your learning performance, please contact your instructor.

Expectations for Success

Zoom Etiquette

Our class size is large, so please follow these for a successful class session:

Pandemic Policies

Mines has put in place several policies related to course management during the pandemic. Those policies will be applied as appropriate to this class, and may impact existing policies.

Oredigger Promise: We Climb Together

Orediggers climb together. Orediggers look out for each other.

It will take a shared commitment from each and every one of us to stop the spread of COVID-19, open campus and be together at Mines this year. We take great pride in being a top engineering and applied sciences university and we will strive to be the exemplar in preventing the spread of COVID-19 in a university setting.

Therefore, as a member of the Oredigger community, I promise to protect classmates and colleagues, our families and neighbors, and myself by adopting the practices and attitudes summarized below; I will:

Expectations of online etiquette or netiquette

Here are few do’s and don’ts about communicating in your course through emails or in online discussion forums (Piazza and Canvas):

Diversity and Inclusion

At Colorado School of Mines, we understand that a diverse and inclusive learning environment inspires creativity and innovation, which are essential to the engineering process. We also know that in order to address current and emerging national and global challenges, it is important to learn with and from people who have different backgrounds, thoughts, and experiences.

Our students represent every state in the nation and more than 90 countries around the world, and we continue to make progress in the areas of diversity and inclusion by providing Diversity and Inclusion programs and services to support these efforts.

Disability Support Services

The Colorado School of Mines is committed to ensuring the full participation of all students in its programs, including students with disabilities. If you anticipate or experience any barriers to learning in this course, please feel welcome to discuss your concerns with me. Students with disabilities may also wish to contact Disability Support Services (DSS) to discuss options to removing barriers in this course, including how to register and request official accommodations. Please visit their website at disabilities.mines.edu for contact and additional information. If you have already been approved for accommodations through DSS, please meet with me at your earliest convenience so we can discuss your needs in this course.

Accessibility within Canvas

Read the Accessibility Statement from Canvas to see how the learning management system at the Colorado School of Mines is committed to providing a system that is usable by everyone. The Canvas platform was built using the most modern HTML and CSS technologies, and is committed to W3C’s Web Accessibility Initiative and Section 508 guidelines.

Discrimination, Harassment, and Title IX

All learning opportunities at Mines, including this course, require a safe environment for everyone to be productive and able to share and learn without fear of discrimination or harassment. Mines’ core values of respect, diversity, compassion, and collaboration will be honored in this course, and the standards in this class are the same as those expected in any professional work environment. (More information can be found here.) Discrimination or harassment of any type will not be tolerated. As a participant in this course, we expect you to respect your instructor and your classmates. As your instructor, it is my responsibility to foster a learning environment that supports diversity of thoughts, perspectives and experiences, and honors your identities.

To help accomplish this:

In this course, we will cultivate a community that supports survivors, prevents interpersonal violence, and promotes a harassment free environment. Title IX and Colorado State law protects individuals from discrimination based on sex and gender in educational programs and activities. Mines takes this obligation seriously and is committed to providing a campus community free from gender and sex-based discrimination.

Discrimination, including sexual harassment, sexual violence, dating violence, domestic violence, and stalking, is prohibited and will not be tolerated within the Mines campus community. If these issues have affected you or someone you know, you can access the appropriate resources here: http://www.mines.edu/title-ix/. You can also contact the Mines Title IX Coordinator, Camille Torres, at 303.384.2124 or titleix@mines.edu for more information.

It’s on us, all of the Mines community, to engineer a culture of respect.

CARE @ Mines

If you feel overwhelmed, anxious, depressed, distressed, mentally or physically unhealthy, or concerned about your wellbeing overall, there are resources both on- and off-campus available to you. If you need assistance, please ask for help form a trusted faculty or staff member, fellow student, or any of the resources below. As a community of care, we can help one another get through difficult times. If you need help, reach out. If you are concerned for another student, offer assistance and/or ask for help on their behalf. Students seeking resources for themselves or others should visit care.mines.edu.

Additional suggestions for referrals for support, depending on comfort level and needs include:

All of these options are available for free for students. The Counseling Center, Health Center, and Colorado Crisis Services are confidential resources. The Counseling Center will also make referrals to off-campus counselors, if preferred.

In an emergency, you should call 911, and they will dispatch a Mines or Golden PD officer to assist.

Absence Policy

The Student Absences webpage outlines CSM’s policy regarding student absences. It contains information and documents to obtain excused absences.

Note: All absences that are not documented as excused absences are considered unexcused absences. Faculty members may deny a student the opportunity to make up some or all of the work missed due to unexcused absence(s). However, the faculty members do have the discretion to grant a student permission to make up any missed academic work for an unexcused absence. The faculty member may consider the student’s class performance, as well as their attendance, in the decision.

In the case of an absence, the student is responsible for determining what work was missed and for putting forth a good faith effort to review the material on their own.

Policy on Academic Integrity/Misconduct

The Colorado School of Mines affirms the principle that all individuals associated with the Mines academic community have a responsibility for establishing, maintaining an fostering an understanding and appreciation for academic integrity. In broad terms, this implies protecting the environment of mutual trust within which scholarly exchange occurs, supporting the ability of the faculty to fairly and effectively evaluate every student’s academic achievements, and giving credence to the university’s educational mission, its scholarly objectives and the substance of the degrees it awards. The protection of academic integrity requires there to be clear and consistent standards, as well as confrontation and sanctions when individuals violate those standards. The Colorado School of Mines desires an environment free of any and all forms of academic misconduct and expects students to act with integrity at all times.

Academic misconduct is the intentional act of fraud, in which an individual seeks to claim credit for the work and efforts of another without authorization, or uses unauthorized materials or fabricated information in any academic exercise. Student Academic Misconduct arises when a student violates the principle of academic integrity. Such behavior erodes mutual trust, distorts the fair evaluation of academic achievements, violates the ethical code of behavior upon which education and scholarship rest, and undermines the credibility of the university. Because of the serious institutional and individual ramifications, student misconduct arising from violations of academic integrity is not tolerated at Mines. If a student is found to have engaged in such misconduct sanctions such as change of a grade, loss of institutional privileges, or academic suspension or dismissal may be imposed.

The complete policy can be found in the Mines’ Policy Library.

In addition to the Mines policy, CS@Mines faculty have adopted a Collaboration Policy for all courses. This policy is a minimum standard; we augment this policy below. Read the CS@Mines Collaboration Policy, and be sure to note these items also:

For CSCI 341, we also apply these collaboration items:

If you are aware of students violating this policy, you are encouraged to inform me (the instructor). Violating this policy will be treated as an academic misconduct for all students involved (both the provider and the receiver of answers).

NOTE: All issues of misconduct are reported to the Dean of Students. Academic misconduct may result in course failure for all students involved and an entry on your school record.


Course Schedule

This schedule is tentative, and is subject to change. Note, reading includes activities in the zyBook; those are required to be completed prior to the start of class. Assignments are due the date they are listed unless a due date is given in parentheses.

Please check Canvas for any updates to this schedule.

week date topic reading assignments
    MODULE 1: Overview and Computer Numbers    
1 1/13 Introduction, Integers Syllabus, 1.1 - 1.6 HW 1 (1/20)
  1/15 Integers, Floating point representation 1.7 Quiz 1
2 1/18 no class    
  1/20 Floating point representation 1.7 HW 2 (1/26)
    MODULE 2: Assembly Programming in MIPS    
  1/22 Arithmetic instructions, MARS introduction 2.1-2.4, Canvas  
2 1/25 Memory access instructions 2.5-2.6  
  1/27 Memory access continued 2.5-2.6 HW 3 (2/2)
  1/29 Bit-wise instructions 2.7 Quiz 3
4 2/1 Decision making instructions 2.8  
  2/3 Programming examples 8.1-8.5 HW 4 (2/9)
  2/5 Inequality comparison 2.9 Quiz 4
5 2/8 Arrays vs. pointers 2.9  
  2/10 Procedures 2.10 HW 5 (2/17)
  2/12 Procedure conventions 8.6, Canvas Quiz 5
6 2/15 no class    
  2/17 Nested procedure calls 2.10, 2.11 HW 6 (2/23)
  2/19 Procedure examples   Quiz 6
7 2/22 Instruction formats overview 2.12  
  2/24 l format (lui, lw, sw), branch formats 2.12, 2.13 HW 7 (3/2)
  2/26 conditional and unconditional branch instruction formats 2.13 Quiz 7
8   MODULE 3: Computer Arithmetic    
  3/1 Computer arithmetic (+,-) 3.1-3.2  
  3/3 Computer arithmetic (mult. algorithms) 3.3 HW 8 (3/9)
  3/5 Computer arithmetic (division algorithms) 3.4 Quiz 8
9 3/8 Floating Point arithmetic 1.7 (no HW)
  3/10 FP arithmetic 1.7  
  TBD Midterm 1, 2, 3 Common Exam Schedule
    Module 4: CPU Data Pipeline    
  3/12 CPU performance evaluation 4.1, 4.2 Quiz 9
10 3/15 Single cycle processor design overview 5.1-5.3  
  3/17 R format, Load/store, branch instruction design 5.3 HW 9 (3/23)
  3/19 Control design 5.4 Quiz 10
11 3/22 single cycle datapath and control integrated 5.4  
  3/24 SC Performance   HW 10 (4/6)
  3/26 Pipelining overview 5.5 Quiz 11
SB 3/29 no class    
  3/31 no class    
  4/2 no class    
12 4/5 Pipelined datapath 5.6  
  4/7 Pipeline control 5.6 HW 11 (4/13)
  4/9 Data hazard 5.7 Quiz 12
13 4/12 Data & Control hazards 5.7-5.8  
  4/14 Control hazards 5.8 HW 12 (4/20)
  4/16 no class    
14 4/19 Hazards interactions 5.7-5.8 Quiz 13
    Module 5: Memory Hierarchy    
  4/21 Memory Hierarchy Basics 6.1-6.3 HW 13 (4/27)
  4/23 Direct-mapped caches 6.3 Quiz 14
15 4/26 Full/set associative cache design 6.4  
  4/28 Cache access 6.4 HW 14 (5/4)
  4/30 Virtual memory basics 6.7 Quiz 15
16 5/3 review week 1 - 6  
  5/5 review week 1 - 6  
F TBD Final Exam    
  5/7 no class (final exam week)    
  5/10 no class (final exam week)    
  5/12 no class (final exam week)    

Maintenance Clause

This syllabus is intended to give students guidance on this course this semester and will be followed as closely as possible. The instructor reserves the right to modify, supplement and make changes as the course needs arise. This syllabus is not a legal document; common sense rules always apply, e.g., no late assignments will be accepted after the solutions are discussed or available.