Programming LanguagesLecture | Tech M345; MW 2:00—3:30 |
| 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 |
| Mailing List | Subscribe Archive Warning: subscription acknowledgment may land in your spam folder |
| Software | PLT Scheme (be sure you get version 4.2.3; it was the current release at the beginning of the quarter but there will be a release during the quarter) Handin Status quick-ref.ss a quick reference to things PLT; open in DrScheme |
| Lab Space | T Lab, Tech F252 PLT is installed in /opt/plt-4.2.3/bin/drscheme on the linux side of the t-lab machines. Ask if you prefer the windows side. |
| Grading | Weekly Homeworks: | 75% | Midterm Exam: | 25% | 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.5 | | lots wrong with essential parts of the assignment, but well tested | | 6 | | woeful tests (no matter how good the rest is) | | 5-1 | | you don't want to be here | | 0 | | nothing handed in |
|
| Course Staff | Robby Findler Office Hours: by appt |
| Syllabus | Week # | Date | Topic | Readings | 1 | 1/4 | Introduction to PL & PLT;
lecture00.pdf lecture01.pdf | PLAI §1, 2 | 1 | 1/8 | Variables
lecture02.pdf | PLAI §3, 4 | 1 | 1/8 | HW 1: Setup and mini-string language | | 2 | 1/11 | Functions, Quasiquote
lecture03.pdf lecture03.5.pdf | PLAI §1, 4 | 2 | 1/13 | HW 2: Free, bound, and binding identifiers | 2 | 1/15 | Random testing
lecture04.pdf | | | 3 | 1/18 | MLK day; no class
| | 3 | 1/20 | HW 3: N-ary functions & records | 3 | 1/22 | Deferring substition
lecture05.pdf | PLAI §5 | | 4 | 1/25 | First-class functions & recursion
lecture06.pdf lecture07.pdf | PLAI §6, 9 | 4 | 1/27 | HW 4: N-ary functions w/ again, conditionals, & multiplication | 4 | 1/29 | Recursion (continued), state
lecture08.pdf lecture09.pdf | PLAI §9, 10 | | 5 | 2/1 | State (continued)
| PLAI §12, 13 | 5 | 2/3 | HW 5: N-ary functions (now in the parser), pairs, and summation | 5 | 2/5 | Garbage collection: allocation
lecture10.pdf | PLAI | | 6 | 2/8 | Garbage collection: non-copying collector
lecture11.pdf | PLAI | 6 | 2/10 | HW 6: Mutable records | 6 | 2/12 | Garbage collection: tagless allocator
| PLAI | | 7 | 2/15 | Garbage collection: tagless collector
bibop.ss | PLAI | 7 | 2/19 |
| | | 8 | 2/22 | Introduction to types
lecture13.pdf | PLAI §24, 25 | 8 | 2/24 | HW 7: Garbage collection | 8 | 2/26 | Writing a first type checker
lecture14.pdf | PLAI §24, 25 | | 9 | 3/1 | Extending the typed language
lecture15.pdf | PLAI §26, 27 | 9 | 3/3 | HW 8: Garbage collection, take 2 | 9 | 3/5 | Type Inference
| PLAI §30 | | 10 | 3/8 |
| | 10 | 3/10 | HW 9: Types | 10 | 3/12 | Exam
| |
|
| 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. When taking a test, you must work completely independently of everyone else. Any collaboration here, of course, is 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. |
|
|