CSC 153 Grinnell College Spring, 2007
 
Computer Science Fundamentals
 


  Lab Index    Supplemental Problems   Schedule ( .dvi format / pdf format / postscript )
  Instructor   Textbooks   Course Work   Deadlines   Collaboration   Grading   User-Consultants

Computer Science 153 studies basic concepts of computer science, with an emphasis on problem-solving techniques from functional and object-oriented perspectives. Functional elements include data types, procedures as first-class objects, recursion, and binding. Classes, objects, and methods are introduced as basic elements of object-oriented problem solving. Examples of core data types and classes include stacks, queues, priority queues, trees, and lists. Additional topics include the representation of data and some elements of algorithm analysis.

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.

A Comparison of CS 151-152 with CS 153:
At Grinnell College, the first courses in computer science (CS 151-152 or CS 153) introduce the functional, imperative, and object-oriented paradigms.

Instructor

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.

Textbooks

Clinger, William, Rees, Jonathan, et al. Revised (5) report on the algorithmic language Scheme. December 5, 1998.

Chez Scheme version 5 system manual. Bloomington, Indiana: Cadence Research Systems, 1994.

Optional Java Resource: During the first half of the semester, a textbook for the Java programming language will be identified as an optional resource for use in the second half of the semester.

Also, Sun's on-line Java documentation and manual provides useful information about the Java programming language. Two helpful sites follow:

Schedule

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

Also, 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

Course Work will involve a combination of the following activities.

Deadlines

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 MathLAN is down for an unscheduled period for a period of three or more hours during the week preceding the assignment. Normally, a program, project, or laboratory write-up is due every third class meeting.

Absolute Deadline: All homework must be turned in by Friday, May 11 at 5:00 pm;
laboratory reports or programs received after that time will not be counted in the grading of the course.

Collaboration

The work in this course is split between individual and group work. Students are encouraged to work together on all laboratory activities and on the simulation project. However, since a primary goal of the course is to enable students to develop their own programs, collaboration is not allowed on supplemental problems, the CGI project, or tests. In addition, students should note the department's policy regarding the role of user-consultants for Computer Science 153 .

Grading

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: 35% Programs: 15% Hour Tests: 30% Final Exam: 20%


This document is available on the World Wide Web as

     http://www.walker.cs.grinnell.edu/courses/153.sp07/index.shtml

created 8 December 2004
last revised 15 January 2007
Valid HTML 4.01! Valid CSS!
For more information, please contact Henry M. Walker at walker@cs.grinnell.edu.