CS 213: Introduction to Computer Systems, Fall, 2022
Instructors: | Peter Dinda |
Teaching Assistant: |
Matthew von Allmen |
Peer Mentors: |
Elena Fabian
Thomas Filipiuk
Alex Kang
Mitchell Lai
Liam Patterson
Santi Roches
Molly Schneck
Evan Waite
|
Lecture: | Tuesdays and Thursdays, 2:00-3:20pm, Annenberg G15 |
Optional Discussion: | Mondays, 12pm |
Office hours and locations are available on the shared calendar announced in Piazza, Canvas, and email.
CS 213 is a required core course in the Computer Science
curriculum in both McCormick and Weinberg. It is also a required
course for CS minors in both schools. 213 can also be taken for
credit within the Computer
Engineering curriculum.
This version of CS 213 has an increased focus on (a) low-level hardware aspects, (b) C programming, (c) the Unix system call interface, and (d) threading/parallelism (including a lab). It will be of particular value in preparing for CS 343 (Operating Systems) and similar courses.
There are currently 87 students enrolled.
Communication
We will use Canvas to report grades, and to make access to any Zoom sessions or
recordings more straightforward, but for nothing else. For
critical announcements, we will send email to the addresses that
CAESAR maintains.
For discussions, we will use Piazza. Directing your questions to Piazza will likely produce the
fastest response, and everyone else in the class will also benefit.
Piazza is configured to allow anonymous posting.
Accounts, Remote Access, Getting Started with Unix
Handouts
Syllabus (pdf)
Physics To Logic (pdf)
Unix Systems Programming In A Nutshell (pdf)
Sockets In A Nutshell (pdf)
Concurency (pdf)
Parallelism (pdf)
Programming Assignments
Data Lab (pdf) (Out: 9/20, In: 10/6)
Bomb Lab (pdf) (Out: 10/6, In: 10/27 (extended))
Attack Lab (pdf) (Out: 10/27, In: 11/9 (extended))
SETI Lab (Parallelism Lab) (pdf) (Out: 11/10, In: 12/1)
Homework Assignments
HW 1: Integer and Floating Point Number Representations (pdf) (Out: 9/22, In: 10/4)
HW 2: De-compiling Assembly Code (pdf) (Out: 10/4, In: 10/19 (extended))
HW 3: Memory and Cache (pdf) (Out: 10/22, In: 11/11 (extended))
HW 4: Virtual Memory and I/O (pdf) (Out: 11/10, In: 12/1)
We will make solution sets for these homeworks available. Homeworks are important preparation for exams.
Exams
Midterm: 2 hours on 10/24
Covers lectures 1-9 and related reading/materials in syllabus
Midterm Review Session: Friday, 10/21, 11am, 555 Clark B01 and zoom (will be recorded)
Final: 2 hours on 12/5 (formal time is 12-2, and we will be available in our classroom then)
Covers lectures 10-20, and related reading/materials in syllabus
Final Review Session: Friday, 12/2, 11am, Mudd 3514 and zoom (will be rcorded)
Resources
The Book's Student Site
Contains many useful FAQs, Primers, etc.
Lecture slides, code, videos, and other materials for the CMU version of the class
Make Introduction (pdf)
Gdb commands (pdf)
Gdb manual (html)
An amazing online compiler
This lets you easily see the assembly that results from C/C++ code
An amazing online disassembler
This lets you easily decode object code back to assembly
The ELF Format (pdf)
Comparison with GAS format and Intel's assembler format (text)
The Intel Architecture Manuals and the AMD Architecture Manuals
Compare and contrast with the beautiful and much mourned DEC Alpha, the very much alive and kicking ARM architecture that powers your phone, tablet, or M1+ Mac, and the up-and-coming open source RISC-V architecture.
Overview of the Linux Kernel (pdf) (This is very old, but still a good intro)
Windows Subsystem for Linux
Cygwin Unix Emulation Environment for Windows
Last modified: Thu Nov 11 16:46:49 CST 2021