On this page:
Staff
Class
Labs
Computing Environment
Problem Sets
Pair Programming
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. Promise As long as you will live up to its spirit, we will stand by you during this semester.

Staff

In this large freshman course, you will encounter three kinds of people:
  • your instructors are Matthias Felleisen, Amal Ahmed, Alan Mislove, Nada Naji, Leena Razzaq, Benjamin Lerner, Thomas Wahl.

  • your teaching assistants

    Rebecca MacKenzie

       

    Leif Andersen

       

    Spencer Aronstein

       

    Suzanne Becker

       

    Ben Greenman

       

    Adrian Kant

       

    Catherine McLean

       

    Mitchell McLean

       

    not supplied yet

    Max New

       

    Calvin Pomerantz

       

    Pedro Silva

       

    Matthew Singer

       

    Claudia Vilcu

       

    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

    Mohib Azam

       

    Emily Beckers

       

    not supplied yet

    Saikrishna Chintalpelly

       

    Daniel Chu

       

    Benjamin Clauss

       

    not supplied yet

    John Compitello

       

    not supplied yet

    Luciana Corteggiano

       

    Amogh Dayal

       

    Chev Eldrid

       

    not supplied yet

    Jack Frysinger

       

    John Gallagher

       

    Alex Grundwerg

       

    not supplied yet

    Arjun Gupta

       

    Kashish Jagga

       

    Christopher Juchem

       

    Alexander Kavourias

       

    Alexander Knauth

       

    not supplied yet

    Matthew Lamontagne

       

    Philip Lin

       

    not supplied yet

    Michael Lucas

       

    not supplied yet

    Prannoy Mohan

       

    not supplied yet

    Amal Nazeem

       

    Manas Purohit

       

    Ameen Radwan

       

    Max Rona

       

    Sreeya Sai

       

    Katelyn Salvatori

       

    not supplied yet

    Nadine Shaalan

       

    Arvin Sharma

       

    not supplied yet

    Ashwin Shivashankar

       

    Kathryn Stavish

       

    Andrew Sy

       

    not supplied yet

    Peter Teixeira

       

    not supplied yet

    Olivia Woods

       

    James Wu

       

    not supplied yet

    Michael Yessaillian

       

    not supplied yet

    Brian Yeung

       

    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

The course has these lecture sections:

Instructor

   

Time

   

Days

   

Location

Matthias Felleisen

   

09:15am-10:20am

   

MWR

   

SH 335

Amal Ahmed

   

10:30am-11:35am

   

MWR

   

IV 019

Alan Mislove

   

10:30am-11:35am

   

MWR

   

SH 420

Nada Naji

   

01:35pm-02:40pm

   

MWR

   

IV 019

Leena Razzaq

   

01:35pm-02:40pm

   

MWR

   

RI 458

Benjamin Lerner

   

04:35pm-05:40pm

   

MWR

   

IV 019

Thomas Wahl

   

04:35pm-05:40pm

   

MWR

   

HT 130

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 second week of class.

Lab

   

Instructor

   

Time

   

Days

   

Location

1

   

Rebecca MacKenzie

   

9:50am-11:30am

   

T

   

210

2

   

Claudia Vilcu

   

11:45am-1:25pm

   

T

   

210

3

   

Ben Greenman

   

1:35pm-3:15pm

   

T

   

210

4

   

Calvin Pomerantz

   

3:25pm-5:05pm

   

T

   

210

6

   

Spencer Aronstein

   

11:45am-1:25pm

   

W

   

210

7

   

Leif Andersen

   

2:50pm-4:30pm

   

W

   

210

8

   

Max New

   

9:50am-11:30am

   

T

   

212

9

   

Mitchell McLean

   

11:45am-1:25pm

   

T

   

212

10

   

Adrian Kant

   

1:35pm-3:15pm

   

T

   

212

11

   

Matthew Singer

   

3:25pm-5:05pm

   

T

   

212

12

   

Suzanne Becker

   

5:15pm-6:55pm

   

T

   

212

13

   

Pedro Silva

   

11:45am-1:25pm

   

W

   

212

14

   

Catherine McLean

   

2:50pm-4:30pm

   

W

   

212

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.6), 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 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 graded problem sets in assigned pairs. Your partner will signed up for the same lab as you; your lab TA will assign you the first 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. 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.

Exams

We will have two one-hour exams to assess your progress:
  • Midterm coming up: 10/06 @ 6:00-9:00pm ; the rooms for this exam are RI 200, SN 108, MU 201, CG 97, CH 103, SH 135, SH 305, SH 335

  • Midterm coming up: 11/17 @ Midterm: 6:00-9:00pm ; the rooms for this exam are RI 200, WVF 20, CH 103, MU 201, SN 108, SN 168, SH 305, SH 335

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.

The exams are open-book, meaning you can bring any printed and hand-written material you wish. Any use of electronics (desktop computer, laptop, tablet, phone, pda, google glass, apple watch, etc.) will result in your immediate expulsion from the exam and a score of 0.

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. After one hour, everyone will get a chance to leave. 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

   

39%

   

we will drop the worst homework grade

The remaining 1% are up to the instructors’ whim. What this really means is that grading is not a science, but we will do our utmost to assign scores fairly and to reward those students who demonstrate a sustained improvement over the course of the semester.