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
- Course Number: 01:198:211 Sections 05, 06, 07, and 08
- Instructor: Yipeng Huang
- Email: yipeng.huang@rutgers.edu
- Course Type: Undergraduate
- Credits: 4
- Learning Management System (LMS): https://rutgers.instructure.com/courses/261416
- Syllabus: https://yipenghuang.com/teaching/2024-spring-211
When and where to find the class
Lectures: Lectures: Tuesdays & Thursdays 2:00 PM – 3:20 PM Eastern Time. SEC-111. 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: Tuesdays 7:45 PM – 8:40 PM ARC-105
- Section 06: Tuesdays 5:55 PM – 6:50 PM ARC-105
- Section 07: Thursdays 7:45 PM – 8:40 PM SEC-207
- Section 08: Thursdays 4:05 PM – 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 TBD 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
Recommended textbooks
- Modern C (https://gustedt.gitlabpages.inria.fr/modern-c/)
- Computer Systems: A Programmer’s Perspective (CS:APP, 3rd ed.)
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
Resources
Technology Requirements: Students will need access to the Canvas site, and be able to join class via audio, at minimum.
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