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 2:35pm--3:25pm, Stewart Biology N2/2
Instructors
- Andrew Cave (
acave1 at cs.mcgill.ca) - Francisco Ferreira (
francisco.ferreira2 at mcgill.ca)
Teaching Assistants
- David Thibodeau (
david.thibodeau at mail.mcgill.ca) - Andrew Bodzay (
andrew.bodzay at mail.mcgill.ca) - Gheorghe Comanici (
gheorghe.comanici at mail.mcgill.ca)
Office Hours
- Mon 11:00am-1:00pm, Gheorghe Comanici, Trottier 3110
- Tue 3:00pm-5:00pm, Andrew Cave/Francisco Ferreira, Trottier 3110
- Thu 12:00pm-2:00pm, David Thibodeau, Trottier 3110
- Fri 11:00am-1:00pm, Andrew Bodzay, Trottier 3110
Required Reading
- R. Harper: "Programming in Standard ML" (available online)
- Course notes (available online)
Supplementary Reading
- B. C. Pierce: "Types and Programming Languages". MIT Press, 2002.
Evaluation
- 30% homework assignments
- 10% midterm
- 60% final
Assignments
There will be 6 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.>
Submitted programs which do not compile or do not match the given type specification automatically receive a 50% penalty. See the FAQ page for information on how to compile your programs or contact a TA if you have trouble.
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.
Assginments can be done individually or in groups of up to two students. If you choose to do an assignment with another student, you have to submit only one copy with both names. And a short description of what was done by each student. We encourage you to work together on all questions.
Midterm
Date: Fri, Feb 22, 2:35pm - 3:25pm
Closed book. Cheat sheet (one sheet, both sides) allowed.
Final
Date: TBA. Closed book. Cheat sheet (one sheet, both sides) allowed.
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. |