GEORGE MASON UNIVERSITY
DEPARTMENT OF COMPUTER SCIENCE
CS 367-002 - Computer Systems and Programming
Fall 2015
Prof. Elizabeth White
email: white@gmu.edu
Office: Rm. 5315, Engineering
Phone: 703-993-1586
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.
Course Outcomes
Upon completion of this course, students should be able to:
- Demonstrate an ability to design and implement C programs.
- Demonstrate knowledge of computer arithmetic and logic operations and representations of data at the machine-level.
- Demonstrate knowledge of machine-level representations of (C) programs.
- Demonstrate an ability to use debuggers.
- Demonstrate an understanding of the idea of a process, how processes are created and how they are manipulated via interrupts, signals, and context switches.
- Demonstrate an understanding of process-level memory issues including object file linking, process address spaces and virtual memory.
Prerequisite
Grade of C or better in CS 262 (or CS 222) and in ECE 301, 303, 331, or 445.
Readings
The required textbook for this class is Computer Systems: A Programmer's Perspective by Randal Bryant and David O'Hallaron (Prentice Hall, Third Edition).
Grading
The grade for the course will be based on the following components:
- Homework Assignments (15%)
- Lab Assignments (30%)
- Two equally weighted semester Exams (30%)
- Final exam (25%)
All exams are closed book.
Lab Assignments
There will be 3-4 labs equally weighted.
- Each student has three tokens available that each add 24 hours to the deadline. These are automatically applied to late lab assignments. They are worth a small bonus at semester's end if you still have them. Since no work is ever accepted more than 48 hours after the deadline, you can use at most two tokens at once.
- No work is accepted 48 hours after the deadline (even if you're using tokens!)
- After you have used your tokens, late work incurs a 25% ceiling penalty each 24-hour period entered after the deadline. (Max score drops from 100 to 75 to 50 to 0(no grade))
- The final project might not be allowed to be turned in late at all, to facilitate grading by the deadline.
- Any code turned in that does not compile will receive at most 50%. No exceptions. At this point, if the grader is able to quickly fix your code, you might get some points back. If the grader cannot immediately spot and fix the issue, you'll be fortunate to get any points at all. Turning in code that runs is a big deal!
Class Home Page
All handouts and other course material will be available on Blackboard (and possibly on Piazza as well). Discussion board is Piazza – you should receive an email invitation that will let you know how to find it. Be sure to check this board if you have questions - often someone else has already asked the same question!
Additional Information
- You must obtain an IT&E labs account if you do not already have one. Your programs will need to execute correctly on this IT&E system since that system will be used while grading your projects.
- Unless specified otherwise, programming assignments in this course are individual efforts. Information on the GMU honor code can be found at http://www.gmu.edu/academics/catalog/9798/honorcod.html A CS-centric version of this is available at https://cs.gmu.edu/wiki/pmwiki.php/HonorCode/CSHonorCodePolicies
- 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.