Description
This course is designed to provide a thorough introduction to the foundations and paradigms of programming languages. In particular, we will study functional programming in theory and practice. Among the topics covered are functional programming, type systems, continuations, Java and the object-oriented paradigm, and subtyping.
Lectures
MWF 1:35pm–2:25pm, Macdonald Engineering 280
Instructor
Joshua Dunfield (joshua.dunfield at gmail dot com)
Teaching Assistants
- Ali Assaf (ali.assaf at mail.mcgill.ca)
- Alex Malozemoff (amalozemoff1 at gmail dot com)
- TBA
Required Reading
- Robert Harper, Programming in Standard ML (available online)
- Course notes (to appear online)
Supplementary Reading
The following will be available in the Schulich library.
- Benjamin C. Pierce, Types and Programming Languages. MIT Press, 2002.
Evaluation
- 50% homework assignments
- 10% midterm
- 40% final
Assignments
There will be 5 homework assignments. Assignments must be
handed in electronically using the handin tool
(see the FAQ page
for more information on handin); assignments
submitted via email will not be accepted.
Each student has two late days: you can turn in two assignments one day late, or one assignment two days late. Otherwise, late assignments will be accepted only in extraordinary circumstances, subject to applicable regulations.
Midterm
Mon., March 1, 1:35pm–2:25pm, Macdonald Engineering 280. Open notes.
Final
TBA. Open book and open notes.
Language Rights
| In accord with McGill University's Charter of Students' Rights, students in this course have the right to submit in English or in French any written work that is to be graded. |
Academic Integrity
| McGill University values academic integrity. Therefore all students must understand the meaning and consequences of cheating, plagiarism and other academic offenses under the Code of Student Conduct and Disciplinary Procedures (see http://www.mcgill.ca/integrity/ for more information). Most importantly, work submitted for this course must represent your own efforts. Copying assignments or tests from any source, completely or partially, or allowing others to copy your work, will not be tolerated. |