CS 262
Introduction to Low-level Programming
Fall 2012

Dr. David Nordstrom
email: dnordstr_AT_gmu_DOT_edu
office: 5345 Nguyen Engineering Bldg.
office hours: Monday 10:30 - 11:30, Tuesday 3:00 - 4:00, Wednesday 1:30 - 2:30 and by appointment
phone: (703) 993-1565
The course website is http://cs.gmu.edu/~dnord/cs262

Textbook

The text is Brian Kernighan and Dennis Ritchie, The C Programming Language, 2nd ed., Prentice Hall, 1988.

The course

The prerequisite for this course is C or better in CS 211 or CS 222.

Most high-level programming languages (and particularly Java) insulate the programmer from the realities of the hardware on which the programs will run. C is the exception since it was originally designed to implement the Unix operating system. C offers the programmer direct access to much of the underlying hardware and, for programs running under Unix, direct access to operating system services. For these reasons C remains the language of choice for systems programming.

This is a (short) course on "low-level" programming using C. We will learn C with heavy emphasis on pointer operations and bit-level operations.

This course has a lab. You must sign up for a lab section. Lab sttendance is required.

Topics

Planned topics include:

Course outcomes

The students will:

Labs and Projects

There will be weekly lab assignments. The assignment for each lab is due before the beginning of the following lab session.

There will also be several longer programming projects. You can only turn in a project once. No revisions or additions can be made to your project after it has been submitted. Late programs will be accepted with a 10 points per day late penalty. You are responsible for keeping backups of your work ("my disk crashed" and "my roommate ate my program" are not reasons for late submissions). The projects will be posted on Blackboard.

You may discuss the programming projects with other students (this is encouraged) but you must do and submit your own work. No joint work will be accepted. Read the CS Department honor code: http://cs.gmu.edu/wiki/pmwiki.php/HonorCode/CSHonorCodePolicies, and the University honor code: http://honorcode.gmu.edu . You are bound by these honor codes. Any submitted work which shows too much commonality with others' work to be completely original, or any plagiarized work, will receive a grade of 0. Any code which is presented in class or provided to you as part of the project may be included in your programs.

Grading

There will be a midterm exam and a final. There will be no makeups on exams except under exceptional circumstances (as judged by me), and any such makeup must be arranged in advanced. Grades will be computed from a weighted average computed with the following weights: