EECS 213: Introduction to Computer Systems, Spring, 2017
Instructor: | Peter A. Dinda (Office Hours: Tuesdays, 9-12, Tech L463) |
Teaching Assistants: |
Conor Hetland (Office Hours: Wednesdays, 4-7, Ford 2-211)
Georgios Tziantzioulis (Office Hours: Fridays, 3-6, Tech L466)
David Samuels (Office Hours: Mondays, 12-3, Wilkinson Lab)
William Wallace (Office Hours: Thursdays, 4-7, Wilkinson Lab)
Murphy Angelo (Office Hours: Mondays, 4-7, Wilkinson Lab)
|
Class Sessions: | Tuesdays and Thursdays, 2-3:20pm |
Lecture Location: | Tech L251 |
Enrollment Limit: | 80 (will be about 60) |
Final Review Session: Monday, 6/5, 5pm, Tech L251
Midterm Review Session: Wednesday, 4/26, 6pm, Tech L251
GDB/Reverse Engineering Tools Review Session: Monday, 4/17, 6pm, Tech L221
Unix Review Session: Tuesday, 4/4, 6:30, Tech L221
EECS 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.
Communication
We will use Canvas to report grades and for homework hand-in, but for nothing else. For
critical announcements, we will send email to the addresses that
CAESAR maintains.
For discussion, we will use Piazza: EECS 213
Piazza Site. Directing your questions to Piazza will likely
produce the fastest response, and everyone else in the class will also
benefit.
Each student is required to submit at least one question based on the readings by noon of the day of the class session that covers them. Information on how to do this will be given in class and Piazza.
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: 3/28, In: 4/13)
Bomb Lab (pdf) (Out: 4/13, In: 5/2)
Attack Lab (pdf) (Out: 5/2, In: 5/16)
SETI Lab (Parallelism Lab) (pdf) (Out: 5/16, In: 6/1)
Homework Assignments
HW 1: Integer and Floating Point Number Representations (pdf) (Out: 3/30)
HW 2: De-compiling Assembly Code (pdf) (Out: 4/11)
HW 3: Memory and Cache (pdf) (Out: 5/1 (originally planned 4/25))
HW 4: Virtual Memory and I/O (pdf) (Out: 5/22) [delayed due to moving up the pthreads/parallelism lectures]
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: Thursday, April 27, 6pm, Annenberg Hall G15
Covers lectures 1-9 and related reading/materials in syllabus
Midterm Review Session: Wednesday, 4/26, 6pm, Tech L251
Final: Friday, June 9, 9am, Tech L251
Covers lectures 10-20, and related reading/materials in syllabus
Final Review Session: Monday, 6/5, 5pm, Tech L251
Lecture-related pointers
My Lecture Slides
I am not using slides all that much. Nonetheless, the lectures for which I have used slides will appear below. You may also find the CMU lecture slides (see below) to be useful.
General lecture slides, videos, and other materials for the CMU version of the class
Java applets showing how gates are built from CMOS transistors
Java simulators of logic and more complex circuits
Resources
The Book's Student Site
Contains many useful FAQs, Primers, etc.
Make Introduction (pdf)
Gdb commands (pdf)
Gdb manual (html)
An amazing online disassembler
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
Wilson, P., et al, Dynamic Storage Allocation: A Survey and Critical Review, International Workshop on Memory Managment, September, 1995. (pdf)
Peter Dinda
Last modified: Thu Jun 1 17:23:43 CDT 2017