The text is Brian Kernighan and Dennis Ritchie, The C Programming Language, 2nd ed., Prentice Hall, 1988.
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 which is associated with your lecture section. Lab sttendance is required.
The students will:
There will be weekly lab assignments. The assignment for each lab is due before the beginning of the following lab session. In addition, there will be several unannounced quizzes through the semester during the labs.
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 result in a case for the Honors Committee. Any code which is presented in class or provided to you as part of the project may be included in your programs.
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: