CS 210: Introduction to Computer Architecture — Fall 2024

Instructor: Professor Stephen Checkoway stephen.checkoway@oberlin.edu
Lectures: Monday, Wednesday, Friday. 15:30–16:20 in King 123
Office Hours: Thursday 13:00–15:00 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 data path, and explore how instructions run using the data path. After we understand the basics of the data path, we will look at optimizing it using techniques such as pipelining and branch prediction. We will end the course with memory and caching.

Assessment

Your final course grades are based on five 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.

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 .25 * the grade of your original submission + .75 * the grade of your resubmitted submission.

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 textbook from zyBooks.

To get access to the textbook, go to BlackBoard and click on any zyBooks assignment link. (Do not go to the zyBooks website and create a new account.) You can subscribe to the book from there.

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.

Resources

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 data path (including pipelining and branch prediction) and identify which parts of the data path 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

Prerequisites

CS 241 is required.

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 Ed 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.

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 Ed 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 Ed!

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.

For problem sets, you should change the numbers or details in the problems when discussing them: for example, if you were discussing a problem that asked you to translate the number five into binary, you might demonstrate translating the number seven into binary as an example.

Academic Integrity Policy

You must adhere to the Oberlin College Academic Integrity Policy.

Please familiarize yourself with the Honor Code.

Much of the work we cover in this course represents classic examples in the field, therefore solutions to similar problems are readily available in the wild. Do not actively look for them as this only decreases your own learning and can result in a potential Honor Code violation.

Artificial Intelligence Policy

AI tools, including but not limited to, GitHub Copilot and ChatGPT are not allowed and are considered a violation of the Honor Code for use at any point in this class.

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.