|CSC 153||Grinnell College||Spring, 2009|
|Computer Science Fundamentals|
|Lab Index||Supplemental Problems||Schedule ( .dvi format / pdf format / postscript )|
Computer Science 153 studies basic concepts of computer science, with an emphasis on problem-solving techniques from functional and imperative perspectives. Functional elements include data types, procedures as first-class objects, recursion, and binding. Control structures, linked data structures, memory management, macro processing, compilation and linking, and data representation provide basic elements of imperative problem-solving. Additional topics include an introduction to GNU/Linux operating system.
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-161 with CS 153:
At Grinnell College, the first courses in computer science (CS 151-161 or CS 153) introduce the functional and imperative problem-solving paradigms.
Henry M. Walker
Office: Science 3811
Telephone: extension 4208
Office hours are posted weekly on the bulletin board outside Science 3811, 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.
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.
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.
Henry Walker, An Introduction to C Through Annotated Examples, http://www.cs.grinnell.edu/~walker/c/index.html
Eric Huss, The C Library Reference Guide, University of Illinois Student Chapter, 1997.
The GNU make Manual, Free Software Foundation, 2006.
Optional: Graham Glass and King Ables, Linux for Programmers and Users, Pearson/Prentice Hall, 2006.
Optional: Samuel P. Harbison and Guy L. Steele, C: A Reference Manual, Fifth Edition, Prentice Hall, ISBN: 0-13-089592-X, 2002.
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 .
Course Work will involve a combination of the following activities.
Supplemental Problems extend the range of problems considered in the course and help sharpen problem-solving skills. Through the semester, seven supplemental problems will be required. Supplemental problems numbered 8 or above may be done for extra credit, although extra credit may not raise a student's average on assignments above 120%.
Hour Tests: Two hour tests are tentatively scheduled for Friday, 13 February, Wednesday, 4 March, and Monday, 27 April.
Exam: Following the College's published schedule, the final examination for this class is scheduled for 9:00 am on Thursday, May 14.
Laboratories: Laboratory sessions introduce specific features of Grinnell's computing environment, highlight concepts and constructs introduced in class, allow instructor assistance in a ``hands-on'' setting, and supplement normal office hours.
Approximately ten 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 — 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 8. 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 department's Linux network 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,
8 May 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 supplemental problems or tests. In addition, students should note the department's policy regarding the role of technology-consultants for Computer Science 153 .
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
created 24 March 2008
last revised 6 April 2009
|For more information, please contact Henry M. Walker at firstname.lastname@example.org.|