CSC 201 Grinnell College Spring, 2005
Data Representation, Memory Management, and Formal Methods

Instructor Textbooks Course Work Assignments Schedule ( .dvi format / postscript / pdf format )
Labs Deadlines Collaboration Grading

Introduction: CSC 201 introduces a range of fundamental low-level CS topics, providing a complementary perspective from the high-level views given in CSC 151-152 or CSC 153. Topics covered will include:


Henry M. Walker

Office: Science 2420
Telephone: extension 4208

Office hours are posted weekly on the bulletin board outside Science 2420, with additional hours possible by appointment. You may reserve a half hour meeting by signing up on the weekly schedule, but please sign up at least a day in advance.


Brian W. Kernighan and Dennis M. Ritchie, The C Programming Language: Second Edition, Prentice Hall, New Jersey, 1998
This is the definitive book on the C programming language, by the people that designed the langauge.

David Gries, The Science of Programming, Springer-Verlag, New York, 1988.
This is the classical text on the subject of program verification.

Henry Walker, An Introduction to C Through Annotated Examples,

Henry Walker, Program Management,

Optional: Samuel P. Harbison and Guy L. Steele, C: A Reference Manual, Fifth Edition, Prentice Hall, ISBN: 0-13-089592-X, 2002.

Available On-line: Steve Summit, C Programming FAQs, including some materials from the book ``C Programming FAQs: Frequently Asked Questions'' (Addison-Wesley, 1995, ISBN 0-201-84519-9).

Optional, time permitting: Henry Walker, An Introduction to Concurrency in Unix-Based [GNU] C Through Annotated Examples,


While the schedule for this course is expected to evolve, a Tentative Class Schedule is available in .dvi , postscript , and pdf formats.

Note: If you are logged into the departmental network and want a copy printed, click duerer to have a copy printed on the printer duerer, and click pacioli to have a copy printed on the printer pacioli .

Course Work

This course will involve laboratories, written assignments, and tests.

  1. Laboratory Exercises: are scheduled periodically. Each laboratory will contain a variety of questions and problems; written responses are due the second class meeting following a lab. While not required, collaboration within a group is strongly encouraged for laboratory work.

  2. Written Assignments: Exercises will be assigned regularly throughout the course. There will be a penalty for turning papers or programs in late. Papers over two weeks late and any work after Friday, May 13, will not be accepted.

  3. Tests: Following the Tentative Class Schedule, the class will include two one-hour tests, on Wednesday, February 23, and on Wednesday, April 13.

  4. Exam: Following the published exam schedule, an exam is scheduled for 9:00 am on Tuesday, May 17, during exam week.

Late Penalty: Work is due at the start of class on the date specified in the assignment. A penalty of 33 1/3 % per class meeting will be assessed on any work turned in late, even work submitted at the end of a class. Thus, work turned in 4 days late will be weighted -33 1/3 %; since a negative score reduces a semester total, it is better not to turn the work in at all.
Exception: Deadlines for programming problems and laboratory exercises are automatically extended at least one class day if MathLAN is down for an unscheduled period of 3 or more hours during the week preceding the assignment due date. (In such cases, however, deadlines for written assignments are not extended.)

Absolute Deadline: All homework must be turned in by Friday, May 13 at 5:00 pm.
Don't even think about asking for an extension!


The work in this course is split between individual and group work. The rules for collaboration on assignments will be given for each activity.


The final grade will be based upon each student's demonstration of her or his understanding of and facility in programming, not on the performance of the class as a whole nor on a strict percentile basis. While some flexibility may be possible in determining a final semester grade, the following percentages aprovide a first approximation for the relative weights attached to various activities in this course.
Labs: 30% Written Assignments: 30% Tests: 24% Exam: 16%

This document is available on the World Wide Web as

created December 8, 2004
last revised January 20, 2005
Valid HTML 4.01! Valid CSS!
For more information, please contact Henry M. Walker at