|
15-213/18-213/14-513/15-513/18-613: Introduction to Computer Systems (ICS)
Spring 2021
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?
- 2 February 2021.
- There are some exciting changes to the course this semester. Check out this Quick Start Guide to learn more.
- First day of class is February 2 (via Zoom).
- All lectures will be via Zoom. Zoom links are posted on Canvas.
- Recitations are in the form of small groups and begin Week 2
.
- Lab 0 will be posted Feb 2 and is due Feb 11.
Getting Help
Piazza |
Piazza
Posts to Piazza are public by default. Think carefully about the AIV policy before posting code or design details. Make a private post, visible only to instructors and TAs, if in doubt. |
Email |
Please use Piazza for help, instead of email.
|
Tutoring |
TBD |
Office Hours |
We use an online queue. All times are in Eastern Time. Please specify a Zoom meeting ID or link when adding yourself to the queue. |
|
Sun |
6:00 PM - 10:00 PM |
Mon |
6:00 PM - 10:00 PM |
Tue |
11:00 AM - 1:00 PM |
|
6:00 PM - 10:00 PM |
Wed |
6:00 PM - 10:00 PM |
Thur |
11:00 AM - 1:00 PM |
|
6:00 PM - 10:00 PM |
Fri |
6:00 PM - 10:00 PM |
|
|
Office hours for the professors are given below. |
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 |
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%), midterm exam performance (10%), small group performance (5%), and final exam performance (15%).
|
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 |
http://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-s21/ |
Instructors
Name |
Brian Railing |
Greg Kesden |
Zack Weinberg |
Contact |
bpr@cs.cmu.edu |
gkesden@andrew.cmu.edu |
zweinber@andrew.cmu.edu |
Office |
GHC 6005 (PIT) |
HH D202 (PIT) |
CMU RMTE (PIT) |
Office Hours |
TBD |
https://www.cs.cmu.edu/~gkesden/schedule.html |
Wed Fri 3-4 PM or email for appointment |
|