On this page:
Time
Location
Instructor
Office Hours
Communication
AI
Prerequisite
Registration
Relationship to other courses
8.14

Course Information🔗

Time🔗

Mondays, Wednesdays, and Thursdays 10:30-11:35am.

Location🔗

Ryder Hall 247.

Instructor🔗

Michael Ballantyne. Email: ballantyne.m@northeastern.edu.

Office Hours🔗

Mondays, Wednesdays, and Thursdays 11:45am-12:30pm, West Village H 308 (I’ll be at my desk or the lounge outside). If you need to meet outside of these times, please email me. Please come to office hours together with your partner.

Communication🔗

We will use Piazza for announcements and questions: https://piazza.com/northeastern/spring2025/cs3620.

AI🔗

As a research-based elective, this course expects that we are all adults, motivated to learn something unusual and interesting. I am not interested in policing AI use. You may use Copilot, ChatGPT, etc. without citation in this course. Your job is to be more useful, creative, and discerning (with or without AI help) than an AI alone. In the workforce you’re competing with AI, and it gets harder every year. So, if you use AI:

If you phone it in with unexamined use of AI, you waste your education and the time we spend providing feedback on your work. Keep in mind that the instructor expects that you engage and learn to earn the A.

Prerequisite🔗

This course will mostly rely on a rock-solid understanding of Fundamentals I, but students will benefit from additional coding experience (prior to college, as a hobby, or via co-op).

Registration🔗

The 3620 course number is used for a number of different electives with different topics under the generic title "Building Extensible Systems". The course description in the course catalog and Banner corresponds to a previous offering of the course with a different subject. The description on this page is accurate for the Spring 2025 offering.

If you would like to register for this course but encounter problems because you have taken last year’s offering of 3620, please email me.

If you would like to register for this course but encounter problems because the prerequisite on Banner is listed as CS 2510 rather than CS 2500, please email me for an override.

Relationship to other courses🔗

Northeastern offers two other courses related to programming languages: CS 4400 Programming Languages and CS 4410 Compiler Design. These other courses focus on PL concepts and implementation for languages with general-purpose features like functions and classes.

In contrast, "Hack Your Own Language" shows how to build domain-specific languages within or as an extension to a general-purpose language using embedding and macros. You’ll also see examples of DSLs for many applications such as database query, web scraping, interactive UIs, animation, and parsing.