Description

Language-based security relies on techniques from programming languages and type systems to enforce safety policies in networked computing environments. This course looks at advanced principles of programming languages and type systems. In particular, we discuss mathematical foundations such as type systems, lambda calculus, underlying the theory and practice of functional programming, as well as programming with dependent types and proofs.

Lectures

MW 2:05pm--3:25am, Trottier 1100

Instructor

Prof. Brigitte Pientka (bpientka at cs dot mcgill dot ca)

Teaching Assistant

Olivier Savary (osavary at cs dot mcgill dot ca)

Office Hours

Required Reading

The following is on reserve in the Schulich library.

Evaluation

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.

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 the instructor 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.

Midterm

Fr, Mar 1 (in-class)

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.