G107 F '08
Ofc Hrs

General Information

Earning a Grade: A lot of you have one burning question on your mind as you start your MS program:
How am I going to get an A in this course?

We have some news for you: you are beyond college now. In the world of technical professional programs, it really is about what you learn.

Class: Class consists of lectures (CS G 107), two lab meetings (CS G 108), and weekly student presentations (CS G 108).

Lectures: Every lecture will consist of three parts: a one-hour lecture given by students; a one-hour question-and-answer session; and a one-hour lecture on other matters. The student lecturers will find out on Tuesday mornings that they have been chosen for the lecture that evening. You can volunteer for a lecture, but not for a specific week. The lecture will be graded.

Labs: The TAs will conduct two lab meetings to introduce you to some of the course software and to familiarize you with some basic conventions. The first lab session will be held on Thursday evening (18 Sept) and Friday (19 Sept).

Homework Presentations: Every week, you will present some your homework solutions to two of the TAs. These presentations are critical for the learning process and they are key to our evaluation of your progress. These sessions will take place in the same computer labs as the lab session.

Computing Environment: We will use DrScheme 4.1, a programming environment for the Scheme programming language, and some dialects of Java. For the first half of the course, we will stick to the HtDP teaching languages plus the World teachpack. DrScheme is installed on the CCS computers. It is also freely available on the Web (see TAB on the left) in case you wish install it on your own computer and use it for work.

Problem Sets: The problem sets have three different purposes: to help you understand what you read; to learn to design programs systematically; and to help you maintain programs over a few weeks. See the Assignments page for details.

Pair Programming: You must work on all required problems in pairs. Your partner will be chosen from your lab section, and your lab TA will assign you a partner. Every few weeks, you will get a new partner.

Pair programming means that you and your partner work on the problem sets jointly. You read them together and you work on the solutions together. One of the lab's purposes is to teach you how to work in pairs effectively; indeed, pairs are provably more effective than individuals in programming. The rough idea is this: One of you plays pilot, the other co-pilot--looks. The pilot works on the keyboard and explains aloud what is going on; it is the co-pilot's responsibility to question everything. After a problem is solved to the satisfaction of both, you must switch roles.

Theft: We will consider all collaborations outside of your assigned partnership as theft. We will report all occurrences to the administration. In the real world, thieving programmers can bring havoc on their companies, which in turn will suffer in court. Our strict and harsh course policies are intended to prepare you to function in a world that strictly enforces all property rights.

Grades: You will get one grade for each homework presentation and one grade for your lecture (if you give one; your default score for the lecture is 0). We will drop the two lowest scores from this set. Thus, if you choose to skip an assignment set or if you just don't get it one week, nothing is lost. The story is different for the second or third or ... time.

I reserve the right to amend this grading policy during the semester. In particular, we may start pre-evaluating your homework solutions automatically and assign additional scores.

last updated on Tue Jun 9 22:21:18 EDT 2009generated with PLT Scheme