CS 211 Computer Architecture (2022 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: Tuesdays & Thursdays 2:00 PM3:20 PM Eastern Time. For the time being, the Zoom link to join live is on the class LMS on Canvas. Log in to Zoom with your Rutgers email address; otherwise, the passcode to join is available on the class LMS. Lecture recordings will be posted online within one day.

Recitations: Recitations will be synchronous and 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 7:30–8:25 PM Eastern Time
  • Section 06: Thursdays 5:40–6:35 PM Eastern Time
  • Section 07: Thursdays 5:40–6:35 PM Eastern Time
  • Section 08: Tuesdays 3:50–4:45 PM Eastern Time

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

Office hours: Prof. Yipeng Huang’s office hours Thursday 4:00–5:00 PM Eastern Time, 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
  • Assembly language programming
  • Boolean algebra
  • Basic digital logic design
  • Processor design
  • Cache design
  • Main memory design

Expected work and grading policy

  • 6 programming assignments; first is worth 7% of the course grade, the rest are 14% of the course grade each.
  • short timed quizzes, totalling 23% 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)
Tuesday, January 18[slides] Spring Semester Begins. Preview of this class.CS:APP Chapter 1.
Modern C Chapters 1–8.
Thursday, January 20[slides] Accessing ilab, writing, compiling, and running your first C programPA 0 (C control flow, file I/O) released.
Tuesday, January 25[slides] C Programming: I/O, files, selection sortModern C Chapters 9-14.PA 1 (C arrays, data structures) released.
Thursday, January 27[slides] C Programming: Pointers, bits and bytes,
data types, memory
Tuesday, February 1[slides] C Programming: Pointers recap, arrays, 2D arraysPA 0 due
Thursday, February 3[slides] C Programming: Sorting, structs, linked lists, pass-by-value vs. pass-by-reference
Tuesday, February 8[slides] C Programming: Using recursion, pointers, arrays, bugs, debugging
Thursday, February 10[slides] C Programming: Memory, bugs, debuggingCS:APP Chapter 2.PA 1 due; PA 2 (C algorithm pattern implementation) released.
Tuesday, February 15[slides] C Programming: Data structures
Thursday, February 17[slides] C Programming: Graph traversals: DFS and BFS
Tuesday, February 22[slides] Representing and Manipulating Information: Bits, Ints, and Ops
Thursday, February 24[slides] Representing and Manipulating Information: Fixed point and floating pointCS:APP Chapter 3.PA 2 due; PA 3 (data representations) released.
Tuesday, March 1[slides] Representing and Manipulating Information: Floating point
Thursday, March 3[slides] Representing and Manipulating Information: Floating point mastery
Tuesday, March 8[slides] Machine-level representation of programs: ISAs
Thursday, March 10[slides] Machine-level representation of programs: Moving data, arithmeticPA 3 due
Saturday, March 12Spring Recess Begins
Sunday, March 20Spring Recess Ends
Tuesday, March 22[slides] Machine-level representation of programs: Bomblab, addressing mode recap, arithmeticPA 4 (assembly bomb lab) released.
Thursday, March 24[slides] Machine-level representation of programs: control, comparisons, branching, loops
Tuesday, March 29[slides] Machine-level representation of programs: branching, loops, switch, proceduresCS:APP Chapter 6.
Thursday, March 31[slides] Machine-level representation of programs: procedures, recursion, arrays, structs
Tuesday, April 5[slides] The memory hierarchy: Locality
The memory hierarchy: Locality
PA 4 due; PA 5 (cache performance lab) released.
Thursday, April 7[slides] The memory hierarchy: Caches
Tuesday, April 12[slides] The memory hierarchy: Cache placement, replacement, and write policies
Thursday, April 14[slides] The memory hierarchy: Cache friendly code–loop interchange, cache blocking, cache oblivious algorithms
Tuesday, April 19[slides] The basics of logic designPA 5 due; PA 6 (digital logic) released.
Thursday, April 21[slides] The basics of logic design: Combinational logic
Tuesday, April 26[slides] The basics of logic design: Sequential logic, combinational logic
Thursday, April 28[slides] Computer Architecture / Security / Quantum /
Where to Go Next
Monday, May 2Regular Classes End
Tuesday, May 3Reading DayPA 6 due.
Wednesday, May 4Reading Day
Thursday, May 5Spring Exams Begin
Wednesday, May 12Spring 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