CS 213: Introduction to Computer Systems, Fall, 2019
Instructor: | Peter Dinda (Office Hours: Tuesdays, 3:30-6:30, Mudd 3507 or by appointment) |
Teaching Assistant: |
Brian Suchy (Office Hours: Wednesdays, 12-3, Mudd 3303 (or 3301) or by appointment) |
Peer Mentor: |
Michael Cuevas (Office Hours: Mondays, 4-7, Wilkinson Lab, or by appointment)
|
Lecture: | Tuesdays and Thursdays, 2-3:20pm, Tech L361 |
Optional Discussion: | Wednesdays, 5-, Mudd 3501 |
Final Exam Review Session: Wednesday, December 11, 5pm, Tech LG52
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.
Communication
We will use Canvas to report grades,
but for nothing else. For
critical announcements, we will send email to the addresses that
CAESAR maintains.
For discussion, we will use Piazza: CS 213
Piazza Site. 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/24, In: 10/10)
Bomb Lab (pdf) (Out: 10/10, In: 10/29 (extended to 10/30)
Attack Lab (pdf) (Out: 10/30, In: 11/12)
SETI Lab (Parallelism Lab) (pdf) (Out: 11/12, In: 12/5)
Homework Assignments
HW 1: Integer and Floating Point Number Representations (pdf) (Out: 9/26)
HW 2: De-compiling Assembly Code (pdf) (Out: 10/8)
HW 3: Memory and Cache (pdf) (Out: 10/22)
Do problem 1 in preparation for midterm exam!
HW 4: Virtual Memory and I/O (pdf) (Out: 11/14)
We will make solution sets for these homeworks available. They will not be graded. Nonetheless, we strongly encourage you to do them in preparation for exams.
Exams
Midterm: Tuesday, October 29, 6pm, Tech M345
Covers lectures 1-9 and related reading/materials in syllabus
Midterm Review Session: Monday, October 28, 6pm, Tech L221
Final: Friday, December 13, noon, Tech L361
Covers lectures 10-20, and related reading/materials in syllabus
Final Review Session: Wednesday, December 11, 5pm, Tech LG52
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, and with the very much alive and kicking ARM architecture that powers your phone and tablet
Overview of the Linux Kernel (pdf) (This is very old, but still a good intro)
Cygwin Unix Emulation Environment for Windows