CSCI 210: Computer Organization

Semester: Spring 2013
Room: King 127
Class Time: Mon/Wed/Fri 10am-10:50am
Office Hours: Monday, 3:30pm - 4:30pm
Thursday, 4:30pm - 5:30pm
or by appointment
Professor: Cynthia Taylor
email: ctaylor AT oberlin edu
Please include "cs210" in the subject.
Office: King 229
Phone: x58424



(Subject to change)
1 Feb 04   Course Overview Number Conversion
Feb 06 General overview of machine language and assembly language. Basic characteristics. Why we use assembly language to study machine language. (Read Sections 1.2)
Feb 08 Computer system organization overview. CPU. Memory. Secondary memory. I/O. (Read Section 1.3)
2 Feb 11   Billions of Cores (Read Sections 1.5, 1.6)
Feb 13 Introduction to MIPS assembly language, Registers and Memory (Read Sections 2.2-2.3)
Feb 15 Binary and hexadecimal numbers (Read Wikipedia on Radix, Binary (only Representation, Counting))
3 Feb 18   Negative integers. 2's complement. Overflow (Read Section 2.4)
Feb 20 How MIPS instructions are represented in the computer (Read Section 2.5)
Feb 22 Bit-level operations in Java. (Read Section 2.6) MIPS assignment
4 Feb 25   Conditional branch instructions. (Read Section 2.7)
Feb 27 The run-time stack. Implementing functions and procedures. Function and procedure examples. (Read Section 2.8)
Mar 01 MIPS Addressing (Read Section 2.10)
  Mar 04 Oberlin Cancels Classes
Mar 06 Cynthia at Conference
Mar 08
5 Mar 11   More MIPS (Read Assignment 2)
Mar 13 Translating and Starting a Program (Read Section 2.12)
Mar 15 Digital logic. Gates and combinational circuits. Truth tables. (Read Sections C2)
6 Mar 18   Decoders, multiplexers, PLAs. Sum of Products. (Read Section C3 (Skip Sections on ROMs and Don't Cares))
Mar 20 Review for Midterm
Mar 22 Midterm Exam
  Mar 25 Spring Break
Mar 27
Mar 29
7 Apr 01   Half- and full-adders. n-bit adder. (Read Section C5) DLSIM assignment, Parts 1 and 2
Apr 03 Carry Look-ahead Adder (Read Section C6)
Apr 05 Clocks, Latches and Flip-flops (Read Section C7, C8. Skip Verilog.)
8 Apr 08   Performance (Read Section 1.4, 1.8)
Apr 10 Multiplication and Floating Point (Read Section 3.3,3.5 (to page 260)) DLSIM assignment, Part 3
Apr 12 Datapath (Read Section 4.3)
9 Apr 15   Implementation (Read Section 4.4)
Apr 17 Pipelining (Read Section 4.5) Floating Point
Apr 19 Pipelined Datapath (Read Section 4.6)
10 Apr 22   Data Hazards (Read Section 4.7)
Apr 24 Floating Point Review (Read Assignment 2)
Apr 26 Control Hazards (Read Section 4.8)
11 Apr 29   Caches (Read Section 5.1-5.2) Cache Simulator
May 01 Improving Cache Performance (Read Section 5.3)
May 03 Virtual Memory (Read Section 5.4 (to page 498))
12 May 06   Virtual Memory (Read Section 5.4 (page 498 to end))
May 08 Review for Final
May 10  
  May 15 Final Exam 7-9 pm

Course Description

Course Outline

  1. Digital Logic Design
  2. Assembly Programming
  3. Instruction Set Architecture
  4. Computer System Performance and Performance Metrics
  5. Computer Arithmetic and Number Systems
  6. CPU Architecture
  7. Pipelining
  8. The Memory/Cache Hierarchy

Goals and course objectives

Students who successfully complete this course will be versed in digital logic, assembly programming, and modern processor design including topics from the course outline above. In addition to understanding processor design constraints, students will understand how processor design impacts the design of their programs. Lastly, students will conduct class projects (labs) which will solidify these concepts and introduce them to architecture research.


The text for the course is Computer Organization and Design, 4th Ed (Revised), by Patterson and Hennessy. It is absolutely required that you have one of these books, as there will be daily quizzes based on the required readings.

Patterson and Hennessy

Computer Organization and Design by Patterson and Hennessy


Course grades will be calculated based on the following distribution:

Course Policy

Peer Instruction

We will be using Peer Instruction, a teaching model which places stronger emphasis on classroom discussion and student interaction. As part of this, you will be assigned an iClicker, which you will need to register. You will be expected to attend all lectures, having completed the assigned reading and ready to discuss with your classmates.


I allow for three missed classes by dropping the three lowest quiz scores. If you attend all the classes, you will be rewarded by having your low grades dropped!


You are expected to complete these labs on your own. However, you are free to discuss them with your fellow students, and encouraged to post questions about them on Blackboard. A good rule of thumb is discuss with your classmates away from your computer, and to wait fifteen or twenty minutes between the discussion and when you make changes to your code. Labs will be due on Sunday at 8 pm.

According to college policy, every assignment must include the following signed statement:

"I have adhered to the Honor Code in this assignment."

Please include this statement in your lab headers, along with your name.

Late assignments will be penalized according to the following chart. Extra credit will not be accepted after the initial deadline.


There is a forum for this class on Blackboard. You are encouraged to use this forum as a vehicle to ask questions about the class and the labs, and to answer each other's questions. If you have a question that is at all general, please ask it on Blackboard rather than via email, as this will allow your fellow students to also benefit from the answer.

Accommodations for students with disabilities

If you have a disability that might impact your performance in this course, or requires special accommodation, please contact me as soon as possible so that appropriate arrangements can be made. Support is available through Student Academic Services, specifically Jane Boomer. You will need to contact them to get your disability documented before accommodations can be made.