EECS 213: Introduction to Computer Systems, Fall, 2008

Instructor:Peter A. Dinda (Office Hours: Thursdays 2-4pm)
Teaching Assistant:None Assigned
Lecture Time:MW 2-3:20
Lecture Location:Tech L158
Recitation Time:Recitation cancelled due to lack of TA support
Recitation Location:TBD
Enrollment Limit:30

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 Weinberg. 213 can also be taken for credit within the Computer Engineering curriculum.

This course has not received TA support. Therefore, the required homework and project work has been reduced.


  • We will NOT be using Blackboard
  • We will use the Google Group EECS 213 at Northwestern for class discussion. If you don't have a subscription already, you can request one:
  • Accounts, etc

  • You will want a Linux account on the TLab computers.
  • You will want a Linux account on a private server in the VLab that will be used in the class. These accounts will be discussed in class.
  • If you haven't used Linux or Unix remotely before, you will want to read Using Unix Remotely Without the Excruciating Pain.
  • If you haven't used Linux or Unix before, you may want to watch this video: Introduction to Unix (Peter Dinda) (Real, Part 1, Real, Part 2)
  • Important Handouts

  • Syllabus (pdf)
  • Physics To Logic (pdf)
  • Unix Systems Programming In A Nutshell (pdf)
  • Sockets In A Nutshell (pdf)
  • Concurency (pdf)
  • Virtual machines (pdf)
  • Distributed and Parallel Systems (pdf)
  • Where To Go From Here (Not yet available)
  • Programming Assignments

  • Data Lab (pdf) (Out: 9/24, In: 10/13) contest!
  • Bomb Lab (pdf) (Out: 10/13, In: 10/29) contest!
  • Exploit Lab (pdf) (Out: 10/31, In: 11/14) contest!
  • Malloc Lab (pdf) (out: 11/14, In: 12/3)
  • Homework Assignments

    Due to the lack of TA support, homework assignments will be distributed, but not graded.
  • HW 1: Integer and Floating Point Number Representations (pdf) (Out: 9/29, In: 10/8) (Solution available in HANDOUT directory)
  • HW 2: De-compiling Assembly Code (pdf) (Out: 10/8, In: 10/22) (Solution available in HANDOUT directory)
  • HW 3: Memory and Cache (pdf) (Out: 10/31 , In: 11/17 ) (Solution available in HANDOUT directory)
  • HW 4: Virtual Memory and I/O (pdf) (Out: 11/17, In: 12/3) (Solution available in HANDOUT directory)
  • 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 book's lecture slides (see below) to be useful.
  • October 8 (ppt)
  • October 13 (ppt)
  • October 15 (ppt)
  • October 20 (ppt)
  • October 22 (ppt)
  • November 19 (ppt) (Partial)
  • November 24 (ppt) (Partial)
  • The Book's General Lecture Slides
  • Measure your own memory mountains using ECT memperf
  • Java applets showing how gates are built from CMOS transistors
  • Java simulators of gates and more complex circuits
  • Resources

  • The Book's Student Site
    Contains many useful FAQs, Primers, etc.
  • The Book's Code
  • Make Introduction (pdf)
  • Gdb commands (pdf)
  • Gdb manual (html)
  • The ELF Format (pdf)
  • Comparison with GAS format and Intel's assembler format (text)
  • The Intel Architecture Manuals and the AMD Architecture Manuals
  • 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: Tue Nov 11 16:07:48 CST 2008