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

Fall 2019
15-213/18-213 Lecture 1: TR 1:30-2:50, DH 2210, Randy Bryant and Brandon Lucia
15-213/18-213 Lecture 2: WF 3:00-4:20, POS 153, Brian Railing
15-513 Lecture slides and video via course page Brian Railing
14-513 Lecture 1: TR 12:00-1:20, CIC 1201 ("CIC DEC") Gregory Kesden
18-613 Pittsburgh: TR 12:00-1:20, BH A51 ("Giant Eagle Auditorium"), Phil Gibbons
18-613 Silicon Valley: TR 9:00-10:20, Building 23, Room 211 Phil Gibbons
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?

  • 17 September 2019.
    • Drop in tutoring is available MW 8:30-11pm in Tepper Quadrangle 3807. This would be a good place for students requiring more guidance than can be provided during the regular office hours.
  • 12 September 2019.
    • We have expanded our office hours to include Fridays 6:30-9:30pm in WeH 5207
  • 6 September 2019.
    • Some fixes have been made to the two testing programs: dlc and the BDD checker. If you have already cloned a version of the lab, you can patch it as follows:
      1. Login to a shark machine and connect to your datalab-handout directory.
      2. Copy the following file: /afs/cs.cmu.edu/academic/class/15213-f19/www/labs/datalab-20190906.patch to your local directory.
      3. Execute the command git apply datalab-20190906.patch
  • 27 August 2019.
    • The first assignment is available on the schedule web page. You don't need an autolab account to start working on it.
    • There will be a Linux Boot Camp on Monday, September 2 7:00-8:00pm in GHC 4401 (Rashid Auditorium).
  • 26 August 2019.
    • First day of class is August 27 for T/R lectures and August 28th for W/F lectures.
    • Lab 0 will be posted August 27 and is due September 5.
    • No recitation on Monday August 26 or September 2

Getting Help

Piazza Piazza
Email Please use Piazza for help, instead of email. Posts to Piazza are private by default.
Tutoring Drop in tutoring, at the Tepper Quadrangle 3807 (Monday: 8:30-11pm, Wednesday: 8:30-11pm)
Office Hours
  • Sun 5:30-9:30 GHC 5207
  • Mon 6:30-9:30 GHC 5207
  • Tue 5:30-9:30 GHC 5207
  • Wed 5:30-9:30 GHC 5207
  • Thu 6:00-9:30 GHC 5208, GHC 5210, GHC Commons
  • Fri 6:30-9:30 GHC 5207
We use an online queue. You can add yourself from anywhere, but you must be in the room when your name is called.
Office hours for the professors are given below.

Course Materials

Schedule Lecture schedule, slides, recitation notes, readings, and code
Assignments Details of assignments, due dates, and policies
Exams Information about quizzes, exams, and final
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 TR 1:30-2:50 DH 2210
15/18-213 Recitations Section A: Mon 10:30-11:20, WEH DH 2122
Section B: Mon 10:30-11:20, WEH 5310
Section C: Mon 11:30-12:20, DH 2105
Section D: Mon 11:30-12:20, PH 126A
Section E: Mon 12:30-1:20, DH 2015
Section F: Mon 12:30-1:20, PH 126A
Section G: Mon 1:30-2:20, PH A22
Section H: Mon 1:30-2:20, SH 222
Section I: Mon 2:30-3:20, DH 1117
Section J: Mon 2:30-3:20, WEH 4709
Section K: Mon 3:30-4:20, SH 208
Section L: Mon 10:30-11:20, DH 1117
Section M: Mon 11:30-12:20, DH 1117
Section N: Mon 12:30-1:20, DH 1117
Section O: Mon 1:30-2:20, DH 1117
14-513 Recitations Section A: Mon 11:30-12:20, INI DEC
Section B: Mon 12:30-1:20, INI DEC
Section C: Mon 3:30-4:20, CIC 1201 ("CIC DEC")
18-613 Recitations Section A: Mon 4:30-5:20, WEH 5302
Section B: Mon 4:30-5:20, PH A18C
Section C: Mon 6:30-7:20, PH A18C
Section D: Mon 6:30-7:20, HH 1107
Section SA: Mon 5:00-6:20, B23 109
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%) and total exam performance (50%).
Labs There are 8 labs (L0-L7), not evenly weighted. See the assignments page for the breakdown.
Exams There is one midterm exam, in class, closed book (20%).
There is a final exam, in class, closed book (30%).
Home http://www.cs.cmu.edu/~213
Questions Piazza, office hours
Canvas We are using Canvas for this course 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-f19/


Name Randy Bryant Phil Gibbons Greg Kesden Brandon Lucia Brian Railing
Contact Randy.Bryant@cs.cmu.edu
Office GHC 9125 GHC 7221 INI 124 CIC 4110 GHC 6005
Office Hours Wed 3-4pm Mon 2-3pm schedule / Virtual Office Hours Mon 4-5 Thurs 3:35-4:30pm

ECE Course Hub (HH 1112)

They are open 9am-5pm Monday-Friday.