On this page:
Class
Labs
Computing Environment
Problem Sets
Late Policy
Pair Programming
Peer review
Exams
Grades
DrRacket

General Information

time to wake up

A lot of you have one burning question on your mind as you start your college career:

How am I going to get an A in this course?

We have some news for you

As of today, you are learning for life, not for exams.

Yes, you are in college now, and college really is about learning something and not getting a grade. As a matter of fact, if you are taking a course and the A comes easy, you are either cheating yourself or you are allowing the instructor to cheat you. Buyer beware.

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. We promise: As long as you will live up to its spirit, we will stand by you during this semester.

Class

The course has these lecture sections:

Instructor

   

Time

   

Days

   

Location

Benjamin Lerner

   

09:15-10:20am

   

MWR

   

ISEC102

Benjamin Lerner

   

10:30-11:35am

   

MWR

   

HT130

Alan Mislove

   

10:30-11:35am

   

MWR

   

SH135

Christo Wilson

   

1:35-2:40pm

   

MWR

   

SN035

Nada Naji

   

4:35-5:40pm

   

MWR

   

BK310

Byron Wallace

   

4:35-5:40pm

   

MWR

   

EV002

All lectures section will cover the same material, but each lecturer will present it with a different style. You may attend any of these lectures, on a space available basis.

Labs

The course comes with several lab sections. The labs start the first full week of class, on Sept. 12.

Lab

   

Instructor

   

Time

   

Days

   

Location

1

   

Alex Grundwerg

   

9:50-11:30

   

T

   

WVH210

2

   

John Compitello

   

9:50-11:30

   

T

   

SH315

4

   

Ameen Radwan

   

9:50-11:30

   

T

   

WVH212

5

   

Adrian Kant

   

11:45-1:25

   

T

   

HT224

6

   

Alex Jo

   

11:45-1:25

   

T

   

BK320

8

   

Catherine McLean

   

11:45-1:25

   

T

   

WVH210

9

   

John Gallagher

   

11:45-1:25

   

T

   

WVH212

10

   

Amogh Dayal

   

1:35-3:15

   

T

   

SH215

11

   

Spencer Aronstein

   

1:35-3:15

   

T

   

WVH210

12

   

Luciana Corteggiano

   

1:35-3:15

   

T

   

WVH212

13

   

Maxwell Cruz

   

3:25-5:05

   

T

   

SH415

14

   

Sadi Saleem

   

3:25-5:05

   

T

   

SH325

15

   

Sreeya Sai

   

3:25-5:05

   

T

   

SH315

You signed up for a lab section during registration. You must attend the lab section you signed up for.

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.9), a programming environment for a family of programming languages. For Fundamentals I, we will stick to the HtDP teaching languages plus a small number of 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 typically be two assignments per week. The usual schedule is this:

This is the basic schedule but may vary from week to week, especially in the beginning of the semester.

Late Policy

Falling behind on homework is never a good idea: the course presents new material every day, making catching up harder and harder. Additionally, in weeks that you are completing code reviews, your homework must be submitted on time in order for someone else to review it on time.

However, we know that your time is not always easily scheduled, and some weeks, “stuff happens.” We will therefore allow allow you to turn in your work 1 day late, with a 50% lateness deduction. This is exactly a 24 hour grace period: the submission server will prevent any further submission even 24-hours-and-one-second late — it’s not worth trying to sneak in a submission in those last few seconds.

Because Tuesday’s peer-review assignments might give away some feedback that might help you improve your Monday submission, you are prohibited from resubmitting (even late!) to Monday’s submission once you’ve started Tuesday’s submission, and the hand-in server will prevent you from doing so.

Pair Programming

You must work on your graded problem sets in assigned pairs (Note: pair, not triple or with my friends). Your partner will be a classmate in the same lab as you; your lab TA will assign you the first partner. We will switch partners twice (see syllabus).

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. The pilot works on the keyboard and explains aloud what is going on; it is the co-pilot’s responsibility to question things that do not make sense. After a problem is solved to the satisfaction of both, you must switch roles.

Peer review

This semester, we’re trying a new assignment format: on Tuesdays, you will be asked to review other students’ homework. This has several benefits, and several potential pitfalls, and is worth a longer description. Please read that carefully!

Exams

We will have two one-hour exams to assess your progress:
  • 10/05 @ 6:00-9:00pm ; the rooms for this exam are WVF 020, ISEC 102, RI 200, SN 108, SN 168

  • 11/16 @ 6:00-9:00pm ; the rooms for this exam are WVF 020, ISEC 102, RI 200, SN 108, SN 168

We will send you an email to your Husky address in a timely fashion to inform you where you will take your exam.

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.

You may bring one piece of paper to the exam, double sided, with anything written (or typed) on it that you want. We are limiting you in this way because (a) writing this one sheet of paper is an excellent way to study and (b) we have found that in the past, the more papers that students bring to the exam, the worse they do. We want you to focus on the exam, not on shuffling through everything you’ve ever written.

You may have noticed the discrepancy between "one-hour" and the actual times. The exam is a one-hour exam. A student who has worked through the readings and graded problems can solve the problems on the exam in less than an hour. To make sure that nobody feels rushed, however, we allocate three hours immediately for students with special needs as well as students who feel they need time on the exam to double and triple check their work.

Grades

You will get grades for your homework and exams.

exam 1

   

25%

   

exam 2

   

35%

   

problem sets

   

35%

   

The remaining 5% is given to participation points. Among other things, these points allow us to reward students who made a noteworthy commitment to the course work and/or sustained improvement over the course of the semester. Lab quizzes may be used to help determine a student’s participation. Merely attending class does not guarantee full participation points.