home button

Advanced Programming Languages
USF CIS 4930/6930, Spring 2011


Final grades are now posted on Blackboard.

Course materials


Assignment I, handed out on 01/20 and due on 02/01

Assignment II, handed out on 02/03 and due on 02/15

Solution to Problem 1b on Assignment II

Assignment III, handed out on 02/17 and due on 03/01

Assignment IV, handed out on 03/03 and due on 03/22

Assignment V, handed out on 03/24 and due on 04/05

Assignment VI, handed out on 04/07 and due on 04/19

Assignment VII, handed out on 04/21 and due on 05/05


Please use Blackboard to check your grades.

Tentative schedule (filled in as the semester progresses)

Date Topics Reading
01/11 Intro; Review Class notes
01/13 Review; Arrays Class notes
01/18 Arrays; Policy-specification languages Sections 1-3 of Composing Expressive Runtime Security Policies
01/20 Pattern matching Section 4 and Appendices of Composing Expressive Runtime Security Policies
01/25 Normalization Normalization handout
01/27 Curry-Howard Isomorphism Proofs are Programs: 19th Century Logic and 21st Century Computing
02/01 Fixed-point combinators; Subtyping Fixed-point combinator handout
02/03 Assignment I solutions Class notes
02/08 Subtyping Class notes
02/10 Subtyping Class notes
02/15 Subtyping Class notes
02/17 Assignment II solutions Class notes
02/22 Objects (translated into extended diML) Class notes
02/24 Objects in extended diML; Featherweight Java Sections 1-2 of Featherweight Java: A Minimal Core Calculus for Java and GJ
03/01 Subtyping iso-recursive types, revisited Class notes
03/03 Featherweight Java Class notes
03/08 Assignment III solutions Class notes
03/22 Haskell; Lazy evaluation Sections 1-4 of A Gentle Introduction to Haskell 98
03/24 Haskell; Type classes; Kinds Sections 5-6 of A Gentle Introduction to Haskell 98
03/29 Assignment IV solutions; Lazy types in diML Class notes
03/31 Haskell; Monads in diML Sections 7-9 of A Gentle Introduction to Haskell 98
04/05 Monads; Type-and-effect systems Class notes
04/07 Assignment V solutions; Dynamic typing in diML Class notes
04/12 Dynamic typing Class notes
04/14 Polymorphism; Universal types in diML Class notes
04/19 Parametricity; Abstract data types; Existential types in diML Class notes
04/21 Existential types in diML Class notes
04/26 Type inference (constraint generation) Class notes
04/28 Type inference (unification) Class notes