| 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. |
| 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 |
|||||
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.
| 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.