Description
This course is designed to provide a thorough introduction to the foundations and paradigms of programming languages. In particular, we will investigate functional programming in theory and practice and learn about some of the considerations underlying Java and object-oriented programming. Some of the topics to be covered are functional programming, lambda-calculus, type systems, continuations, Java and the object-oriented paradigm, and subtyping.
Lectures
MWF 1:35pm--2:25pm, Trottier 1100 (new)
Instructor
Brigitte Pientka (bpientka at cs dot mcgill dot ca)
Teaching Assistants
- Renaud Germain (
renaud dot germain at mail dot mcgill dot ca) - Andres Franceschi (
andres dot franceschi at gmail dot com) - Pablo Samuel Castro (
pcastr at cs dot mcgill dot ca)
Office Hours
- Mon 2:30pm--4:00pm, Brigitte Pientka, ENGMC 107N
- Tue 3:00pm--5:00pm, Pablo Samuel Castro, ENGMC 111
- Wed 2:30pm--4:00pm, Brigitte Pientka, ENGMC 107N
- Thu 12:30pm--2:30pm, Andres Franceschi, ENGTR 3060
- Fri 11:00am--1:00pm, Renaud Germain, ENGTR 3060
Required Reading
- R. Harper: "Programming in Standard ML" (available online)
- Course notes (available online)
Supplementary Reading
The following are on reserve in the Schulich library.
- J. Mitchell: "Concepts in Programming Languages". Cambridge University Press, 2003.
- D. P. Friedman, M. Wand, C. T. Haynes: "Essentials of Programming Languages". MIT Press, 2001.
- H. Abelson, G. J. Sussman, J. Sussman: "Structure and Interpretation of Computer Programs". MIT Press, 1996.
- B. C. Pierce: "Types and Programming Languages". MIT Press, 2002.
Evaluation
- 35% homework assignments
- 10% midterm
- 55% 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. Late assignments will be accepted only under exceptional circumstances.
Midterm
Wednesday, Oct 22, 1:35 - 2:25, ENGMC 13, Open notes.
Final
TBA. Open book and open notes.
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.