This course provides an introduction to computer systems from a programmer's perspective.
Topics include machine-level representation of data and programs, linking and loading, processes,
virtual memory and memory allocation.
Upon completion of this course, students should be able to:
Grade of C or better in ECE 303, 331, or 445. (Same as 2007 prerequisites.)
The required textbook for this class is Computer Systems: A Programmer's Perspective by Randal
Bryant and David O'Hallaron (Prentice Hall, 2003). A reference text for the C programming
language is the classic Kernighan and Ritchie book "The C Programming Language" (2nd edition,
Prentice Hall, 1988).
Week 1: | Overview of Computer
Systems (Ch 1); Intro to C programming |
Week 2: | Programming in C (cont'd) |
Week 3 | Programming in C (cont'd) |
Week 4 |
Representing & Manipulating Information (Ch 2) |
Week 5: | Ch 2 (contd); |
Week 6: | Machine-level Representation of Programs (Ch 3) |
Week 7: | Ch 3 (cont'd) |
Week 8 |
Ch 3 (cont'd) |
Week 9: | Ch 3 (cont'd) |
Week 10 |
Ch 3 (cont'd) |
Week 11: | Linking (Ch 7) |
Week 12: | Exceptional Control Flow (Ch 8) |
Week 13 | Ch 8 (cont'd) |
Week 14: | Virtual Memory (Ch 10) |
Week 15: | Review |
The grade for the course will be based on the following components: (i) Programming and Homework Assignments (50%) (iii) Mid-term exam (25%) (iii) Final exam (25%).
Late Policy: For late submissions, points will be deducted as follows: 3% per day for the first three days, 10% per day after that.
All exams are closed book.
You are expected to abide by the University's honor code during the semester. Any violation of the honor code will result in an F for the class.
Office hours will be on Tuesday from 3:45-4:30pm in my office (S & T II Room 343), or by appointment. I'm usually in my office before class.
Raheem Rufai
Office hours: Wedn 7:30 - 8:30pm, Thurs 7:30 - 8:30pm, ST2 room 365
Email: rrufai@gmu.edu
All handouts and other course material will be available at the 367 home page.
If you're planning to use the computers on campus for doing your
projects,
please obtain an IT&E labs
account. Even if you are using your own computer, your programs need to
execute correctly on the Linux computers in the IT&E lab since that
system will be used while grading your projects.