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 dynamic memory allocation.
The required textbook for this class is Computer Systems: A Programmer's Perspective by Randal Bryant and David O'Hallaron (2nd edition, Prentice Hall, 2010). 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 (Chapter 1); Representing and Manipulating Information (Chapter 2) |
Week 2: | Chapter 2 (cont'd) |
Week 3 | Chapter 2 (cont'd) |
Week 4 |
Chapter 2 (cont'd) |
Week 5: | Machine-level Representation of
Programs (Chapter 3) |
Week 6: | Chapter 3 (cont'd) |
Week 7: | Chapter 3 (cont'd) |
Week 8 |
Chapter 3 (cont'd) |
Week 9: | Chapter 3 (cont'd) |
Week 10 |
Linking (Ch 7) |
Week 11: | Dynamic Memory Allocation (Ch
9.9) |
Week 12: | Processes (Ch 8) |
Week 13 |
Memory Hierarchy (Ch 6) |
Week 14: | Virtual Memory (Ch 9) |
Week 15: | Review |
The grade for the course will be based on the following components:
(i) Projects and Homework Assignments (45%) (ii) Quizzes & Class
participation (10%) (iii) Mid-term
exams (25%) (iii) Final exam
(20%). The final exam will be comprehensive
in
nature, i.e., it will cover the whole course.
There will be two homework assignments and three or four lab assignments. The relative weight for each assignment is based on the amount of effort that is required.
In order to obtain an A,
your overall score in the course should be at least 90%.
A
score
below 50% will result in an F.
Mid-term exam I: February 19 (tentative); Midterm Exam II: April 2 (tentative) Final exam: Thursday, May 9 (10:30 AM - 1:15 PM)
There will be three or four lab or programming assignments (although one of
these "programming" assignments will not involve writing code). Some of these lab assignments will need
to be completed individually, whereas uou may
work in a group of up to two students on some
assignments. There will
be at least two homework assignments which are to be completed
individually by each student.
You are expected to abide by the University's honor code and the CS Department's Honor Code and Academic Integrity Policies 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 referral to the honor council with a recommendation that the student be awarded an F for the class.
NOTE: I will be using MOSS to detect plagiarism in the programming assignments.
Office hours will be on Wed 2-3 pm in my office (Room 4300, Engineering Building), or by appointment.
Harnil Rafalia -- hrafalia@gmu.edu (GTA), Chris Cunningham (UTA) -- ccunnin5@gmu.edu, Peter Schatz (UTA) -- pschatz@masonlive.gmu.edu; Office hrs: TBA
All handouts and other course material will be available at URL http://www.cs.gmu.edu/~setia/cs367/
or on the Blackboard page for the
class.
Please obtain an VS&E labs
account. Even if you are using your own computer, your programs need to
execute correctly on the Linux computers in the VS&E lab since
those
systems will be used while grading your projects.
If you are a student with a disability and you need academic
accommodations, please contact the Disability Resource
Center (DRC) at 993-2474. All academic accommodations must be arranged
through the DRC.