University of British Columbia, Department of Computer Science CPSC 311 Definition of Programming Languages Winter 2016 Term 1
|
Read the assignments section of the syllabus. Follow the collaboration policy. Feel free to work in ICCS X251 or X350 when they're not in use (see the ICCS X251 schedule or ICCS X350 schedule).
Don't submit late.
Assignment | Out | Due |
---|---|---|
Racket/PLAI practice | 2016/09/11 | 22:00 (10pm) on 2016/09/19 |
Evaluation semantics + interpreter | 2016/09/27 | 22:00 (10pm) on 2016/10/ |
Fun type checker | 2016/10/14 | 22:00 (10pm) on 2016/10/21 |
Small-step semantics | 2016/11/01 | 22:00 (10pm) on 2016/11/12 |
Subtyping and environments | 2016/11/15 | 01:00* (1am) on 2016/11/25 |
Bidirectional typing | 2016/11/26 | 22:00 (10pm) on 2016/12/06 |
#lang plaiThe documentation for the plai module is in the help desk (search for "plai").
For a thorough introduction to Racket and HtDP in general, read the prologue, part 1, and part 2 of the second edition of How to Design Programs. Also Part IV, Part VI, Part VII, and Part VIII of the first edition.
For something quicker, go to the Quick guide to Racket and the guides on Web programming and systems programming.
The following exercises from Brown's CS173 course will help you learn Racket:
What next? Try to use it to write some small data manipulation program you need or just want to build.