CS 211 Computer Architecture (2023 Spring)

This course covers the fundamental issues in the design of modern computer systems, including the design and implementation of key hardware components such as the processor, memory, and I/O devices, and the software/hardware interface.

Basic information


When and where to find the class

Lectures: Mondays & Thursdays 12:10 PM1:30 PM Eastern Time. Hill 114. Lecture recordings will be posted online within one day.

Recitations: Recitations will not be recorded. You are strongly recommended to attend recitations prepared with questions about assignments and lectures and make use of the help from TAs.

  • Section 05: Thursdays 5:55–6:50 PM SEC-210
  • Section 06: Thursdays 4:05–5:00 PM SEC-209
  • Section 07: Thursdays 2:15–3:10 PM SEC-205
  • Section 08: Mondays 4:05–5:00 PM SEC-207

The meeting locations and links for each recitation TA is on the class LMS on Canvas.

Office hours: Prof. Yipeng Huang’s office hours Wednesdays 10:30 am – 11:30 am, CoRE 317.

The TAs have additional office hours; time and meetings links for each TA is on the class LMS on Canvas.


Learning goals

Throughout the course, students will learn about low-level programming, digital logic, and the memory hierarchy via case studies that are representative of real-world computer systems.

Students will apply essential knowledge about computer systems to modify and create new low-level software and hardware implementations via hands-on programming exercises.

At the end of this course, students should have the preliminary skills to design and evaluate solutions involving the computer software-hardware interface to address new problems.

Topics

  • C programming
  • Data representation and computer arithmetic
  • Boolean algebra
  • Assembly language programming
  • Main memory design
  • Cache design
  • Basic digital logic design
  • Processor design

Expected work and grading policy

  • 7 programming assignments (first two assignments are smaller in size); totalling 70% of the course grade.
  • Short timed quizzes; totalling 5% of the course grade.
  • Midterm exam; totalling 10% of the course grade.
  • Cumulative final exam; totalling 15% of the course grade.
  • Class and recitation participation
  • Discussion via Piazza

The course letter grade will be assigned according to this scale. A: 100%–90%. B+: 89.9%–87%. B: 86.9%–80%. C+: 79.9%–77%. C: 76.9%–70%. D: 69.9%–60%.


Syllabus

DateTopic / learning goalsReading assignmentProgramming assignment (PA)
Thursday, January 19Computer architecture [slides]CS:APP Chapter 1.
Modern C Chapters 1–8.
Monday, January 23Accessing ilab, writing, compiling, and running your first C program [slides]PA 0 (C control flow, file I/O) released.
Thursday, January 26C programming: I/O, files [slides]Modern C Chapters 9-14.PA 0 due.
PA 1 (C arrays, data structures) released.
Monday, January 30C programming: Pointers, arrays, memory [slides]
Thursday, February 2C Programming: Pointers recap, pass-by-value vs. pass-by-reference [slides]
Monday, February 6C Programming: 2D arrays, pass-by-value vs. pass-by-reference [slides]
Thursday, February 9C Programming: Data structures [slides]PA 1 due.
PA 2 (C algorithm pattern implementation) released.
Monday, February 13C Programming: Bugs and debugging [slides]
Thursday, February 16C Programming: Graphs
Representing and manipulating information: Bits, bytes, integers [slides]
CS:APP Chapter 2.
Monday, February 20Representing and Manipulating Information: Bits, Ints, and Ops [slides]
Thursday, February 23Representing and Manipulating Information: Integer operations and fixed point [slides]PA 2 due.
PA 3 (data representations) released.
Monday, February 27Representing and Manipulating Information: Fixed point and floating point [slides]
Thursday, March 2Representing and Manipulating Information: Floating point mastery [slides]CS:APP Chapter 3.
Monday, March 6Machine-Level Representation of Programs: Instruction set architectures [slides]
Thursday, March 9Machine-Level Representation of Programs: Moving data, arithmetic and logical operations [slides]PA 3 due.
PA 4 (assembly bomb lab) released.
Saturday, March 11Spring Recess Begins
Sunday, March 19Spring Recess Ends
Monday, March 20Class period midterm exam
Thursday, March 23Machine-Level Representation of Programs: Bomblab, addressing modes, arithmetic [slides]
Monday, March 27Machine-Level Representation of Programs: Control [slides]
Thursday, March 30Machine-Level Representation of Programs: Loops, Procedures [slides]CS:APP Chapter 6.
Monday, April 3Machine-Level Representation of Programs: Procedures, Recursion, Data [slides]
Thursday, April 6The memory hierarchy: Locality [slides]PA 4 due.
PA 5 (cache performance lab) released.
Monday, April 10The memory hierarchy: Cache memories [slides]
Thursday, April 13The memory hierarchy: Cache placement, replacement, and write policies [slides]
Monday, April 17The memory hierarchy: Cache replacement and write policies, cache-friendly code [slides]
Thursday, April 20The basics of logic design [slides]PA 5 due.
PA 6 (digital logic) released.
Monday, April 24The basics of logic design: Combinational logic [slides]
Thursday, April 27The basics of logic design: Sequential logic [slides]
Monday, May 1Regular Classes End
Tuesday, May 2Reading Day
Wednesday, May 3Reading DayPA 6 due.
Thursday, May 48:00 am – 11:00 am final exam
Wednesday, May 10Spring Exams End

Resources

Technology Requirements: Students will need access to the Canvas site, and be able to join class via audio, at minimum.

Learning remotely presents new challenges.  For assistance with learning how to address these challenges, please consult the resources available here:  https://rlc.rutgers.edu/remote_instruction

Please visit the Rutgers Student Tech Guide page for resources available to all students.  If you do not have the appropriate technology for financial reasons, please email Dean of Students deanofstudents@echo.rutgers.edu for assistance.  If you are facing other financial hardships, please visit the Office of Financial Aid at https://financialaid.rutgers.edu/.

Academic Integrity: https://www.cs.rutgers.edu/academics/undergraduate/academic-integrity-policy

http://nbacademicintegrity.rutgers.edu/home-2/academic-integrity-policy

https://nbprovost.rutgers.edu/academic-integrity-students