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

Fall 2018
15-213/18-213 Lecture 1: TR 1:30-2:50, DH 2210, Randy Bryant and Phil Gibbons
15-513: Lecture slides and videos via course web page
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?

  • 28 August 2018.
    • The first assignment is available on the schedule web page. You don't need an autolab account to start working on it.
  • 22 August 2018.
    • First day of class is August 28.
    • Lab 0 will be posted August 28 and is due September 6.
    • No recitation on Monday August 27 or September 3
    • There will be a Linux Boot Camp on September 3.

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 Corridor (Monday: 8:30-11pm, Wednesday: 8:30-11pm)
Office Hours WeH 5207, Sunday-Thursday, 5pm-9pm (5:30pm on Thursday)
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 Profs. Bryant, Gibbons, and Railing 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
Recitations Section A: Mon 10:30-11:20, WEH 5328 (TA: Anush)
Section B: Mon 10:30-11:20, WEH 5310 (TAs: Niko, Eugene)
Section C: Mon 11:30-12:20, WEH 5310 (TA: Matt)
Section D: Mon 11:30-12:20, PH 126A (TA: Sam D.)
Section E: Mon 12:30-1:20, WEH 5310 (TAs: Gauri, Kevin)
Section F: Mon 12:30-1:20, PH 126A (TA: Oliver)
Section G: Mon 1:30-2:20, PH A22 (TAs: Eugene, Cyrus)
Section H: Mon 1:30-2:20, SH 222 (TA: Gabriel)
Section I: Mon 2:30-3:20, WEH 5310 (TAs: Sam T.)
Section J: Mon 2:30-3:20, WEH 4709 (TA: Raghav)
Section K: Mon 3:30-4:20, SH 208 (TAs: Neeti, Wynne)
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-f18/


Name Randy Bryant Phil Gibbons Brian Railing
Contact Randy.Bryant@cs.cmu.edu
Office GHC 9125 GHC 7221 GHC 6005
Office Hours Wed 3-4pm Mon 2-3pm Thurs 3-4pm

ECE Course Hub (HH 1112)

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