18-213/18-613: Computer Systems
The 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.
Prerequisites: C or better in 15-122
- 17 May 2022
- The adventure begins today! We're so glad you are here!
- Check out this Quick Start Guide to learn more.
- Please make sure you can see the course on Canvas
- Autolab accounts will be created shortly
- You can start Lab 0 immediately, it is available via the course schedule page.
- Live participation in lecture is optional, but encouraged. Please turn your camera on should you choose to attend.
- Lecture video is usually available the morning after the lecture via Canvas.
- Should you choose not to attend lecture, please watch the video within 24 hours.
- The Zoom link remains TBA. We'll announce it shortly.
- Attendance at small group meetings is required
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.
||Please use Piazza for help, instead of email, unless trying to contact a specific instructor.
|Office Hours (Beginning Week #2)
|| Instead of an office hours queue, youll be able to sign up for office hours slots
||Office hours for the professors are given below.
|| Lecture schedule, slides, recitation notes, readings, and code
|| Details of the labs, due dates, and policies
|| Details of the homeworks, due dates, and policies
|| Information about the final exam
| Lab Machines
|| Instructions for using the lab machines
|| Additional course resources
||See the course syllabus for details (below is just a few overview bits).
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
|| 12 units
||Composed from total lab performance (50%), total homework performance (20%), small group performance (5%), and final exam performance (25%). The midterm exam counts as a double homework|
||There are 8 labs (L0-L7), not evenly weighted. See
the labs page for
||There is a final exam, held on Friday, August 12th (remotely administered), closed book.
||Piazza, office hours
||Canvas will be used (i) to post lecture videos, and (ii)
to conduct ungraded, in-class quizzes. Your grading information will be kept up to date
in Autolab, not in Canvas.
||HH A205 (PIT)
| Office Hours