Welcome to CS343S!

This is a new design-studio course for the creation of domain-specific languages (DSLs). We will start with lectures teaching fundamental skills for designing and implementing DSLs, followed by a long term project designing and implementing a DSL of the student's choice. The course will particularly emphasize the role that languages can play in tasks that we do not usually think of as programming, such as DSLs for knitting patterns or geometric constructions.

It is being held for the first time in Spring 2024.

Construct language Pandas Tutor Drawing in the Context Free language Wavedrom



Grading breakdown is subject to change.

Class Schedule

All deadlines are at 11:59pm, except in-class presentations. The schedule is subject to change, and events marked with (?) are explicitly tentative.

Monday April 1st Evan, Matthew Intro & External DSLs I slides, live coding
Wednesday April 3rd Evan External DSLs II live coding
Monday April 8th Alex Internal DSLs slides, live coding
Wednesday April 10th Alex Need Finding slides, by: Veronica Rivera
Friday April 12th Due: External Lab
Monday April 15th Matthew, Evan Field work: interviews
Tuesday April 16th Due: Project brainstorming
Wednesday April 17th Discuss brainstorming ideas slides
Monday April 22nd AJ Clinic I kick-off
Tuesday April 23rd Due: Internal Lab
Wednesday April 24th AJ Clinic I
Monday April 29th Matthew Clinic II kick-off
Tuesday April 30th Due: Project proposal (?)
Due: Clinic I
Wednesday May 1st Matthew Clinic II
Monday May 6th Clinic II
Wednesday May 8th Clinic II
Friday May 10th Due: Clinic II
Monday May 13th Studio Day
Wednesday May 15th Studio Day
Monday May 20th Project Demos
Wednesday May 22nd Project Demos
Monday May 27th Holiday
Wednesday May 29nd Writer's Workshop
Monday June 3rd Project Presentations
Wednesday June 5th Project Presentations
Thursday June 6th Due: Project implementation (?)