CS 213: Introduction to Computer Systems, Fall, 2021
Instructors: | Peter Dinda (Office Hours: Wednesdays 3:30-6:30, Zoom, or by appointment) |
Teaching Assistants: |
Mohammad Kavousi (Office Hours: Thursdays 10:30-12:00, Fridays 11:30-1:00, Zoom, or by appointment)
Shichao Xu (Office Hours: Tuesdays 9:00-10:30, Thursdays 9:00-10:30, Zoom, or by appointment) |
Peer Mentors: |
Luke Arnold (Office Hours: Mondays 6:00-7:30, Wednesdays 6:30-8:00, Zoom, or by appointment)
Huaxuan Chen (Office Hours: Fridays 4:00-5:30, Sundays 3:00-4:30, Zoom, or by appointment)
Kinsey Ho (Office Hours: Mondays 1:00-2:30, Fridays 10:00-11:30, Zoom, or by appointment)
Seth May (Office Hours: Tuesdays, 12:00-1:30, Fridays 2:30-4:00, Zoom, or by appointment)
Kevin McAfee (Office Hours: Mondays 2:30-4:00, Wednesdays 11:00-12:30, Zoom, or by appointment)
Max Paik (Office Hours: Mondays 4:00-5:30, Tuesdays 8:00-9:30, Zoom, or by appointment)
Ze Feng Zhu (Office Hours: Tuesdays 6:30-8:00, Thursdays 4:30-6:00, Zoom, or by appointment)
|
Lecture: | Tuesdays and Thursdays, 2:00-3:20pm, Tech L361 |
Optional Discussion: | Weekly, Thursdays, 6:00pm, Zoom |
Final Exam Review Session: Thursday, 12/2, 6pm (in discussion session)
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 102 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 discussion, we will use Campuswire and Piazza. Directing your questions to Campuswire will likely produce the
fastest response, and everyone else in the class will also benefit.
Campuswire and Piazza are 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/21, In: 10/8 (one day extension))
Bomb Lab (pdf) (Out: 10/7, In: 10/27 (one day extension))
Attack Lab (pdf) (Out: 10/27, In: 11/10 (one day extension))
SETI Lab (Parallelism Lab) (pdf) (Out: 11/9, In: 12/2)
Homework Assignments
HW 1: Integer and Floating Point Number Representations (pdf) (Out: 9/23, In: 10/5 (extended))
HW 2: De-compiling Assembly Code (pdf) Out: 10/5, In: 10/21 (extended))
HW 3: Memory and Cache (pdf) (Out: 10/25, In: 11/12 (extended))
HW 4: Virtual Memory and I/O (pdf) (Out: 11/11, In: 12/2)
We will make solution sets for these homeworks available. Homeworks are important preparation for exams.
Exams
Midterm: Monday, 10/25 (2 hours, anytime, see CampusWire for Details)
Covers lectures 1-9 and related reading/materials in syllabus
Midterm Review Session: Thursday, 10/21, 6pm (Discussion)
Final: Monday, 12/6 (2 hours, anytime, see CampusWire for Details), with accomodation for students who for which this cannot be done
Covers lectures 10-20, and related reading/materials in syllabus
Final Review Session: Thursday, 12/2, 6pm (Discussion)
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)
Windows Subsystem for Linux
Cygwin Unix Emulation Environment for Windows
Last modified: Thu Nov 11 16:46:49 CST 2021