Programming Languages

LectureTech LR5; MF 2:00—3:20

TextProgramming Languages: Application and Interpretation
by Krishnamurthi

Supplementary
Reading
How to Design Programs
by Felleisen, Findler, Flatt and Krishnamurthi

Essentials of Programming Languages
by Friedman and Wand

PiazzaSign up   Class

SoftwareHandin Status

quick-ref.rkt a quick reference to things Racket; open in DrRacket

Lab
Space
T Lab, Tech F252
Racket is installed in /opt/racket-5.0.2/bin/drracket on the linux side of the t-lab machines.
Ask if you prefer the windows side.

Grading
Weekly Homeworks:100% (weighted equally)
Homeworks are graded on a scale of 0 to 10, as follows:
 10 perfect++ (I don't expect to see any homeworks like this, but just in case)
 9 all functionality there, working, and well tested
 8 something wrong, but not in the essential parts of the assignment, well tested
 7 something wrong in the essential parts of the assignment, but well tested
 6 lots wrong with essential parts of the assignment, but well tested
 5 woeful tests (no matter how good the rest is)
 4-1 you don't want to be here
 0 nothing handed in

Course
Staff
Robby Findler
Office Hours: by appt (send email; I'm around during the day during the week)

Syllabus
Week #DateTopicReadings
1Monday, January 9th, 2012Introduction to PL & Racket;
lecture00.pdf lecture01.pdf
PLAI §1, §2
1Friday, January 13th, 2012HW 1: Setup and Finger Exercises
1Friday, January 13th, 2012Variables & Functions
lecture02.pdf lecture03.pdf
PLAI §2
 
2Monday, January 16th, 2012MLK day; no class
2Friday, January 20th, 2012HW 2: Free, bound, and binding identifiers
2Friday, January 20th, 2012Functions
lecture03.pdf (cotd)
PLAI §3, §4
 
3Monday, January 23rd, 2012Parsing & Deferred Subst
lecture04.pdf lecture06.pdf
PLAI §4, §5
3Friday, January 27th, 2012HW 3: Multi-arity functions and rec
3Friday, January 27th, 2012Random testing
lecture05.pdf
PLAI §4
 
4Monday, January 30th, 2012Deferred Subst
lecture06.pdf (cotd)
PLAI
4Friday, February 3rd, 2012HW 4: Deferred Substitution, if0, neg?, and mult
4Friday, February 3rd, 2012Higher-order functions
lecture07.pdf
PLAI §6
 
5Monday, February 6th, 2012Deferred Substitution for higher-order functions, Y
lecture07.pdf (cotdlecture08.pdf
PLAI §6
5Friday, February 10th, 2012HW 5: Functions do more than you thought: natural numbers
5Friday, February 10th, 2012Recursion via mutation
lecture09.pdf
PLAI §12, 13
 
6Monday, February 13th, 2012State
lecture10.pdf
PLAI §12, 13
6Friday, February 17th, 2012HW 6: State
6Friday, February 17th, 2012GC
lecture11.pdf
PLAI §21
 
7Monday, February 20th, 2012GC
lecture11.pdf (cotdlecture12.pdf
PLAI §21
7Friday, February 24th, 2012GC
lecture12.pdf (cotd)
PLAI §21
 
8Monday, February 27th, 2012GC
lecture12.pdf (cotd)
PLAI §21
8Friday, March 2nd, 2012Intro to Types & Implementing a Type Checker
lecture13.pdf lecture14.pdf
PLAI
 
9Monday, March 5th, 2012Types for more constructs
lecture14.pdf (cotdlecture15.pdf
PLAI
9Monday, March 5th, 2012Type inference
lecture16.pdf
PLAI
9Friday, March 9th, 2012HW 7: GC

Collaboration
policy

Working with others on assignments is a good way to learn the material and we encourage it. However, there are limits to the degree of cooperation that we will permit.

When working on programming assignments, you must work only with others whose understanding of the material is approximately equal to yours. In this situation, working together to find a good approach for solving a programming problem is cooperation; listening while someone dictates a solution is cheating. You must limit collaboration to a high-level discussion of solution strategies, and stop short of actually writing down a group answer. Anything that you hand in, whether it is a written problem or a computer program, must be entirely your own work. If you base your solution on any other written solution, you are cheating.

We do not distinguish between cheaters who copy other's work and cheaters who allow their work to be copied.

If you cheat, you will receive the harest penalty possible under the rules of Northwestern. If you have any questions about what constitutes cheating, please ask.