|CSC 151||Grinnell College||Fall, 2005|
|Fundamentals of Computer Science I|
|Instructor||Textbooks||Course Work||Supplemental Problems||Schedule|
Computer Science 151 has at least four major goals:
Problem-Solving Perspectives: Computer science recognizes four problem-solving approaches as being fundamental to work in the discipline. Each approach involves a distinct way of thinking, and each is supported by a range of computer languages. These paradigms may be outlined as follows:
Since different approaches have advantages for different problems, people involved with computing should be comfortable with several of these paradigms. For this reason, CS 151 introduces one approach (functional programming with Scheme) and touches on another approach (imperative programming). CS 152 then builds on this experience by considering another approach (the object-oriented paradigm with Java) and continues a discussion of the imperative paradigm. Together, CS 151 and CS 152 provide students with multiple views of problem solving and with experience with two important programming languages.
Henry M. Walker
Office: Science 2420
Telephone: extension 4208
Office hours are posted weekly on the bulletin board outside my office.
Additional hours can be scheduled by appointment.
If you wish, you may reserve a half hour meeting by signing up on the weekly schedule.
The primary reference for the Scheme Programming Language is:
Felleisen, Matthias, Findler, Robert Bruce, Flatt, Matthew, and Krishnamurthi, Shriram. How to design programs: an introduction to computing and programming (Cambridge, Massachusetts: The MIT Press, 2001). The full text of this book is available on the World Wide Web (follow the link).
While the schedule for this course is expected to evolve, a tentative, day-by-day class schedule is available. This schedule includes a listing of all readings, labs, and assignments.
Course Work will involve a combination of the following activities.
Before each class, you should complete the reading for that laboratory exercise, so that you will be prepared for the lab itself.
You are not expected to finish a laboratory during a class period, but you should complete as much of the laboratory exercise as possible, asking questions as they arise. Your primary homework is to finish the lab before the next class meeting. If you encounter questions on the lab after class, please see me in my office or ask at the start of the next class.
Fourteen labs require a formal write-up, explaining what work you have done, showing any programming you have done, indicating tests or experiments run, and giving your conclusions. Labs designated [Req] on the Tentative Class Schedule are required. Required lab work should follow a specified format for lab write-ups
Labs designated [EC] may be done for extra credit. In order for extra-credit labs to provide reasonable benefit, any such lab being submitted for credit must be turned in within 2 weeks of when it is scheduled for coverage in class. As with written homework, extra credit may not raise a student's average on laboratories above 120%.
Many lab activities should be done in groups of two or three, although you may work individually on labs after Lab 7. Only one write-up is expected per group.
Deadlines are shown on the Tentative Class Schedule , and work is due at the start of each class specified. A penalty of 25% per class meeting will be assessed for any assignment turned in late, even work submitted at the end of a class. However, an extension of at least one class period is automatically granted if the MathLAN network is down for an unscheduled period for a period of three or more hours during the week preceding the assignment. Normally, a program or laboratory write-up is due every third class meeting.
Absolute Deadline: All homework must be turned in
by Thursday, December 8, at 5:00 pm;
laboratory reports or programs received after that time will not be counted in the grading of the course.
The work in this course is split between individual and group work. Students are encouraged to work together on all laboratory activities. However, since a primary goal of the course is to enable students to develop their own programs, collaboration is not allowed on homework assignments, supplemental problems, or tests. In addition, students should note the department's policy regarding the role of user-consultants for Computer Science 151 .
The final grade will be based upon each student's demonstration of his or her 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 approximate the relative weights attached to various activities in this course.
|Lab. Write-ups: 30%||Programs: 20%||Hour Tests: 30%||Final Examination: 20%|
If you have physical, psychiatric, or learning disabilities and require accommodations, you should follow these steps:
I would be delighted to talk with you to work out any details.
This document is available on the World Wide Web as
created 9 January 1997
last revised 20 August 2005
|For more information, please contact Henry M. Walker at firstname.lastname@example.org.|