We'll study techniques for thinking crisply about programming languages, write some fascinating programs, and discuss various design tradeoffs. We will roughly follow Dan Grossman's traditional 505 material using the Lean proof assistant.
|Meeting||Mon, Wed 9:30 ARC G070|
|Instructor||Zach Tatlock (ztatlock@cs)|
|Friday 10:30 - 11:30 CSE 546|
|Instructor||Leonardo De Moura (email@example.com)|
|TBD CSE TBD|
|TA||Jared Roesch (jroesch@cs)|
|TBD CSE TBD|
|Discussion||Piazza (for real questions), Slack (for chit chat)|
We'll read and discuss a handful of papers this quarter. Most of the readings are relatively non-technical; they're intended to foster discussion and debate. By noon the day before each discussion, please submit a short review. Your review should have three small paragraphs: (1) a high-level summary of the paper and a concise recap of its main take-away; (2) a description of what you most valued learning from the paper and what the paper's greatest strengths are; and (3) a discussion of what you disagreed with or felt could be improved to make the paper stronger.
Please submit your reviews in
plain text format
in a single file,
including only ASCII characters (no Unicode please),
.txt file extension,
(Please note, this means you should NOT submit a PDF!)
Please work on your problem sets with a partner. It should be more fun and help you meet folks in the department you may not have otherwise gotten a chance to work with. To find a partner who is not in your lab, try the Piazza partner search or ask around on Slack. Also, make sure to work with a different partner for each problem set. Only one member of each team should submit a solution. Please clearly indicate both team members in a comment at the top of your submission. Happy hacking :)
Submit problem sets via the 505 Dropbox. If you absolutely must, you can submit up to 2 days late, but the policy is to subtract 10% per day.
Unlike problem sets, exams should be entirely your own work. Please submit your exam via the 505 Dropbox.
If you'd like to interact with a real person please come to Zach's office hours (TDB CSE 546), Jared's office hours (TDB CSE 218). Because schedules are hectic, some times and locations may change throughout the quarter, so we've included the exact schedule for in-person help below:
The classic 505 materials and Types and Programming Languages textbook are also excellent for learning all the material we'll cover in class and more, but from a traditional pen-and-paper perspective.