time to wake up

visit the respective TA at his desk and introduce yourself.

Instructors Matthias Felleisen

Teaching Assistants

Leif Andersen



Suzanne Becker



Julia Belyakova



Dustin Jamner


Time and Location









Head TA

Matthias Felleisen






Behrakis 310


Leif Andersen

Contract If you wish to earn a grade in this course, you must pick a partner with whom you will pair-program on all homework assignments.

You and your partner must figure out how to send email to the head TA of your section with the following content:

Subject: CS 4400

your last name
your first name
your chosen language
an email address where you can be reached every day
the last four digits of your NU student id
My partner is Donald Duck.

by Friday, 10 January 2020 (midnight) and for a suitable value of "Donald Duck." You must CC your partner.

If you want to earn bonus point, you and your partner jointly find the head TA’s desk and introduce yourself.

Organization The course is mostly a traditional lecture course with two exceptions:

Assignments You must choose a partner for solving the weekly assignments. You may solve those assignments in the programming language of your choice if it exists on the College’s Linux boxes; see Delivery.

Every weekly assignment will come with at least two tasks: a programming task and a test-design task. Every week the head TA will run every pair’s tests against the instructor’s solution, and every pair’s solution against every pair’s tests that survives the instructors—on a Linux box configured exactly like the College’s. This will determine approximately half the weekly grade.

The TAs will also inspect the solutions and grade according to the standards of Fundamentals I and II. This will determine the other half of the weekly grade.

Grades The final grading scale is to be determined.

The goal is to run this course for adults who are enrolled because they have a deep, burning desire to learn. They respect a basic honor code, which includes neither cheating nor helping in an inappropriate manner.

If these assumptions hold throughout the semester, the assignments, code walks, and "wat presentations" will determine the final grade as follows:
#lang typed/racket
(define (% {x : Real}) (/ x 100))
(define TEST-FEST       (% 45))
(define CODE-INSPECTION (% 45))
(define PRESENTATION    (%  5))
(define LAB-BOOK        (%  4))
where each individual presentation is graded on the following scale: ok+, ok, ok-, and zero. The class will determine how these grades translate into numeric values. Pairs that do not pair programming will be discovered and the grades will be reduced for both partners.

If these assumptions are violated at any point during the semester, I will give a final exam (possibly an oral examination), and this final exam will contribute at least 50% of the overall grade.

The instructor is known to use the entire scale of grades, from A+ to F-. Also, for course like PL, he tends to drop the homework grade for each pair that pulls down the average most—with stated exceptions.