What?
This is a course on the study, design, and implementation of programming languages.
The course works at two simultaneous levels: first, we will use a programming language that can demonstrate a wide variety of programming paradigms. Second, using this language, we will learn about the mechanics behind programming languages by implementing our own language(s). The two level approach usually means that we will often see how to use a certain feature, and continue by implementing it.
When? Where?
- Tuesdays, 6PM–9:20PM
Behrakis 310
Who? Office hours?
Who/Role | Contact | When | Where | ||
---|---|---|---|---|---|
Eli Barzilay
Instructor |
eli @barzilay.org Slack: @eli |
Tuesday ~9:17pm | in class | or schedule or DM | |
Wednesday ~8–10pm | on-line | ||||
Luka Jovanović
Head-TAGrader |
jovanovic.l @northeastern.edu Slack: @Luka |
Monday, Thursday 8–10am |
WVH 370 | ||
Fengkai Wang
TAGrader |
wang.fengk @northeastern.edu Slack: @Fengkai |
Mon, Wed, Fri 6–9pm |
Zoom (2389082234) |
||
Vlad Manoylo
TAGrader |
manoylo.v @northeastern.edu Slack: @Vlad |
Tuesday, Friday 3–5pm |
Zoom (7150261720) |
||
Rob Patterson
TAGrader |
patterson.r @northeastern.edu Slack: @Rob |
Wednesday, Thursday 4–6pm |
Zoom (9389702831) |
||
Edison Lau
TAGrader |
lau.ed @northeastern.edu Slack: @Edison |
Wednesday 10am-12pm |
Zoom (93833131069) |
||
Scott Pozder
Grader |
pozder.sc @northeastern.edu Slack: @Scott |
(Schedule by Email) | |||
(You can also email anyone to schedule a meeting at other times or other places if needed.) | |||||
⇒ See also the Tutors page. ⇐ |
Textbook & Syllabus
We will be using class notes instead of a textbook. The class notes will be available here after each lecture.
See the syllabus page for an approximate list of topics.
The class and the notes are roughly based on Programming Languages: Application and Interpretation, a book that is available in PDF format, courtesy of the author. However, we will use a slightly different language for code, and we will often diverge from the book’s text (expanding more on some parts, and skip a few others) — therefore, this should mostly be considered as a recommended book and not the textbook.
In addition, Essentials of Programming Languages can be used as an additional “second opinion” alternative. It is usually more formal, but covers roughly the same materials. (It should be available in the campus store.)
Grades
- Homework assignments will be given almost every week, and we will have a PLQ in each class (hopefully).
- Homework assignments will have different weights, according to their relative difficulty and importance. (Mostly increasing through the semester.)
- PLQs will also have different weights.
- “Karma points” are roughly equivalent to an average homework: this includes class participation (showing up, answering questions in class, useful piazza posts, helping with course material (like suggesting new content or finding major problems)) combined with an “instructor’s whim” score. (Note: there is no penalty for asking “stupid questions”! The impression in question is how much effort you put in, and asking questions is always a good thing.)
- The PLQs will make about a half of the final grade.
- Nothing is set in stone: weights can change at any time. However,
you will have plenty of information to help you estimate your
performance. The overall picture is likely to be close to:
PLQ HW Karma
Policies
- Joint Work
Some of the homework assignments will be for individual work, and some for pairs. For individual homework assignments, no collaboration is allowed. For pair-homework, it is okay for a pair to discuss the problems with others, but code should never be shared (outside of each pair).
Under no circumstances may you hand in work done with (or by) someone else under your own name. If in doubt, credit the person(s) who helped you and/or ask us for advice, or better: ask. Your code should never be shared with anyone other than your partner. (The nature of this course makes it very easy to find shared work.)
In addition, you should not submit your work as a pair if your partner did not work with you. You are expected to know all homework, so do not let your partner do everything.
- Class Notes and Other Materials
Most class material is made available on the course web pages, in the Class Notes Section. It is therefore best if you focus on the material instead of just copying everything.
More specifically: Laptops are not allowed in class! Note: “Laptop” here stands for a range of devices, including tablets, smartphones, etc. See this this page for more information and reasons.
In addition, homework solutions will be posted through the handin server, and therefore they are available for students only. You should not make any homework solution (either the posted one or your own work) public in any way.
- Web Page, Piazza & Email
Important updates will appear on the course front page, and often in piazza. You are therefore are expected to read piazza messages frequently. See the Piazza Section for details.
Also, read through the Email and Piazza Policies page to learn how to use email and piazza in this course.