Course Overview

CPS 210 is an introduction to systems software and computer architecture, with programming exercises in the C language on the Linux operating system. This course provides a programmer's view of how computer systems execute programs and store information. It examines key computational abstractions behind high-level programming languages: number and data representations, memory/pointers, the stack, buffer overflow, processor instructions, caching, virtual memory, programs and processes, and basics of concurrency with threads. The Big Ideas in this class apply across subfields of computer systems and computer science.

For more information, please see the course syllabus.

Lecture: Wed/Fri 1:25 pm - 2:40 pm
Location: LSRC B101
Discussion: Mon (Multiple Times)
Resources: Canvas, Gradescope, Ed, GitLab

Course Staff

Instructors: Matthew Lentz
Graduate TAs: Chunjiang Che, Manmit Singh
Undergraduate TAs: Irene Biju, Thomas Kidane, Imani Kwesi, Joseph Loeffler, Amogh Manral, Anric Ngan, Sahil Patel, Islam Tayeb, Kevin Yao, Zaer Zaqy, Anna Zhang
Office Hours:
Matthew Lentz - (Briefly) After Lecture + TBD
Chunjiang Che - TBD
Manmit Singh - TBD
(See Ed for other office hours)

Grading

50% Exams
Midterm 1 (15), Midterm 2 (15), and Final (20)
20% Projects
Four programming assignments that span across labs/lectures
23% Labs
Small programming assignments associated with each lecture
7% Discussion
Participation and exercises