Spring 2016

CS 111: Domain-Specific Languages

MW 2:45pm4:00pm in SHAN 3425

Monday Wednesday
(0) 01 · 18 Martin Luther King, Jr. Day (no class) DSLs: What, why, and how? 01 · 20
What is a DSL?
Due: Sunday 1/24 at 11:59pm
Critique: Tuesday 1/26 at 11:59pm
(1) 01 · 25 What is a DSL? Mini-lab: fluency 01 · 27
Language design
Due: Wednesday 2/3 at 11:59pm
Critique: Friday 2/5 at 11:59pm
(2) 02 · 01 Scala intro Projects: interviews 02 · 03
Practice Scala
Due: Wednesday 2/10 at 11:59pm
Critique: Friday 2/12 at 11:59pm
(3) 02 · 08 Discussion: Language Design + Scala Functional Scala 02 · 10
Project ideas
Due: Wednesday 2/17 at 11:59pm
Critique: Friday 2/19 at 11:59pm
(4) 02 · 15 Lab: Internal control flow Object-oriented Scala 02 · 17
Internal DSL: regular expressions
Due: Friday 2/26 at 11:59pm
Critique: Sunday 2/28 at 11:59pm
(5) 02 · 22 Extensibility: Traits, part 1 Extensibility: Traits, part 2 02 · 24
Language design: Piconot
Due: Friday 3/11 at 11:59pm
Critique: Tuesday 3/22 at 11:59pm
(6) 02 · 29 Extensibility: The Expression Problem Language architecture & parser combinators 03 · 02
(7) 03 · 07 Models of computation Discuss projects 03 · 09
(8) 03 · 14 Spring Break (no class) Spring Break (no class) 03 · 16
(9) 03 · 21 critique studio 03 · 23
Project: description and plan & Repositories
Due: Sunday 3/27 at 11:59pm
Critique: Tuesday 3/29 at 11:59pm
(10) 03 · 28 critique studio 03 · 30
Project: design and implementation
Due / notebook: Sunday 4/3 at 11:59pm
Critique: Tuesday 4/5 at 11:59pm
(11) 04 · 04 critique studio 04 · 06
Project: prototype
Due / notebook: Sunday 4/10 at 11:59pm
Critique: Tuesday 4/12 at 11:59pm
(12) 04 · 11 critique studio 04 · 13
Notebook: Sunday 4/17 at 11:59pm
Critique: Tuesday 4/19 at 11:59pm
(13) 04 · 18 critique studio 04 · 20
Project: demo / presentation
Due / notebook: Sunday 4/24 at 11:59pm
Critique: in class
(14) 04 · 25 Presentations Presentations 04 · 27
Project: final product and writeup
Due: Friday 4/29 at 11:59pm