University of British Columbia, Department of Computer Science CPSC 311 Definition of Programming Languages Winter 2015 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 | 2015/09/14 | 22:00 (10pm) on 2015/09/24 |
Fun++ interpreter | 2015/09/28 | 22:00 (10pm) on 2015/10/08 |
Typed Fun++ type checker | 2015/10/15 | 22:30 (10:30pm) on 2015/10/23 |
End-of-Term Project (posted so you can start thinking about it!) | 2015/10/21 | 2015/11/02: project-commit 2015/11/07: project-proposal 2015/11/16: project-background 2015/11/27: project-plan-proof 2015/12/04 (in class): Poster Session! 2015/12/07: project-final |
Subtyping / small-step | 2015/11/20 | 22:30 (10:30pm) on 2015/12/01 |
#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.