On this page:
1 Logistics
2 Course description
3 Reference materials
4 Coursework and Grading Policies
4.1 Late work policy
4.2 Grading thresholds
5 Academic Honesty
5.1 Title IX
5.2 Students With Disabilities
8.12

Syllabus🔗

This is the syllabus for CS4400/5400. Please read the syllabus in its entirety.

1 Logistics🔗

2 Course description🔗

Our goal in this course is to study the essentials of programming languages: their purpose, their design, and their implementation. You have all programmed before, probably in multiple programming languages. You may have noticed differences and similarities between the programming languages and wondered: why are there so many languages? Why are they different and similar in these particular ways? Why is programming in one language sometimes easier than others? How (and why) are new programming languages made? We will study these questions bottom-up: we will grow a tiny language and add features to it iteratively, along the way encountering many of the core ingredients that go into today’s modern programming languages. We will also see some of the core formal notions that have been so effective in designing many of today’s languages: in particular, we will see formal language semantics and type systems. Finally, we will go beyond our tiny language and explore some exotic languages that are radically different from ones you may have seen before. In the end, you should be equipped to learn new programming languages quickly, understand the key design decisions made by many of today’s languages, and be prepared for a world where new programming languages are being made all the time.

3 Reference materials🔗

The primary reference for this course will be the course notes, provided after each lecture and available on this website. You are strongly encouraged to review the course notes after each lecture. The following textbooks are good additional resources and will be occasionally referenced in class:

4 Coursework and Grading Policies🔗

The course will consist of the following graded material, subject to change as the semester progresses (all changes to the grading scale will be announced in class and on Piazza):

Grades are allocated by points, and the percentage is determined by the percentage of total points within each category.

4.1 Late work policy🔗

Assignments will be due at 11:59PM, and late work will be penalized according to the following scale:

This timeline is in place to ensure timely return of grades. If you require special accommodations or a grading extension, please post a private Piazza question for the the instructors in advance of the deadline; we are very willing to work with you to find a suitable accomodation.

Late work for exams and concept check quizzes will not be accepted.

4.2 Grading thresholds🔗

Letter grades will be assigned according to a standard grading threshold based on percentage of total points:

Score range

Letter grade

>93

A

≥90

A-

≥87

B+

≥83

B

≥80

B-

≥77

C+

≥73

C

≥70

C-

≥67

D+

≥63

D

≥60

D-

<60

F

The instructor may curve final grades up based on course circumstances. Individual assignments and exams may be curved up as well; in the event that this is necessary, the curving scheme will be explained in a Piazza post.

5 Academic Honesty🔗

Cheating and other acts of academic dishonesty will be referred to Khoury College. There are very serious penalties here, so please do not take any chances by copying any material from the Internet or from other past or present students of this course or related courses. In particular, when completing the programming assignments, it is important that you do not refer to any completed solutions that you find on the Internet. When in doubt, ask the instructor or consult the Northeastern academic honesty page here.

Usage of code generation tools. Code generation tools like ChatGPT and Claude are now widely available. You may use these tools if you find them helpful to you. However, be warned that these tools can be a crutch: you will likely find yourself struggling in the course if you rely too heavily on these tools to automatically produce your code for your assignments, since many of the assignments are cumulative. You are encouraged to first attempt all assignments yourself, without any assistance.

Remote policy The instructor will follow university policies on whether or not the course is to be taught in-person. The class is assumed by default to be in-person: the instructor will make an announcement if it will not be in-person. If the class is to be remote, it will be taught online using Zoom, and a link will be available in Canvas under the Zoom tab. Lectures may be recorded under certain circumstances. Please feel free to contact the instructor if you have any questions.

5.1 Title IX🔗

Title IX of the Education Amendments of 1972 protects individuals from sex or gender-based discrimination, including discrimination based on gender-identity, in educational programs and activities that receive federal financial assistance.

Northeastern’s Title IX Policy prohibits Prohibited Offenses, which are defined as sexual harassment, sexual assault, relationship or domestic violence, and stalking. The Title IX Policy applies to the entire community, including male, female, transgender students, faculty and staff.

If you or someone you know has been a survivor of a Prohibited Offense, confidential support and guidance can be found through University Health and Counseling Services staff (https://www.northeastern.edu/uhcs/) and the Center for Spiritual Dialogue and Service clergy members (https://www.northeastern.edu/spirituallife/). By law, those employees are not required to report allegations of sex or gender-based discrimination to the University.

Alleged violations can be reported non-confidentially to the Title IX Coordinator within The Office for Gender Equity and Compliance at: mailto:titleix@northeastern.edu and/or through NUPD (Emergency 617.373.3333; Non-Emergency 617.373.2121). Reporting Prohibited Offenses to NUPD does NOT commit the victim/affected party to future legal action.

Faculty members are considered "responsible employees" at Northeastern University, meaning they are required to report all allegations of sex or gender-based discrimination to the Title IX Coordinator.

In case of an emergency, please call 911.

Please visit https://www.northeastern.edu/titleix for a complete list of reporting options and resources both on- and off-campus.

5.2 Students With Disabilities🔗

Students who have disabilities who wish to receive academic services and/or accommodations should visit the Disability Access Services at 20 Dodge Hall or call (617) 373-2675. If you have already done so, please provide your letter from the DRC to me early in the semester so that I can arrange those accommodations.