Teaching

Schedule

Spring 2010:EECS 700 Functional Programming
EECS 800 Implementing Functional Languages
Fall 2009:EECS 368 Programming Language Paradigms
Spring 2009:EECS 690/700 Functional Programming
Fall 2008:EECS 368 Programming Language Paradigms

Classes at KU

EECS 368 Programming Language Paradigms is an introduction to programming language fundamentals. The objective of the course is to provide an introduction to alternative programming models that compliment the traditional imperative models taught in introductory courses. The course will provide theoretical insight into various aspects of modern languages while requiring hands-on development of programs using Java, Scheme, and Haskell.

EECS 690/700 Functional Programming teaches how to solve engineering problems efficiently in a modern functional language. Topics may include basic functional idioms, introduction to Haskell, IO and purity, functional data structures and algorithms, monads and applicative functors, parsing combinators, DSLs and hardware description DSLs, advanced type systems, making assurance arguments, testing and debugging. These topics will be explored using a hands-on style with case studies, program assignments and projects.

EECS 800 Implementing Functional Languages explores the science and engineering of efficiently executing functional programming languages. The class cover all the major techniques used in real functional language compilers to optimize their programs. This will be a practical class, with examples taken from the Glasgow Haskell compiler, the TIMBER compiler, and other systems. There will also be reading assignments of ACM SIGPLAN implementation papers.