General Information
How am I going to get an A in this course?
As of today, you are learning for life, not exams.
College 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.
Naturally, 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 study the methods we teach so that they become second nature. After all, you don’t want to waste your time, and we don’t want to waste ours either.
So, if you wish to earn a grade in this course, you must print the Course Contract, sign it, date it, and turn it to enter your first lab session (2501); you may not enter the lab without a signed contract. Your signature acknowledges that you have read these notes and understood the contract between you and the course staff. Promise As long as you will live up to its spirit, we will stand by you during this semester.
Staff
your instructors are Leena Razzaq, Nat Tuck, Nat Tuck.
your teaching assistants are William Guo, Preston Carpenter, Martha Hamlin, Rebecca MacKenzie, Naoki Yokoyama, Alexander Jo, Adrian Kant.
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.
Your tutors are Adrian Kant, Spencer Aronstein, Manman Liang, Yifan Xing, Amogh Dayal, Zeqing Zhang, Patrick Watrous, Kashish Jagga, John Gallagher, Mitko Nikolov, Ben Clauss, Suzanne Becker, Vyshnavi Chunduru.
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
Instructor
Time
Days
Location
Leena Razzaq
09:15am-10:20am
MWR
IV 019
Nat Tuck
01:35pm-02:40pm
MWR
Hurtig 129
Nat Tuck
04:35pm-05:40pm
MWR
Hurtig 130
Labs
The course comes with several lab sections. The labs start the second week of class.
Lab
Instructor
Time
Days
Location
1
Naoki Yokoyama
2:50pm
Wed
WVH 210
2
Rebecca MacKenzie
2:50pm
Wed
WVH 212
3
Alexander Jo
11:45am
Thu
WVH 210
4
Adrian Kant
11:45am
Thu
WVH 212
5
William Guo
2:50pm
Thu
WVH 210
6
Martha Hamlin
2:50pm
Thu
WVH 212
99
Preston Carpenter
never
Xzy
The Moon
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.
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
We will use DrRacket (v6.2.1), a programming environment for a family of programming languages. For Fundamentals I, we will stick to the HtDP teaching languages plus a small number teachpacks. DrRacket is installed on the CCS computers.We urge you to download DrRacket to your own computer so that you can work on CS 2500 wherever, whenever you like. It is also freely available on the web in case you wish install it on your own computer.
DrRacket runs on most popular platforms (Windows, Mac OS X, Linux, and other *nixes). Programs written in the teaching languages have mostly the same behavior on all platforms. You therefore do not need to worry what kind of machine you use when you run your programs.
Problem Sets
The purpose of the problem sets is to prepare you for the exam.
There will be weekly problem sets. Some problems are drawn from HtDP, the textbook; others are constructed for this instance of Fundamentals I. We will grade some but not all problems from each set, picked randomly after the due date.
Pair Programming
You must work on your problem sets (2–12) in assigned pairs. Your partner will be in your lab, 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—
Exams and Quizzes
We will have two in-class exams to assess your progress. See the syllabus for dates.
The exams will test material similar to that assigned in weekly problem sets. If you can solve every homework problem on your own, the exams will be easy. If not, you will have a difficult time.
We will have the daily quiz. It is our one concession to your “high school thinking.” Consider it a crutch for your self-discipline. Each week we will select at most one of these quizzes on a random basis for grading; the rest will get thrown away.
Grades
exam 1
25%
exam 2
30%
problem sets
35%
we will drop the worst homework grade
daily quizzes
5%