Programming LanguagesLecture | Tech LR5; MF 2:00—3:20 |
| Text | Programming 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 |
| Piazza | Sign up Class |
| Software | Handin 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 # | Date | Topic | Readings | 1 | Monday, January 9th, 2012 | Introduction to PL & Racket;
lecture00.pdf lecture01.pdf | PLAI §1, §2 | 1 | Friday, January 13th, 2012 | HW 1: Setup and Finger Exercises | 1 | Friday, January 13th, 2012 | Variables & Functions
lecture02.pdf lecture03.pdf | PLAI §2 | | 2 | Monday, January 16th, 2012 | MLK day; no class
| | 2 | Friday, January 20th, 2012 | HW 2: Free, bound, and binding identifiers | 2 | Friday, January 20th, 2012 | Functions
lecture03.pdf (cotd) | PLAI §3, §4 | | 3 | Monday, January 23rd, 2012 | Parsing & Deferred Subst
lecture04.pdf lecture06.pdf | PLAI §4, §5 | 3 | Friday, January 27th, 2012 | HW 3: Multi-arity functions and rec | 3 | Friday, January 27th, 2012 | Random testing
lecture05.pdf | PLAI §4 | | 4 | Monday, January 30th, 2012 | Deferred Subst
lecture06.pdf (cotd) | PLAI | 4 | Friday, February 3rd, 2012 | HW 4: Deferred Substitution, if0, neg?, and mult | 4 | Friday, February 3rd, 2012 | Higher-order functions
lecture07.pdf | PLAI §6 | | 5 | Monday, February 6th, 2012 | Deferred Substitution for higher-order functions, Y
lecture07.pdf (cotd) lecture08.pdf | PLAI §6 | 5 | Friday, February 10th, 2012 | HW 5: Functions do more than you thought: natural numbers | 5 | Friday, February 10th, 2012 | Recursion via mutation
lecture09.pdf | PLAI §12, 13 | | 6 | Monday, February 13th, 2012 | State
lecture10.pdf | PLAI §12, 13 | 6 | Friday, February 17th, 2012 | HW 6: State | 6 | Friday, February 17th, 2012 | GC
lecture11.pdf | PLAI §21 | | 7 | Monday, February 20th, 2012 | GC
lecture11.pdf (cotd) lecture12.pdf | PLAI §21 | 7 | Friday, February 24th, 2012 | GC
lecture12.pdf (cotd) | PLAI §21 | | 8 | Monday, February 27th, 2012 | GC
lecture12.pdf (cotd) | PLAI §21 | 8 | Friday, March 2nd, 2012 | Intro to Types & Implementing a Type Checker
lecture13.pdf lecture14.pdf | PLAI | | 9 | Monday, March 5th, 2012 | Types for more constructs
lecture14.pdf (cotd) lecture15.pdf | PLAI | 9 | Monday, March 5th, 2012 | Type inference
lecture16.pdf | PLAI | 9 | Friday, March 9th, 2012 | HW 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. |
|
|