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

Fall 2025

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, Aug 26th.

Getting Help

Ed Ed
Email Please use Ed for help, instead of email. Posts to Ed are private by default.
Tutoring The Student Academic Success Center provides tutoring for this course. Appointments for one-on-one tutoring can be booked via its WCOnline schedule.
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.
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
Exams Information about the midterm and final exams
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
15-213 Section A:Fri 10:00 AM-10:50 AMWEH 4708
15-213 Section B:Fri 10:00 AM-10:50 AMDH 2105
15-213 Section C:Fri 11:00 AM-11:50 AMWEH 5328
15-213 Section D:Fri 11:00 AM-11:50 AMDH 2105
15-213 Section E:Fri 12:00 PM-12:50 PMWEH 5328
15-213 Section F:Fri 12:00 PM-12:50 PMDH 2105
15-213 Section G:Fri 01:00 PM-01:50 PMWEH 5328
15-213 Section H:Fri 01:00 PM-01:50 PMPH 125B
15-213 Section I:Fri 02:00 PM-02:50 PMWEH 5328
15-213 Section J:Fri 02:00 PM-02:50 PMPOS 147
15-213 Section K:Fri 03:00 PM-03:50 PMCFA 102
14-513 Section A:Fri 10:00 AM-10:50 AMCIC 1201
14-513 Section B:Fri 04:00 PM-04:50 PMINI DEC
14-513 Section C:Fri 01:00 PM-01:50 PMINI DEC
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 (10%), midterm exam performance (15%) and final exam performance (25%).
Labs There are 9 labs (L0-L8), not evenly weighted. See the labs page for the breakdown.
Exam There is a midterm exam, part takehome (all students) and part in-class, closed book (15-213 and 14-513 only). There is a final exam, held during exam week, closed book.
Home https://www.cs.cmu.edu/~213
Questions Ed, office hours
Canvas Canvas will be used (i) to handin written assignments and (ii) 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-f25/

Instructors

Name Brian Railing Phillip Gibbons Taha Khan
Contact bpr@cs.cmu.edu gibbons@cs.cmu.edu mtk2@andrew.cmu.edu
Office GHC 6005 GHC 7221 CIC 2324
Office Hours Fri 11:00 AM-12:00 PM Tues 02:00 PM-03:00 PM Thur 03:00 PM-04:00 PM