home button

Advanced Programming Languages
USF CIS 4930/6930, Spring 2015


Final grades are posted in Canvas.

Course materials


Assignment 1

Assignment 2

Assignment 3

Assignment 4

Assignment 5

Assignment 6

Assignment 7


Please use Canvas to check your grades.

Schedule (filled in as the semester progresses)

Date Topics Reading
01/05 Introduction; Review
01/07 Review Class notes
01/12 Review Class notes
01/14 Type safety with evaluations contexts Class notes
01/21 Evaluation contexts Class notes
01/26 Assignment 1 solutions Class notes
01/28 Finally finished type safety with evaluation contexts Class notes
02/02 Policy-specification languages; Pattern matching Composing Expressive Run-time Security Policies (This is a long paper; please just get the high-level ideas and then focus on the low-level ideas presented in Section 4 and the appendices.)
02/04 Assignment 2 solutions Class notes
02/09 Pattern matching Class notes
02/11 Pattern matching Class notes
02/16 Subtyping Class notes
02/18 Assignment 3 solutions; Subtyping Class notes
02/23 Subtyping On Subtyping-Relation Completeness, with an Application to Iso-Recursive Types
02/25 Normalization; Church-Rosser Theorem; Subtyping soundness/completeness/preciseness; Induction on failing derivations (same paper as previous class)
03/09 Subtyping recursive types (same paper as previous class)
03/11 Assignment 4; OOPLs; Nominal vs structural types Class notes
03/16 Translation of OOPLs into extended diML Class notes
03/18 Type casts; Featherweight Java Sections 1-2 of Featherweight Java: A Minimal Core Calculus for Java and GJ
03/23 Dynamic and hybrid (static-dynamic) typing Class notes
03/25 Assignment 5 solutions Class notes
03/30 More on joins and meets with recursive types Class notes
04/01 Monads; Type-and-effect Systems Class notes
04/06 Type-and-effect Systems; Monadic diML Class notes
04/08 Polymorphism; Universal types in diML Class notes
04/13 Parametricity; Existential types in diML Class notes
04/15 Existential types in diML Class notes
04/20 Type inference (constraint generation) Class notes
04/22 Type inference (unification) Class notes