John Peterson

I am at CCSU on a 1 year appointment. At the moment I am teaching CS110, CS152, and CS213. Contact information: My publications are found on the Yale Functional Programming Group home page.

Class Wikis


My field of research is programming language design and implementation. I was one of the designers of the Haskell language and I have been developing "little languages" that deal with specific domains of interest. Some of these include: I am currently looking for students to work with me in Spring, 2005, as independent study or perhaps a seminar class. I have a long list of projects I am interested in and would like to supervise. Many of these require knowledge of Haskell but you shouldn't worry too much if you don't know functional programming. If you are interested in any of the following projects, please come by my office or drop me an email.


Algorithmic Music

Haskore is a language of algorithmic music composition embedded in Haskell. Projects involving Haskore include:

Functional Graphics

User Interfaces

I am part of a research project which deals with a purely functional style of GUI programming. We have integrated FRP (Functional Reactive Programming) with a Haskell-based GUI package, wxHaskell. While most of the theoretical issues have been worked out, there is a lot of work needed to bring a significant portion of the wxHaskell functionality into the FRP setting. This project will require a deep understanding of Haskell and FRP and should lead to publishable results. If you are interested in going on to graduate school and want to get a taste for real research and learn a lot about programming languages and semantics this would be an excellent project for you.


I have been using some of these languages in an educational context to teach basic principles of computer science and mathematics. The following projects all have a significant educational component and would be good for students that are more interested in using languages than implementing them. I have four potential projects in this area: