15-213/14-513/15-513: Introduction to Computer Systems (ICS)

Spring 2022

12 units

The ICS course provides a programmer's view of how computer systems execute programs, store information, and communicate. It enables students to become more effective programmers, especially in dealing with issues of performance, portability and robustness. It also serves as a foundation for courses on compilers, networks, operating systems, and computer architecture, where a deeper understanding of systems-level issues is required. Topics covered include: machine-level code and its generation by optimizing compilers, performance evaluation and optimization, computer arithmetic, memory organization and management, networking technology and protocols, and supporting concurrent computation.

Course Syllabus

Prerequisites: 15-122

What's New?

  • First day of class is Tuesday, January 18.

Getting Help

Piazza Piazza
Email Please use Piazza for help, instead of email. Posts to Piazza are private by default.
Tutoring TBD
Office Hours TA office hours use an online queue for both in-person and remote office hours.
  • In person: Please specify a room number when adding yourself to the queue.
  • Remote: Please specify a Zoom meeting ID and select the REMOTE tag in the queue.
  • If you are remote but do not select the tag, we reserve the right to kick you from the queue as we cannot filter your question to the remote TA's.
See Piazza for faculty office hour Zoom links.
When in-person office hours resume, faculty office hours will be at the locations and times listed at the bottom of this page.

Course Materials

Schedule Lecture schedule, slides, recitation notes, readings, and code
Labs Details of the labs, due dates, and policies
Assignments Details of the written assignments, due dates, and policies
Exam Information about the final exam
Lab Machines Instructions for using the lab machines
Resources Additional course resources

Course Information

For details See the course syllabus for details (below is just a few overview bits).
Lectures See above
15-213 Recitations
Section A:Mon 09:05AM – 09:55AMWEH 5421
Section B:Mon 10:10AM – 11:00AMWEH 5302
Section C:Mon 11:15AM – 12:05PMPH A18A
Section D:Mon 12:20PM – 01:10PMGHC 5222
Section E:Mon 01:25PM – 02:15PMWEH 4623
Section F:Mon 02:30PM – 03:20PMWEH 4625
Section G:Mon 03:35PM – 04:25PMWEH 4625
Section H:Mon 04:40PM – 05:30PMGHC 6115
14-513 Recitations
Section A:Mon 04:40 PM – 05:30 PMINI DEC
Section B:Mon 09:05 AM – 09:55 AMINI DEC
Section SV:Mon 01:40 PM – 02:30 PM (Pacific Time)B23 212
Textbooks Randal E. Bryant and David R. O'Hallaron,
Computer Systems: A Programmer's Perspective, Third Edition, Pearson, 2016
  Brian W. Kernighan and Dennis M. Ritchie,
The C Programming Language, Second Edition, Prentice Hall, 1988
Credit 12 units
Grading Composed from total lab performance (50%), total written assignment performance (20%) and final exam performance (30%).
Labs There are 8 labs (L0-L7), not evenly weighted. See the labs page for the breakdown.
Exam There is a final exam, held during exam week, closed book.
Home https://www.cs.cmu.edu/~213
Questions Piazza, office hours
Canvas Canvas will be used (i) to handin written assignments, (ii) to post lecture videos, and (iii) to conduct ungraded, in-class quizzes. Your grading information will be kept up to date in Autolab, not in Canvas.
Course Directory /afs/cs/academic/class/15213-s22/


Name Zack Weinberg Dave Andersen Brian Railing David Varodayan
Contact zackw@cmu.edu dga@cs.cmu.edu bpr@cs.cmu.edu varodayan@cmu.edu
Office GHC 4124 (PIT) GHC 9109 (PIT) GHC 6005 (PIT) B23 201B (SV)
Office Hours Wed 2–5pm ET
or by appt
Mon 3–4:30pm ET ON ZOOM ONLY
or by appt
Thur 2:30pm–4pm ET
or by appt
Wed 2:30–4pm PT
or by appt