Fundamentals of Computer Science I (CS151.01 2006F)

Front Door

This handout is also available in PDF.


Welcome to the Fall 2006 session of Grinnell College's CSC 151, Fundamentals of Computer Science I, which is described relatively briefly in the official blurb. My own take on this course is that we'll be starting to develop your knowledge of Computer Science and Algorithmic Problem Solving. We will be using Scheme as our development language. As in all Grinnell classes, we'll also be working on general thinking and work skills.

In an attempt to provide up-to-date information, and to spare a few trees, I am making this as much of a paperless course as I can. Hence, materials will be in a course web. You may want to read the basic instructions for using this course web.

The Fall 2006 sessions of CSC151 includes two experimental components: (1) We will be incorporating a significant section on using Scheme to explore issues in computer graphics. (2) Both CSC151 instructors will be sitting in on each other's courses so that we can keep them more in synch. Hence, you will see Professor Janet Davis in my class, and her students will see me in her class.

Important Warnings

Warning! Experience shows that CSC151 exercises different parts of your brain than other courses (even than math courses). Expect some difficult times, but have confidence that you can get through them and that you'll come out of the course with much more knowledge.

Warning! Computers are sentient, stupid, and malicious. When things go wrong, don't blame yourself. Ask me or a TA for help.


Meets: MWF 9:00-9:50 a.m., Tue 11:00-11:50 a.m.

Instructor: Samuel A. Rebelsky (, Science 2427. Office hours: M-W, F, 2:15-3:05. I also tend to follow an open door policy: Feel free to stop by when my door is open or to make an appointment for another time.

Teaching Assistant: Emily Jacobson ( Office hours TBD.

Grading (subject to change): Class participation: 15%; Regular homework: 25% (six or so graded homework out of sixteen or so total assignments); Project report: 15%; Exams: 45% (3 graded exams plus optional final).

The final examination for this course is optional. It can be used as a makeup for one examination. I will also drop the lowest homework grade you receive.

More information on grading can be found in the grading policies page.

Labs: Computer science 151 is taught in a collaborative workshop style. Each day, you'll work on laboratory problems with other students in the class. We may start each day with a short lecture/discussion and end with a reflective discussion.

Extra Credit: I offer a number of forms of extra credit during the semester. Here are some of the most common ones. Throughout the term, I may suggest other forms of extra credit.

Tutoring: The Math Lab makes tutors for 151 available at regularly scheduled times. As soon as tutors have been scheduled, I'll let you know what those times are (and post them on this page).

Optional Books and Other Readings

Kelsey, Richard, Clinger, William, and Rees, Jonathan, eds. (1998). Revised5 Report on the Algorithmic Language Scheme. February 20, 1998. The concise and complete definition of the Scheme programming language. You won't need to understand all of it, but you'll find it helpful to keep it by your side.

The PLT Team Languages Team (2006). DrScheme Manual. The guide to the Scheme development environment we'll be using.

Rebelsky, Samuel (2006). The CS151.01 2006F Course Web. The hypertext that you are currently reading. Many of these materials (particularly those under Readings and Labs are required. You should make it a point to load the page of the day at the beginning of each class to check announcements and such.

Optional: Davis, Janet (2006). The CSC151.02 2006F Course Web. The course web for the other section of this class.

Optional: Springer, George and Friedman, Daniel P. (1989). Scheme and the Art of Programming. Cambridge, MA: MIT Press. The textbook that we formerly used in the class.



Wednesday, 9 August 2006 [Samuel A. Rebelsky]

Thursday, 24 August 2006 [Samuel A. Rebelsky]

Friday, 25 August 2006 [Samuel A. Rebelsky]

Saturday, 26 August 2006 [Samuel A. Rebelsky]

Sunday, 27 August 2006 [Samuel A. Rebelsky]


Disclaimer: I usually create these pages on the fly, which means that I rarely proofread them and they may contain bad grammar and incorrect details. It also means that I tend to update them regularly (see the history for more details). Feel free to contact me with any suggestions for changes.

This document was generated by Siteweaver on Mon Dec 4 08:35:59 2006.
The source to the document was last modified on Mon Dec 4 08:35:57 2006.
This document may be found at

Valid HTML 4.01 ; Valid CSS! ; Creative Commons License

Samuel A. Rebelsky,

Copyright © 2006 Samuel A. Rebelsky. This work is licensed under a Creative Commons Attribution-NonCommercial 2.5 License. To view a copy of this license, visit or send a letter to Creative Commons, 543 Howard Street, 5th Floor, San Francisco, California, 94105, USA.