U211 F '05
Ofc Hrs

General Information

Earning a Grade: You are in college now. This is your last chance to learn how to learn by yourself, without pressure from parents, teachers, or peers. You want to learn that, because the quality of your life depends on it. Your life. Nothing more, nothing less.

Now we understand that you want some feedback, both in terms of specific corrections and in terms of a grade. You want feedback so that you can improve your learning process. And we will give you that feedback. It is our end of the bargain. Your end is to demonstrate that you actually use the methods and tools for learning that work best in our experiemce. After all, you don't want to waste your time, and we don't want to wast ours either.

So, if you wish to earn a grade in this course, you must print the Course Contract (see tab on the left), sign and date it, and turn it on the day after the first lab. Your signature acknowledges that you have read and understood the contract and its implications. As long as you will live up to this contract, we will stand by you.



Prof. Matthias Felleisen, Prof. Viera Proulx

Teaching Assistants:

Richard Cobbe, Ryan Culpepper, Felix Klock, Theo Skotiniotis, Dimitrios Vardoulakis
TAs teach labs, supervise the grading of homework sets, hold office hours, and occasionally substitute in lectures. In general, they are apprentice teachers and are here to learn how to run a course.


Janet Wilson, Damien Angelos, Dave Halperin, Matt Horan, Manuel Batista, Mark Ursino, Sarah House
Tutors hold office hours and group meetings in colleges and labs, grade homeworks and provide feedback about the class's progress. In general, they are undergraduate and graduate students who know that to learn something really well, you need to teach it.

Class: Class consists of lectures and lab meetings.

Lectures: The course has two lecture sections:

MWTh 09:15amShillman 335Felleisen
MWTh 04:35pmWVG 108Proulx
You must sign up for one section and make an effort to attend this section on a regular basis. If you (need to) miss a lecture, you're welcome to attend the corresponding lecture in some other section.

Labs: The course also has lab sections, aka CS U 212. The labs start on Tuesday, September 13. You signed up for a lab section during registration; if you need to change your choice, you must go to the registrar and change it there.

You will attend your chosen lab section on a weekly basis. The purpose of labs is to give you some hands-on experience with the actual tools, and to explain some of the principles from lecture with hands-on examples.

Computing Environment: You will do your assignments in DrScheme v299 (.400), a programming environment for Scheme and many other programing languages. We will use the HtDP teaching languages. DrScheme is installed on the CCS computers. DrScheme is also freely available on the Web (see tabs on the left). You may install it on your computer at home and work there.

DrScheme runs on most popular platforms (Windows 2000/XP, Mac OS X, Linux). Programs written in DrScheme have the same behavior on all platforms. You therefore do not need to worry what kind of machine you use when you run DrScheme.

Assignments: There will be weekly problem sets. The problems are drawn from the book and are supplemented with additional problems. We will grade some but not all problems from each set (picked randomly after the due date). The rest of the work prepares you for the exam.

We will drop the homework grade with the worst impact on your final grade from consideration for the final grade. You may therefore choose to skip one homework set; we'll just assign a zero (0) for this homework.

Pair Programming: You must work on your problem sets (2 - 11) in pairs. Your partner will be in your lab, and your lab TA will help you find someone.

Pair programming means that you and your partner study the problem sets individually and possibly even sketch out solutions. Then you meet and jointly develop solutions to each problem. One of you--the pilot, and the other one--the co-pilot--looks over the pilot's shoulders. When something isn't clear, it is the co-pilot's responsibility to question the approach. You must switch roles during such a problem solving session. We will practice pair programming in lab.

You are free to collaborate at will with others on the problem sets. If you do so, you must acknowledge all collaborators on your cover page. Failure to do so will result in reductions of your homework grade.

Everyone must be able to solve every homework problem on the due date.

Warning: You must be able to solve every homework problem on your own.

Are you sure you have read the warning?

Exams and Quizzes: We will have two hour evening exams to assess your progress:

  • 18 October 2005
  • 17 November 2005
Both exams will take place from 6:30-9:30 in Richards Hall (RI) 200 (see the campus map).

The exams will test material similar to that assigned in weekly homeworks. You will take the exams by yourself. Collaboration is not tolerated. If you solve every homework problem on your own, the exams will be easy. If not, you will probably have a difficult time with the exams.

To provide some (self)discipline, each lab session with start with a quiz on the preceding homework (or lecture material). If you don't answer the questions on the quiz correctly, you will not get a grade for that week's homework set and you are warned that you're not on track.

Course Journal: You must keep a course journal on your meetings with your partner(s) and your readings. For details, see the tab on journals. Your journal may contribute to your final grade.

Grades: You will get a grade for your homework (factored by the quiz performance) and a grade for your exams. Both must be passing grades; otherwise you cannot pass the course. For the final grade, we will assign a weight of 35% to the homework grade and a weight of 60% to the two exams. The remaining 5% are up to the instructors' whim and may include "journal checks".

last updated on Thu Nov 10 15:29:37 EST 2005generated with PLT Scheme