Foundations of Programming
Summer Semester 2002
School of Computer and Communication Sciences
Programming Methods Laboratory (LAMP)
 
 
Home
Staff
Research
Publications
Events
Teaching
  FoP
    Overview
    Schedule
    Slides
    Tutorial
    Contact
    Links
Jobs
   
 
  
     

No Course on Thursday, June 13 !

Overview

Goals of this course:
  • Better understanding of programming languages
    • Which concepts are essential?
    • Which are ephemeral?
    • How can fundamental concepts encode derived ones?
  • Better understanding of programming
    • Fundamental composition principles
    • Language as a means of abstraction
    • Interpreters and compilers
  • Better understanding of definitions of programming languages
    • Which things can/should be formalized
    • What techniques are available for formalization
  • Overall: Increased competence as a programmer, language implementor, library and language designer
The course is organized in three streams:
  • Theory: Syntax and Semantics of Programming Languages
  • Applications: Core languages that illustrate essential concepts: Funnel, Oz, Nomadic Pict
  • Practice: Programming & Verification Examples, Interpreters
References:

Schedule

This schedule is still preliminary.
Week 1 (March 11 & March 14): Introduction
Week 2 (March 18 & March 21): Lambda Calculus
Week 3 (March 25 & March 28): Lambda Calculus & Algebraic Data Types
Week 4 (April 08 & April 11): Concurrency I: from Lambda to CCS
Week 5 (April 15 & April 18): Concurrency II: Bisimulation
Week 6 (April 22 & April 25): Concurrency III: from CCS to Pi
Week 7 (April 29 & May 2): Concurrency IV: from Pi to FN
Week 8 (May 6 & May 9): Simply Typed Lambda Calculus
Week 9 (May 13 & May 16): Types II - Polymorphism
Week 10 (May 20 & May 23): Types III - Objects
Week 11 (May 27 & May 30): Types IV - Classes & Inheritance
Week 12 (June 3 & June 6): Types V - Nested?
Week 13 (June 10 & June 13): Distribution I
Week 14 (June 17 & June 20): Distribution II
Oral EXAM - July, 2002

Slides

  • Overview,
    in .pdf format, in .ps format.

  • Introduction to Functional Programming,
    in .pdf format, in .ps format.

  • Lambda Calculus,
    in .pdf format, in .ps format.

  • Lists in Funnel ,
    in .pdf format, in .ps format.

  • From Lambda to CCS (Session 8),
    in 1on1.pdf format, 2on1.ps format, and 4on1.ps format.

  • Equivalence in CCS (Session 9),
    in 1on1.pdf format, 2on1.ps format, and 4on1.ps format.

  • Scheduler Example (Session 10),
    in 1on1.pdf format, 2on1.ps format, and 4on1.ps format.

  • From CCS to Pi-Calculus (Session 11),
    in 1on1.pdf format, 2on1.ps format, and 4on1.ps format.

  • Booleans & Buffer Example (Session 12),
    in 1on1.pdf format, 2on1.ps format, and 4on1.ps format.

  • Pi-Calculus: Encodings and Variants (Session 13),
    in 1on1.pdf format, 2on1.ps format, and 4on1.ps format.

  • Functional Nets,
    in .ps format, in .ppt format.

  • Type Systems: The Simply Typed Lambda Calculus,
    in .pdf format, in .ps format.

  • Polymorphism,
    in .pdf format, in .ps format.

  • Types for Objects,
    in .pdf format, in .ps format.

  • Classes and Inheritance,
    in .ps format, in .ppt format.

  • Located Process Calculi (June 10),
    in 4on1.ps

  • Nomadic Pict (June 17),

Tutorial

Contact

Related Links


     
      
Last modified: Monday, 01-Mar-2004 14:30:56 CET