CMPU-101: Computer Science I

Spring 2001

Sections

Section 51 Section 52
Instructor: Professor Chris Welty Professor Tom Ellman
Lectures: Mondays and Wednesdays 9:00am-10:15pm, Room 105 OLB Tuesdays and Thursdays 10:30am-11:45am, Room 105 OLB
Phone: 437-5992 437-5991
Email: welty@cs.vassar.edu ellman@cs.vassar.edu
Office: Room 117 OLB Room 118 OLB
Office Hours: Mondays and Wednesdays 10:30am-12:00pm, and by appointment Tuesdays and Thursdays 2:00pm - 3:00pm, and by appointment.

Contents

Schedule:

Week Topic Reading Assignment Lab Lecture Notes
1/15 Introduction and Welcome Lecture 1
1/22 Scheme's Read-Eval-Print loop; Basic operators; Evaluation of expressions; Definition of variables 1.1-1.5 Assignment 1
Solutions
Lab 1
Solutions
Lecture 2
Lecture 3
1/29 Defining procedures; Conditional expressions 2.1-2.3 Assignment 2
Solutions
Lab 2
Solutions
Lecture 4
Lecture 5
2/5 Flat recursion 2.4-2.5 Assignment 3
Solutions
Lab 3
Solutions
Lecture 6
Lecture 7
2/12 Deep recursion 4.1-4.4 Assignment 4
Solutions
Lab 4
Solutions
Lecture 8
Lecture 9
2/19 Accumulator method; Analysis of algorithms 4.5-4.6 Assignment 5
Solutions
Lab 5
Solutions
Lecture 10
Lecture 11
2/26 Data abstraction
Midterm Exam #1 Solutions
3.1-3.3 Assignment 6
Graphics Package
Solutions
Lab 6
Graphics Package Solutions
Lecture 12
Lecture 13
3/5 Locally defined procedures 5.1-5.5 Lecture 14
Lecture 15
3/12 Spring Break
3/19
3/26 Higher order functions; Procedure arguments 7.1-7.2 Assignment 7
Solutions
Lab 7
Solutions
Lecture 16
Lecture 17
4/2 Higher order functions; Procedure return values 7.3-7.5 Assignment 8
Solutions
Lab 8
Solutions
Lecture 18
Lecture 19
4/9 Quantifiers and sets
Midterm Exam #2 Solutions
8.1-8.4 Lecture 20
Lecture 21
4/16 Ordered pairs, functions, relations 8.5 Assignment 9
Sets Package
Solutions
Lab 9
Sets Package
Solutions
Lecture 22
4/23 Example application problems 6.5 Assignment 10
Dating Package
Solutions
Lab 10
Dating Package
Solutions
Lecture 23
Lecture 24
4/30 Review Essay Assignment Lecture 25
5/7 Review Session for Final Exam:
Thursday, May 10, 11:00, CS Classroom.
5/14 Final: Monday, May 14. 1:00 PM.
Section 51 (Welty): RH 312
Section 52 (Ellman): RH 303

Books and other Resources:

Description:

This course introduces the two most fundamental aspects of Computer Science: the design of systematic problem-solving methods, known as algorithms, and their actual implementation by means of computer programs. No prior knowledge of Computer Science or experience with computers is required, beyond the ability to send and receive email and use a web browser.

The programming language Scheme will be used in this course. Scheme is a simple, powerful, flexible, and easy-to-learn programming language. Students will be given weekly homework assignments involving the design, implementation, and testing of computer programs of increasing complexity and sophistication. These assignments form a crucial part of the course. Students are required to work on them individually. Collaboration with other students is not permitted and will be subject to severe penalties.

The course includes a supervised half hour weekly lab session, to explain the actual use of the computers and to reinforce certain concepts discussed in class. Apple Macintosh computers running the DrScheme interpreter will be used.

Students are expected to do the assigned readings before class. The assigned readings listed in the schedule are all from the book, Scheme and the Art of Programming, and are listed for the week the reading must be completed. In addition, all students are required to read sections of the second book, The Limits of Computing, by the end of the semester and write an essay on it (see Grading below).

Students are expected to attend all lectures, with exceptions permitted in case of illness and family emergencies. These are large sections, so lectures will begin and end on time and students are expected to arrive before lectures begin. Lateness and talking out of turn or to another student are disruptive. A student who wishes to ask a question should raise his/her hand and wait to be recognized.

We attempt to conserve paper and other resources by making this course paperless, as much as possible. All assigned work will be available from the web page. Students have the option of printing these out themselves, however since work will almost always be done on a computer, students are encouraged to conserve resources themselves. All assignments will be submitted electronically.

There is a mailing list for this course and a web page, at http://www.cs.vassar.edu/~cs101/. Notices will be sent by email and also posted to the messages section of the course web page. Students are responsible for keeping in touch.

In addition to faculty office hours, there are a number of student coaches who will be available during scheduled labs and at other peak hours of laboratory use, such as evenings and weekends. The coaching schedule will be published on line and outside the laboratory.

Grading:

There will be four types of graded material in this course: Programming assignments, labs, exams, and an essay.
Programming Assignments 30% Programming assignments are due at the start of class on the due dates, and are submitted electronically. Late assignments will be accepted, with a 10% penalty, and only up until the start of the next class. There will normally be an assignment each week.
Labs 10% Each student will be assigned a lab section and is expected to attend their lab each week to complete an exercise. Labs are supervised by student coaches.
Essay 10% There will be a five-page essay assignment based on readings from The Limits of Computing. This will be assigned before Spring Break and due near the end of the semester.
Midterm 1 15% Each midterm will be open-book, open-notes, and cumulative, i.e. may cover material from the beginning of the semester. The midterms will be scheduled out of class on an evening, in order that both sections take the same exam at the same time.
Midterm 2 15%
Final Exam 20% The final exam will be scheduled during finals week, and like the midterms will be open book, open notes, and cumulative.

Academic accommodations are available for students with documented disabilities. Please schedule an appointment with the instructor early in the semester to discuss any accommodation that may be needed for the course. All accommodations must be approved through the Office of Disability and Support Services (ext. 7584) as indicated in their accommodation letter.