GEORGE MASON UNIVERSITYDEPARTMENT OF COMPUTER SCIENCE

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.

Readings

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

Course Outline

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

Grading

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

All exams are closed book.

Programming Assignments

There will be four or five programming assignments. The relative weight for each
assignment is based on the amount of effort that is required. 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. Any violation of the honor code will result in an F
for the
class.

Office Hours

Office hours will be on Tuesday and Thursday from 1-1:30pm in my
office (S & T II Room 343), or by appointment.

UTA

Class Home Page

All handouts and other course material will be available at the 367 home page.

Computer Accounts

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.