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.
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 (60%) (iii) Mid-term exam (20%) (iii) Final exam (20%). There will be two homework assignments and four programming assignments. The relative weight for each assignment is based on the amount of effort that is required.
All exams are closed book. The final exam will be comprehensive in nature, i.e., it will cover the whole course. In order to obtain an A, your overall score should be at least 90%. A score below 50% will result in an F.
Mid-term exam: Oct 17 (tentative); Final exam: Monday, Dec 17 (1:30 - 4:15 pm)
There will be five programming assignments (although two of these "programming" assignments will not involve writing code). You may work in a group of up to two students on these assignments.
You are expected to abide by the University's honor code during the semester, i.e., collaboration between students in different groups on an assignment is unacceptable. Any violation of the honor code will result in an F for the class.
NOTE: I will be using MOSS to detect plagiarism in the programming assignments.
Office hours will be on MW 2 - 2:45 pm in my office (S & T II Room 430), or by appointment.
TBA
All handouts and other course material will be available at URL http://www.cs.gmu.edu/~setia/cs367/
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.