Course Overview

CompSci 210 is an undergraduate introduction to computer systems software "close to the metal" on real machines. It provides a programmer's view of how computer systems execute programs and store information, with exercises using the C programming languge. It examines key computational abstractions behind high-level programming languages: number and data representations, instructions, memory hierarchy, programs and processes, and basics of multi-core/concurrency. The Big Ideas in this class are broadly applicable across the many subfields of computer systems and computer science, with specific instances demonstrated through labs and projects. Prerequisites: Compsci 201 or equivalent, and experience programming in a high-level language (e.g., Java).

For more information, please see the course syllabus.

Course Information

Instructors: Matthew Lentz, Jeff Chase, Yesenia Velasco
Location: LSRC B101
Time: Wed/Fri 3:30 - 4:45pm
Graduate TAs: Luka Duranovic, Yongkang Li
Undergraduate TAs: Aaric Han (Lead), Alyssa Zhao (Lead), David Bian, Khushmeet Chandi, Piper Epstein, Andrew Fate-Bolognone, Katherine Gallagher, Jiayi Hao, John Hession, Kathryn Kotler, Ajay Krishnamurthy, Ayush Jain, Owen Jennings, Nadeska Montalvan, Zaid Muqsit, Marisol Mata Nevarez, Michael Ruiz, Elizabeth Skinner, David Turner, Zijie Yang, Albert Yuan
Office Hours:
Matthew Lentz - Thu at 1-2pm (LSRC D314) + After Lecture
Jeff Chase - Tue/Thu at 3-4pm (LSRC D306) + After Lecture
Luka Duranovic - Thu at 3-5pm (Zoom; See Ed)
Yongkang Li - Thu at 6:30-8:30pm (Zoom; See Ed)
(See Ed for other office hours)
Resources: Syllabus, Sakai, Gradescope, Ed, GitLab, Panopto

Grading

50% Exams
Two midterm exams (15 each) and a final exam (20)
25% Projects
Larger programming assignments that build on labs and lectures
20% Labs
Small programming assignments associated with each lecture
5% Discussion
Participation in weekly discussion sections for labs
0% Quizzes
Assigned readings with self-assessment quizzes