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 | Class (should link to EECS 321) |
| Software | Handin Status
quick-ref.rkt a quick reference to things Racket; open in DrRacket |
| Lab Space | T Lab, Tech F252 Version 5.3.1 of Racket is installed in /home/software/racket-5.3.1/bin/drracket on the linux side of the t-lab machines. |
| Grading | You homework each week will be graded either automatically, or by the instructor reading over the homework carefully. If it is read by the instructor, it will be graded on a scale of 0 to 9, as follows: | 9 | | all functionality there, working, and well tested (A) | | 8 | | something wrong, but not in the essential parts of the assignment, well tested (A-) | | 7 | | something wrong in the essential parts of the assignment, but well tested (B) | | 6 | | lots wrong with essential parts of the assignment, but well tested (C) | | 5 | | woeful tests, no matter how good the rest is (D) | | 4-1 | | you don't want to be here | | 0 | | nothing handed in, or honor code info missing (F) |
If it is graded automatically, you will receive either a check+ (A), check (B), check- (C), or 0 (F). The instructor will grade either 2 or 3 assignments for each student; which homework is which is determined randomly. The automatically graded homeworks are worth 40% of your grade and the manually graded ones are worth 60%. |
|
| Course Staff | Robby Findler Office Hours: by appt (send email; I'm around during the day during the week)
Burke Fetscher Office Hours: Wednesday 2-4pm in Tech A230 |
| Syllabus | Week # | Date | Topic | Readings | 1 | Monday, January 7th, 2013 | Introduction to PL & Racket;
lecture00.pdf lecture01.pdf | PLAI §1, §2 | 1 | Friday, January 11th, 2013 | HW 1: Setup and Finger Exercises | 1 | Friday, January 11th, 2013 | Variables & Functions
lecture02.pdf | PLAI §2 | | 2 | Monday, January 14th, 2013 | Functions and Parsing
lecture03.pdf lecture04.pdf | PLAI §3, §4 | 2 | Friday, January 18th, 2013 | HW 2: Free, bound, and binding identifiers | 2 | Friday, January 18th, 2013 | Guest Lecture by Matthew Flatt
| PLAI | | 3 | Monday, January 21st, 2013 | MLK day; no class
| | 3 | Friday, January 25th, 2013 | HW 3: Multi-arity functions | 3 | Friday, January 25th, 2013 | Deferred Subst
lecture06.pdf | PLAI §4, §5 | | 4 | Monday, January 28th, 2013 | Higher-order functions
lecture07.pdf | PLAI §6 | 4 | Friday, February 1st, 2013 | HW 4: Deferred Substitution, if0, neg?, and mult | | 5 | Monday, February 4th, 2013 | Deferred Substitution for higher-order functions, Y
lecture07.pdf (cotd) lecture08.pdf | PLAI §6 | 5 | Friday, February 8th, 2013 | HW 5: Functions do more than you thought: natural numbers | 5 | Friday, February 8th, 2013 | Recursion via mutation
lecture09.pdf | PLAI §12, 13 | | 6 | Monday, February 11th, 2013 | State
lecture10.pdf | PLAI §12, 13 | 6 | Friday, February 15th, 2013 | HW 6: State | 6 | Friday, February 15th, 2013 | GC
lecture11.pdf | PLAI §21 | | 7 | Monday, February 18th, 2013 | GC
lecture12.pdf | PLAI §21 | 7 | Friday, February 22nd, 2013 | GC
lecture12.pdf (cotd) | PLAI §21 | | 8 | Monday, February 25th, 2013 | Types
lecture13.pdf | PLAI §24-27 | 8 | Friday, March 1st, 2013 | Implementing a Type Checker
lecture14.pdf lecture15.pdf | PLAI | 8 | Friday, March 1st, 2013 | HW 7: GC | | 9 | Monday, March 4th, 2013 | Types for more constructs
lecture16.pdf | PLAI | 9 | Friday, March 8th, 2013 | Type inference
lecture17.pdf | PLAI | | 10 | Monday, March 11th, 2013 | Random Testing
lecture05.pdf | | 10 | Friday, March 15th, 2013 | Streams & Summary
lecture18.pdf | | 10 | Friday, March 15th, 2013 | HW 8: Types | | 11 | Friday, March 22nd, 2013 | HW X: Replacement Credit |
|
| 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. Note: allowing your work to be copied is cheating just as much as copying another's work, and thus also subject to punishment. If you have any questions about what constitutes cheating, please ask. |
|
|