Important announcements related to the course will be posted here. Please check this page daily.
- May 2 - Public tests
for project 4 are available.
- Apr 30 - We've posted a schedule of the remaining office
hours of the semester, below; note there are a few changes, including
additional office hours before the final exam.
- Apr 21 - Sample solutions to
midterm 2 are available, and grades have been posted on the grade server.
- Apr 12 - Kris's Tuesday office hours have been moved to
5-7pm, from now until the end of the semester.
- Apr 11 - Project 4 is available.
- Apr 7 - Midterm 2 will be held Wed, April 18 in class. Let
me know immediately if you have a conflict with this time.
- Apr 6 - Public tests for
project 3 are available.
- Apr 1 - Lua is now installed on linuxlab; see the project 3
page for instructions.
- Mar 26 - A sample solution to
midterm 1 is available. Project 3 is available.
- Mar 25 - Jeff's office hours on Wed, Mar 28 are
cancelled. Please let me know if you ned to schedule a meeting for
- Mar 16 - Midterm 1 scores are posted. Midterms will be
returned in class after spring break.
- Mar 14 - Jeff's office hours are cancelled today. Please
let me know if you need to schedule a meeting for another time.
- Mar 14 - Homework 3 is available.
- Mar 4 - Some public
tests for project 2 are available.
- Feb 27 - Jeff's office hours will be shortened today;
please see me immediately after class if you'd like to chat.
- Feb 26 - Midterm 1 will be held in class on Wed, March
14. Please let me know immediately if you have a conflict with this date.
- Feb 20 - Homework 2 is available.
- Feb 19 - Jeff will be occupied 3:30-4:00 during office
hours on Feb 20; please contact me if you need to meet at a different time.
- Feb 15 - Project 2 is available.
- Feb 14 - The types slides have been revised/extended and
- Feb 14 - The Project 1 deadline is extended to
Friday, Feb 17. Please contact me if this new due date poses any
issues for you.
- Feb 13 - Kris will hold office hours 4:15-5:45 today, and
cancel his Friday office hours this week, to provide extra help with
- Feb 10 - p1 tests updated to keep the units
specified in the expression, rather than implicitly converting to SI
units after computation.
- Feb 10 - The public tests have been updated slightly to fix
a buggy test.
- Feb 8 - Some public
tests for project 1 are now available.
- Feb 8 - Important: the project 1 description was updated as
discussed in class.
- Feb 6 - If you want to practice lambda calculus, see these
- Feb 1 - Project 1 is available.
- Feb 1 - Kris's office hours on Fri, Feb 3 will end slightly early at 1:30pm.
- Jan 31 - Jeff's office hours on Feb 1 are cancelled; please
contact me if you need to meet, and we can arrange another time.
- Jan 25 - You can now signup for this class on
piazza (note: I haven't used piazza before, so please tell me if
anything is set up wrong and needs to be fixed)
- Jan 25 - Homework 1 is available.
- Jan 25 - There will be no office hours this week.
now through Friday, May 11.
Remaining Office Hours
|May 4||no office hours|
(also available by appointment)
||jfoster at cs.umd.edu
||micinski at cs.umd.edu
||Tu 5-7pm, Fr 12:30-2pm
Today's programming languages give programmers unprecedented power and
flexibility, and yet sometimes they are still not enough. There are
many occasions when it is possible to encode the solution to a
programming problem in an existing language, but at the cost of
significant effort, loss of elegance and clarity, and reduced
maintainability. In these cases, often the best way to solve a
problem is to develop a new language that makes the solution easy to
express correctly, succinctly, and maintainably. Examples of such
languages range from "little" ones like Make, XML, JSON, YAML, Wiki,
bash, Windows .ini files, autoconf, etc., to "big" ones like Perl,
were invented because existing languages just weren't good enough, and
in the course of your career, you also may find yourself needing to
invent a new programming language!
The goal of CMSC 430 is to arm students with the ability to design,
implement, and extend a programming language. Throughout the course,
students will design and implement several related languages, and will
explore parsing, syntax querying, dataflow analysis, compilation to
bytecode, type systems, and language interoperation.
|Midterm Exam 1
||Wed, Mar 14, in class
|Midterm Exam 2
||Wed, Apr 18, in class
May 16, 1:30-3:30pm, 1122 CSIC
||There are no required or recommended texts.
See the resources page
for useful online links.