GEORGE MASON UNIVERSITY
DEPARTMENT OF COMPUTER SCIENCE

CS 367 - Computer Systems and Programming

Fall 2010

 MW 1:30 - 2:45  pm,  AB L008

Prof. Sanjeev Setia
setia at cs dot gmu dot edu
703-993-4098

Description

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.

Prerequisites

Grade of C or better in CS 262 or 222 AND ECE 301 or 331.
NOTE: Prerequisites will be enforced strictly.

Course Outcomes

Upon completion of this course, students should be able to:

Readings

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).

Course Outline

Week 1: Overview of Computer Systems (Ch 1);  C programming (Review)
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
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

Grading

The grade for the course will be based on the following components: (i) Lab 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 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.

Exam Schedule

Mid-term exam I: Oct 12 (tentative); Midterm Exam II:  Nov 8 (tentative)   Final exam:  Wed, Dec 15 (1:30 - 4:15 pm)

Quizzes

10% of the course grade is based on quizzes and class participation. There will be four quizzes distributed over the semester. The dates of the quizzes will not be announced in advance.

Lab and HW Assignments

There will be three lab or programming assignments (although one of these "programming" assignments will not involve writing code). You may work in a group of up to two students on the second and third assignments, whereas the first programming assignment will need to be completed individually.  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

Office hours will be on MW 3 - 4 pm in my office (Room 5305, Engineering Building), or by appointment.

TA

TBA.

Class Home Page

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.

Computer Accounts

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.

If you are a student with a disability and you need academic accommodations, please see me and contact the Disability Resource Center (DRC) at 993-2474. All academic accommodations must be arranged through the DRC.