CS 210: Introduction to Computer Architecture — Spring 2022

Instructor: Professor Stephen Checkoway stephen.checkoway@oberlin.edu
Lectures: Monday, Wednesday, Friday. 11:00–11:50 in King 241
Office Hours: Tuesday, Friday. 13:30–14:30 in King 231

Course Description

This course explores the fundamentals of how computer hardware works. We will start at a relatively high-level with assembly programming, and then work through how to build a computer starting with logic gates. We will use logic gates to construct the datapath, and explore how instructions run using the datapath. After we understand the basics of the datapath, we will look at optimizing it using techniques such as pipelining and branch prediction. We will end the course with memory and caching.


Your final course grades are based on three categories.

Labs are programming or circuit building assignments. Labs are due on Sundays at 23:59.

Problem sets are weekly written assignments. Problem sets are due every Friday at 23:59. Each problem set is distributed and turned in via Gradescope.

Check the schedule for the problem sets and labs.

Class participation will be measured by clicker poll questions so make sure you answer each one.

Course Materials

Required Texts

We’ll be using an online textbtook from zybooks. You can purchase the textbook directly from zybooks or from the Oberlin bookstore.

To purchase from zybooks,

  1. Sign in or create an account at learn.zybooks.com
  2. Enter zyBook code: OBERLINCSCI210CheckowaySpring2022
  3. Subscribe

If you cannot afford this book, the Oberlin’s Emergency Book Fund provides loans to Oberlin students to buy textbooks and supplies. Students are expected to pay back these loans only when they are financially able. These funds are administered through the Office of the Dean of Students, Wilder Hall, Room 105. If you cannot afford this book and the Emergency Book Fund does not work for you, please talk to me and we will figure something out.


Learning Goals

After the course, students will be able to do the following.

  1. Convert between different number systems, including representing negative numbers.
  2. Write programs in MIPS assembly language.
  3. Design logical circuits.
  4. Understand the datapath (including pipelining and branch prediction) and identify which parts of the datapath are used by a given MIPS instruction.
  5. Understand the memory/cache hierarchy, and identify the best type of cache to use given memory access characteristics.
  6. Calculate performance metrics for a program given characteristics of its instructions.
  7. Implement floating point numbers.

Course Policies


CS 241 is required.

COVID-19 Policy

This policy supersedes all of the other policies (except for any policies mandated by the College).

No one wants to be dealing with the pandemic at the same time as we try to do everything that’s required of us. We should all recognize just how hard this situation is for everyone. If you need any accommodation from me, just let me know. In particular, if you need additional time on any assignments or exams, just let me know, in advance, if at all possible.

You are never required to tell me about any health issues, including if you have COVID-19. You are welcome to talk to me about anything you’d like. I may not have answers to questions, but I can probably point you in right direction.

Attendance Policy

You are not required to attend; however, you receive points for participation in each class period that count toward your final grade. You can miss up to 3 days without penalty. Research indicates that students who attend class are more likely to be successful. You are strongly encouraged to attend every class. If you are unable to attend class, you should consider asking a classmate to take notes for you.

If you need to miss more than your three excused absences, you should post a private message on Piazza to discuss it with Professor Checkoway.

Missed or Late Work Policy

Reading exercises are due before the class they are assigned for. You are expected to attend class having completed the readings. Problem sets and labs are due on the indicated days and times.

At your discretion, you can use up to three free “late days” which each grant you an additional day to complete a lab (more than one can be used per assignment). You do not need to let me know that you are using a late day. It is your responsibility to track the number of late days you use throughout the course. If for some reason you are unable to complete you work on time, even given the late days, discuss the issue with me before the deadline and we can figure something out.

Problem Sets can be corrected and resubmitted within two weeks of being graded and returned. If you resubmit a problem set, your grade will be .25the grade of your original submission + .75the grade of your resubmitted submission.

College policy prohibits accepting any work after the scheduled final exam time for a course without an incomplete.

Electronic Communication Policy

All electronic communication with course staff should take place on Piazza unless emails are specifically requested by the staff. Course staff may, from time to time, respond to emails, but a response to one email does not guarantee a response to a second. Use Piazza!

Collaboration Policy

Except as stated for specific labs, all work is to be completed individually. You are allowed to talk to anyone in the course about the assignments; however, you are not allowed to share solutions with anyone. Doing so is academic misconduct.

Academic Integrity Policy

You must adhere to the Oberlin College Academic Integrity Policy. Please familiarize yourself with the Honor Code.

Religious Holiday Observance Policy

Students wishing to be excused from class in order to observe religious holidays must follow the Oberlin College Religious Holiday Observance Policy.