/ Concurrent Programming

Programming Language Concepts
January – April 2016

Administrative Details

  • Evaluation
    • Assignments 30%, midsemester exam 30%, final exam 40%
    • Instructor: S P Suresh
  • Submit all assignments on Moodle only. Further instructions will be given as part of the assignments.

Course Plan

  • Introduction to basic object-oriented concepts using Java
  • Classes, objects, subclasses and inheritance, runtime polymorphism, interfaces and implementations, generics, iterators, callbacks
  • Concurrent programming in Java
  • Recap of Haskell
  • Untyped lambda calculus: basics
  • Encoding of arithmetic functions
  • Y combinator and encoding all recursive functions
  • Reduction strategies, Church-Rosser theorem
  • Simply typed lambda-calculus: Church and Curry typing
  • Weak normalization
  • Polymorphism and type inference in Haskell
  • Introduction to System F