CS 195:  Data Representation, Storage
Management, and C Programming
Instructor Textbooks Course Work Assignments Schedule ( .dvi format / postscript / pdf format )
Labs Deadlines Collaboration Grading

Introduction: CSC 195 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
E-mail: walker@cs.grinnell.edu

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.


Colin Charlton, Paul Leng, and Janet Little, A Course on C, Mc-Graw Hill Europe, Maidenhead, Berkshire, England, ISBN: 0-07-707433-5, 1993.

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

Henry Walker, An Introduction to C Through Annotated Examples, http://www.math.grinnell.edu/~walker/c/index.html

Henry Walker, An Introduction to Concurrency in Unix-Based [GNU] C Through Annotated Examples, http://www.math.grinnell.edu/~walker/c/concurrency-index.html

Henry Walker, Program Management, http://www.math.grinnell.edu/~walker/courses/195.fa01/program-mgmt.html

Optional: Samuel P. Harbison and Guy L. Steele, C: A Reference Manual, Fourth Edition, Prentice Hall, ISBN: 0-13-326224-3, 1994.

Available On-line from Campus through netLibrary.com: Cameron Newham and Bill Rosenblatt, Learning the bash Shell, O.Reily, 1998. (From a campus machine, enter the book's title, and follow the links for complete on-line access to the text. If you do not want to set up your own [free] account, you will need to use the option, "Browse this eBook online".)

The schedule

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, programs, and tests.

  1. Laboratories: Formal laboratories 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, December 14, will not be accepted.

  3. Programs: Several programming problems will be assigned throughout the semester.

  4. Tests: Following the Tentative Class Schedule, the class will include three one-hour tests, which are scheduled for Friday, September 28, Friday, October 19 and Wednesday, November 21.

  5. Exam: Following the published exam schedule, an exam is scheduled for 9:00 am on Thursday, December 20, 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, December 14 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: 15% Written Assignments: 20% Programs: 15% Tests: 30% Exam: 20%

This document is available on the World Wide Web as


created July 17, 2001
last revised September 14, 2001
Valid HTML 3.2!
For more information, please contact Henry M. Walker at walker@cs.grinnell.edu.