Programming LanguagesLecture | 2122 Sheridan Rd 250; MW 12:00—1: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, Fall 2015) Sign up |
| Software | Handin Status
quick-ref.rkt a quick reference to things Racket; open in DrRacket |
| Lab Space | T Lab, Tech F252 Version 6.2.1 of Racket is installed in /home/software/racket-6.2.1/bin/drracket on the linux side of the t-lab machines. |
| Grading | You homework each week will be graded automatically and you will receive either a check+ (A), check (B), check- (C), or 0 (F). Any homework assignment may be handed in after the due date, but with ceiling on the score. To accept the homework, the handin server will have separate (logical) assignments, named hw1-second-try, hw2-second-try, etc. These homeworks will also be automatically graded (of course, strange results from the auto-grading system will be investigated upon request). When your final grade is computed, the higher of the original grade and the -second-try grade will be used, except that if the -second-try grade is a check+ then it is treated as a check for this purpose. In other words, your second try cannot raise your grade if the first try was already a check. The last time second-try assignments will be accepted is the Saturday (any time Saturday) after finals. (I have to hand in grades on Monday, so that gives me Sunday and Monday morning to figure them out.) When computing your final grade, a check+ is treated like a 9, a check is treated like an 7, a check- is treated like 6, and a 0 is treated like a 0. The numbers are then averaged and this function is used to map them into number grades: (define (numeric-grade->letter-grade number)
(cond
((<= 8.3 number 9) 'A)
((<= 7.8 number 8.3) 'A-)
((<= 7.4 number 7.8) 'B+)
((<= 7.0 number 7.4) 'B)
((<= 6.4 number 7.0) 'B-)
((<= 6.0 number 6.4) 'C)
((<= 5.0 number 6.0) 'C-)
((<= 4 number 5) 'D)
((<= 3 number 4) 'D-)
((<= number 3) 'F)))
|
|
| Course Staff | Robby Findler Office Hours: by appt (send email; I'm around during the day during the week)
Zavier Henry Office Hours: the Wilkinson lab (M338) 5-6pm Tuesday
Adrien Tateno Office Hours: in the Wilkinson lab (M338) 5-6pm Wednesday
Anuj Iravane Office Hours: in the Wilkinson lab (M338) 4-5pm Thursday
Josh Xu Office Hours: in the Wilkinson lab (M338) 5-6pm Thursday |
| Syllabus | Week # | Date | Topic | Readings | 1 | Monday, September 21st, 2015 | Introduction to PL & Racket;
lecture00.pdf lecture01.pdf | PLAI §1, §2 | 1 | Wednesday, September 23rd, 2015 | Free, bound, and binding identifiers
lecture02.pdf | PLAI §2 | 1 | Due: Noon on Friday, September 25th, 2015 | HW 1: Setup and Finger Exercises | | 2 | Monday, September 28th, 2015 | Functions and Parsing
lecture03.pdf lecture04.pdf | PLAI §3, §4 | 2 | Wednesday, September 30th, 2015 | Deferred Subst
lecture06.pdf | PLAI §4, §5 | 2 | Due: Noon on Friday, October 2nd, 2015 | HW 2: Free, bound, and binding identifiers | | 3 | Monday, October 5th, 2015 | Higher-order functions
lecture07.pdf | PLAI §6 | 3 | Wednesday, October 7th, 2015 | Higher-order functions, recursion
lecture07.pdf (cotd) lecture08.pdf | PLAI §6 | 3 | Due: Noon on Friday, October 9th, 2015 | HW 3: Multi-arity functions | | 4 | Monday, October 12th, 2015 | Y, Recursion via mutation
lecture08.pdf (cotd) lecture09.pdf | PLAI §12, 13 | 4 | Wednesday, October 14th, 2015 | State
lecture10.pdf | PLAI §12, 13 | 4 | Due: Noon on Friday, October 16th, 2015 | HW 4: Deferred Substitution, if0, neg?, and mult | | 5 | Monday, October 19th, 2015 | State & GC
lecture10.pdf (cotd) lecture11.pdf | PLAI §12, 13 | 5 | Monday, October 19th, 2015 | GC
lecture11.pdf (cotd) | PLAI | 5 | Due: Noon on Friday, October 23rd, 2015 | HW 5: Functions do more than you thought: natural numbers | | 6 | Monday, October 26th, 2015 | GC
lecture11.pdf (cotd) lecture12.pdf | PLAI | 6 | Wednesday, October 28th, 2015 | Random Testing
lecture05.tar.gz | | 6 | Due: Noon on Friday, October 30th, 2015 | HW 6: State | | 7 | Monday, November 2nd, 2015 | GC
lecture12.pdf (cotd) | PLAI §21 | 7 | Wednesday, November 4th, 2015 | GC
lecture12.pdf (cotd) | PLAI §21 | 7 | No Homework on Friday, November 6th, 2015 | | | 8 | Monday, November 9th, 2015 | Types
lecture13.pdf lecture14.pdf | PLAI | 8 | Wednesday, November 11th, 2015 | Types
lecture15.pdf | PLAI | 8 | Due: Noon on Friday, November 13th, 2015 | HW 7: GC | | 9 | Monday, November 16th, 2015 | Types
lecture16.pdf lecture17.pdf | PLAI | 9 | Wednesday, November 18th, 2015 | Types
lecture16.pdf (cotd) lecture17.pdf (cotd) | PLAI | 9 | Due: Noon on Friday, November 20th, 2015 | HW 8: Types | | 10 | Monday, November 23rd, 2015 | Threads via Continuations
lecture19.pdf | PLAI | | 11 | Due: Noon on Friday, December 4th, 2015 | HW C: Coq, extra credit | | 12 | Due: Noon on Thursday, December 10th, 2015 | HW K: Threads, extra 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. |
|
|