Haskell Courses by Year

1st undergraduate

Total student numbers: 1955-3955

Beginning Programming

Total student numbers: 1620-3250

Functional programming courses

name Introduction to functional programming
prior No
compulsory Compulsory
year 1st undergraduate
howmany 100-200
since 1995
already Not familiar
firstlang Haskell
secondlang C
univ Chalmers University of Technology
country Sweden
url http://www.cs.chalmers.se/Cs/Grundutb/Kurser/funht/
comments

name Introduction to functional programming
prior No
compulsory Compulsory
year 1st undergraduate
howmany 50-100
since 1998
already Not familiar
firstlang Haskell
secondlang Java
univ Chalmers University of Technology
country Sweden
url http://www.cs.chalmers.se/Cs/Grundutb/Kurser/funvt/
comments

name Functional programming
prior No
compulsory Compulsory
year 1st undergraduate
howmany 50-100
since 1999
already Not familiar
firstlang Haskell
secondlang C
univ Universidade do Minho
country Portugal
url http://wiki.di.uminho.pt/wiki/bin/view/Education/ProgramacaoFuncional
comments

name Functional programming
prior No
compulsory Compulsory
year 1st undergraduate
howmany 100-200
since 1996
already Not familiar
firstlang Java
secondlang Haskell
univ University of Kent
country UK
url
comments

name Functional programming
prior No
compulsory Compulsory
year 1st undergraduate
howmany 200+
since 1996
already Not familiar
firstlang Haskell
secondlang C
univ Universidade do Minho
country Portugal
url www.di.uminho.pt/~jbb/pp1
comments

name Introduction to functional programming
prior No
compulsory Compulsory
year 1st undergraduate
howmany 200+
since 1992
already Not familiar
firstlang Haskell and Pascal at the same time
secondlang C
univ Masaryk University
country Czech Republic
url http://is.muni.cz/predmety/predmet.pl?jazyk=en;id=289939
comments

name Introduction to functional programming
prior No
compulsory Compulsory
year 1st undergraduate
howmany 50-100
since 1990
already Not familiar
firstlang Haskell
secondlang Java
univ University of Oxford
country UK
url http://web.comlab.ox.ac.uk/oucl/courses/topics05-06/fp/
comments The course, which has been taught by half-a-dozen different lecturers, is the first lecture course taught to incoming students. The vast majority of students enjoy it and find the material useful in studying other topics in subsequent terms and years. A number of students use Haskell in their third-year projects. Currently there is not an advanced functional programming course, but one is planned for the near future

Other courses

name Algorithms and Data Structures I
prior No
compulsory Compulsory
year 1st undergraduate
howmany 50-100
since 2001
already Not familiar
firstlang Haskell
secondlang C++
univ University of Buenos Aires
country Argentina
url http://www.dc.uba.ar/people/materias/algo1/
comments In this course, we teach an introduction to programming in three steps: formal specifications, functional programming and imperative programming. In the first step, students learn to unambiguously describe a problem before trying to solve it. In the second one, they program simple solutions to specified problems using simple recursive function defintions in Haskell. In the third step, they learn how to solve roughly the same problems using control-flow structures present in imperative languages, such as loops.

name Software Development
prior No
compulsory Compulsory
year 1st undergraduate
howmany 50-100
since 1995
already Not familiar
firstlang Haskell
secondlang Java
univ Kingston University
country UK
url http://staffnet.king.ac.uk/~ku02309/courses/swd.html
comments

name Algorithms and Data Structures I
prior No
compulsory Compulsory
year 1st undergraduate
howmany 200+
since 2005
already Not familiar
firstlang Haskell
secondlang Java
univ Australian National University
country Australia
url
comments Academic years are calendar years for us. We'll be using Haskell for the first time in 1st semester 2006.

name Software Development
prior No
compulsory Compulsory
year 1st undergraduate
howmany 50-100
since 1990
already Not familiar
firstlang Haskell
secondlang JavaScript
univ Kingston University
country UK
url
comments

name Computer Science 1 (Fundamentals of Programming and Programming Languages)
prior No
compulsory Compulsory
year 1st undergraduate
howmany 100-200
since 2001
already Not familiar
firstlang Haskell
secondlang Sather
univ Martin-Luther-University Halle-Wittenberg
country Germany
url
comments

name Informatics 1
prior No
compulsory Compulsory
year 1st undergraduate
howmany 100-200
since 2004
already Not familiar
firstlang Haskell
secondlang Java
univ University of Edinburgh
country UK
url http://www.inf.ed.ac.uk/teaching/courses/inf1/fp/
comments

name Programming Language Fundamentals
prior No
compulsory Compulsory
year 1st undergraduate
howmany 10-25
since 2005
already Not familiar
firstlang Haskell
secondlang C
univ University of Pereslavl named after A.K. Aylamazyan
country Russia
url
comments

name Computer Science 1 (Fundamentals of Programming and Programming Languages)
prior No
compulsory Compulsory
year 1st undergraduate
howmany 200+
since 1990
already Not familiar
firstlang Java
secondlang Haskell
univ University of Münster
country Germany
url http://www-wi.uni-muenster.de/pi/lehre/ws0405/info1/index.php
comments

name Foundations of computing
prior No
compulsory Compulsory
year 1st undergraduate
howmany 10-25
since 2004
already Not familiar
firstlang Java
secondlang C
univ Bowdoin College
country USA
url http://www.bowdoin.edu/~allen/courses/cs189/syllabus.html
comments

name Informatics 2
prior No
compulsory Compulsory
year 1st undergraduate
howmany 100-200
since 2005
already Not familiar
firstlang Java
secondlang Haskell
univ University of Koblenz
country Germany
url http://www.uni-koblenz.de/FB4/Institutes/IST/AGEbert/Teaching/SS05/InfB
comments

With Programming Experience

Total student numbers: 335-705

Functional programming courses

name Functional programming
prior Yes
compulsory Compulsory
year 1st undergraduate
howmany 50-100
since 1997
already Not familiar
firstlang Java
secondlang Haskell
univ University of Kent
country UK
url http://www.cs.kent.ac.uk/teaching/05/modules/CO/3/26/index.html
comments

name Functional programming
prior Yes
compulsory Compulsory
year 1st undergraduate
howmany 100-200
since 1990
already Not familiar
firstlang Java
secondlang Haskell
univ Utrecht University
country the Netherlands
url http://www.cs.uu.nl/wiki/FP/WebHome
comments

name Functional programming
prior Yes
compulsory Compulsory
year 1st undergraduate
howmany 25-50
since 1993
already Not familiar
firstlang C
secondlang C
univ Escuela Col de Ingeniería
country Colombia
url http://www.is.escuelaing.edu.co/asignaturas/plyf
comments

name Advanced functional programming
prior Yes
compulsory Compulsory
year 1st undergraduate
howmany 0-10
since 1990
already Already familiar
firstlang Ada
secondlang Ada
univ Australian National University
country Australia
url
comments

name Advanced functional programming
prior Yes
compulsory Compulsory
year 1st undergraduate
howmany 0-10
since 1990
already Already familiar
firstlang Ada
secondlang Ada
univ Australian National University
country Australia
url
comments

Other courses

name Computer Science 2
prior Yes
compulsory Compulsory
year 1st undergraduate
howmany 10-25
since 2002
already Not familiar
firstlang Java
secondlang Haskell
univ DePauw University
country USA
url http://www.csc.depauw.edu/~bhoward/courses/0506Fall/csc122/
comments We use Haskell for a couple of weeks in the middle of our CS2 course to introduce recursion, list processing, and abstract data types (then we go back to Java).

name Software Engineering
prior Yes
compulsory Compulsory
year 1st undergraduate
howmany 100-200
since 1999
already Not familiar
firstlang C
secondlang Java
univ University of Bristol
country UK
url http://www.cs.bris.ac.uk/Teaching/Resources/COMS12100/
comments Haskell is taught as a "minor" language alongside Java. It is difficult to justify anything else, given the lack of commercial interest. It is motivated as an introduction to declarative ideas that occur in many specialist languages that come later (HTML, SQL, Prolog, Python, ...), as a source of ideas in other languages (e.g. generics in Java) and as a language for throwaway prototyping.

name (Note: more especifically, high-order programming + polymorphism + algorithms.)
prior Yes
compulsory Compulsory
year 1st undergraduate
howmany 0-10
since 1990
already Already familiar
firstlang Ada
secondlang Ada
univ Australian National University
country Australia
url
comments

name Introduction to Programming
prior Yes
compulsory Compulsory
year 1st undergraduate
howmany 50-100
since 1999
already Not familiar
firstlang C
secondlang Haskell
univ University of Melbourne
country Australia
url http://www.cs.mu.oz.au/152/
comments

2nd undergraduate

Total student numbers: 1480-2985

Beginning Programming

Total student numbers: 100-200

Other courses

name Introduction to Programming
prior No
compulsory Compulsory
year 2nd undergraduate
howmany 100-200
since 1998
already Not familiar
firstlang Scheme
secondlang Java
univ Ecole des Mines de Nantes
country France
url
comments In fact we do not use Haskell but gofer with a stripped prelude. Basically we use it as a typed Scheme (we use only a core of the syntaxt). This course does not exist any more (we now use Java as a first programming language)

With Programming Experience

Total student numbers: 1380-2785

Functional programming courses

name Introduction to functional programming
prior Yes
compulsory Compulsory
year 2nd undergraduate
howmany 50-100
since 1997
already Not familiar
firstlang C
secondlang Java
univ University of Porto
country Portugal
url http://www.dcc.fc.up.pt/~amf/aulas/pd/pd.html
comments

name Functional programming
prior Yes
compulsory Compulsory
year 2nd undergraduate
howmany 100-200
since 1997
already Already familiar
firstlang Haskell
secondlang C
univ Universidade do Minho
country Portugal
url http://www.di.uminho.pt/~jno/html/mpi.html
comments

name Functional programming
prior Yes
compulsory Compulsory
year 2nd undergraduate
howmany 100-200
since 1995
already Not familiar
firstlang Java
secondlang C++
univ Universität Bremen
country Germany
url http://www.informatik.uni-bremen.de/agbkb/lehre/pi3/
comments

name Advanced functional programming
prior Yes
compulsory Optional
year 2nd undergraduate
howmany 25-50
since 2005
already Already familiar
firstlang Java
secondlang Haskell
univ University of Nottingham
country UK
url
comments

name Introduction to functional programming
prior Yes
compulsory Compulsory
year 2nd undergraduate
howmany 50-100
since 1998
already Not familiar
firstlang Java
secondlang N/A for CS graduate programs
univ University of Tartu
country Estonia
url http://www.cs.ut.ee/~varmo/MFP2005/index.html
comments

name Functional programming
prior Yes
compulsory Compulsory
year 2nd undergraduate
howmany 25-50
since 1995
already Not familiar
firstlang Java
secondlang Haskell
univ University of Sussex
country UK
url http://www.informatics.sussex.ac.uk/courses/funcprog/
comments

name Functional programming
prior Yes
compulsory Compulsory
year 2nd undergraduate
howmany 25-50
since 2002
already Not familiar
firstlang Java
secondlang N/A for CS graduate programs
univ University of Sussex
country UK
url http://www.informatics.sussex.ac.uk/users/bernhard/fp2003/
comments The course is now taught by Dan Chalmers at Sussex who may or may not fill in this form himself. Note also that the course is cumpulsory for Cs students but not for Math with Cs or Cs with AI students. Note also that this course will be discontinued in 2007 and replaced by a course "(non-imperative) Program Paradigms" where Functional and Logic Programming (and may be others?) will be taught. (Note also that I voted against that decision :-).

name Functional programming
prior Yes
compulsory Compulsory
year 2nd undergraduate
howmany 50-100
since 1990
already Not familiar
firstlang Java
secondlang Prolog
univ University of Wales Swansea
country UK
url file:///compsci/partition1/csulrich/public_html/cs221.html
comments This survey is a great idea. Thanks. Just a few comments: In general, students appreciate the clarity and conciseness of FP. I think, a substantial percentage of the students on really like it. But, they do not take it very seriously as a "real world" programming language. They rather tend to consider it a nice academic exercise. How can one convince students of the practical usefulness of FP in a course of 20 x 50 minutes lectures? I think it is not enough to praise the successes of FP. The students need to see that they can do interesting things with FP by themselves. The question is: which things? I tried graphics (Hudak, Lueth) and functional parsers (Hutton, Meijer), but my impression was that students are mostly interested in things which Simon Peyton Jones addressed in his paper "Tackling the Awkward Squad: monadic input/output, concurrency,exceptions, and foreign-language calls". I think, for the purpose of teaching FP, we are in dire need of a book on FP that not only presents the purely functional aspects, but also comprehensively covers issues discussed in that paper. In Swansea, we are teaching FP in the second (compulsory) and third (optional) year. I think it's perfectly okay to teach the students another (mainstream) language in the first year, against which they can later measure the benefits of FP.

name Functional programming
prior Yes
compulsory Optional
year 2nd undergraduate
howmany 25-50
since 1994
already Not familiar
firstlang Pascal
secondlang It varies. C/Java
univ Oxford Brookes University
country UK
url not outside-accessible (alas!)
comments

name Functional programming
prior Yes
compulsory Compulsory
year 2nd undergraduate
howmany 25-50
since 1993
already Not familiar
firstlang Java
secondlang Java
univ University of Leicester
country UK
url
comments We teach Functional Programming to expose students to a new style of programming. The module lasted for one semester for some time, and the students typically finished the project with a parser, or a simple compiler. In 2005 the module was contracted to a half semester, to make way for other core material. We do little more than the basics of the language, without much project style work.

name Functional programming
prior Yes
compulsory Compulsory
year 2nd undergraduate
howmany 100-200
since 1994
already Not familiar
firstlang Ada
secondlang Haskell
univ University of Glasgow
country UK
url http://www.dcs.gla.ac.uk/~muffy/FP2-2004-web/default.html
comments

name Introduction to functional programming
prior Yes
compulsory Compulsory
year 2nd undergraduate
howmany 0-10
since 2005
already Not familiar
firstlang Java
secondlang Haskell
univ Bard College
country USA
url turing.bard.edu/~mcgrail/courses/5002/fall/fp/
comments

Other courses

name Compilers
prior Yes
compulsory Optional
year 2nd undergraduate
howmany 25-50
since 2005
already Already familiar
firstlang Java
secondlang Haskell
univ University of Kent
country UK
url http://www.cs.kent.ac.uk/teaching/05/modules/CO/5/24/index.html
comments The course uses both Haskell and Java. For most assessments the students are free to choose either language.

name Object Oriented Programming
prior Yes
compulsory Compulsory
year 2nd undergraduate
howmany 25-50
since 2004
already Not familiar
firstlang C
secondlang Java
univ HTWK (Technical University) Leipzig
country Germany
url http://www.imn.htwk-leipzig.de/~waldmann/edu/ss05/oo/folien/oo/
comments For historical reasons, the course is called "Object Oriented Programming" and roadmap is 1. Haskell, 2. Java (1.5) (mainly the collections framework) 3. C++ (STL). The recurring topics are a) types, b) generic types, c) interfaces and inheritance. My main "internal" observation (besides the usual one that concepts can be expressed very concisely and precisely in Haskell and students usually manage to get this) is that the Haskell libraries could learn a lot from the corresponding designs in Java (which in turn were built on C++ STL of course). Next time I'll probably drop the C++ part since it's just too much syntax hassle and late typechecks and the interface concept is missing and I don't see what could be learned from that.

name Programming Language Structure
prior Yes
compulsory Optional
year 2nd undergraduate
howmany 50-100
since 1997
already Already familiar
firstlang Haskell
secondlang Java
univ Chalmers University of Technology
country Sweden
url http://www.cs.chalmers.se/Cs/Grundutb/Kurser/progs/
comments

name Programming Language Structure
prior Yes
compulsory Compulsory
year 2nd undergraduate
howmany 25-50
since 2005
already Not familiar
firstlang Java
secondlang Haskell
univ Philipps-University Marburg
country Germany
url
comments

name Compilers
prior Yes
compulsory Compulsory
year 2nd undergraduate
howmany 50-100
since 2003
already Already familiar
firstlang Java
secondlang Haskell
univ University of Nottingham
country UK
url www.cs.nott.ac.uk/~nhn/G52CMP
comments Haskell is used to illustrate certain points in the lectures. The students use Java for the lab part of the course. (At some point, Haskell might be used throughout.)

name Applied Logic
prior Yes
compulsory Compulsory
year 2nd undergraduate
howmany 10-25
since 2000
already Not familiar
firstlang Java
secondlang C++
univ University of Oklahoma
country USA
url http://www.cs.ou.edu/~beseme/
comments

name Declarative Programming
prior Yes
compulsory Compulsory
year 2nd undergraduate
howmany 25-50
since 1999
already Not familiar
firstlang Java
secondlang Haskell
univ University of Durham
country UK
url
comments

name Informatics 2
prior Yes
compulsory Compulsory
year 2nd undergraduate
howmany 100-200
since 2005
already Already familiar
firstlang Haskell
secondlang Java
univ University of Edinburgh
country UK
url
comments Informatics 2 teaches some material in Haskell, building on the students familiarity with Haskell from Informatics 1.

name Declarative Programming
prior Yes
compulsory Compulsory
year 2nd undergraduate
howmany 10-25
since 1998
already Not familiar
firstlang Java
secondlang C++
univ Vassar College
country USA
url http://www.cs.vassar.edu/~cs245
comments I've been using haskell in the Declarative Programming course a Vassar for several years. I've recently left Vassar though, so I'm not sure whether they'll keep using it. Thus, the URL provided may not show the use of haskell.

name Software Workshop Haskell
prior Yes
compulsory Optional
year 2nd undergraduate
howmany 25-50
since 2000
already Already familiar
firstlang Java
secondlang Haskell or Prolog
univ University of Birmingham, UK
country UK
url http://www.cs.bham.ac.uk/~ard/modules/swh.html
comments

name (Note: more especifically, high-order programming + polymorphism + algorithms.)
prior Yes
compulsory Compulsory
year 2nd undergraduate
howmany 200+
since 2001
already Already familiar
firstlang Ada
secondlang Haskell
univ Universidad Politecnica de Madrid
country Spain
url http://dsp.ls.fi.upm.es/dsp/
comments

name Languages and Computability
prior Yes
compulsory Compulsory
year 2nd undergraduate
howmany 50-100
since 2005
already Not familiar
firstlang Java
secondlang Haskell or Prolog
univ Dublin City University
country Ireland
url http://www.computing.dcu.ie/~hamilton/teaching/CA215
comments Functional programming using Haskell makes up one half of the course; the other half looks at the theory of computation.

Programming languages courses

name Programming Languages
prior Yes
compulsory Compulsory
year 2nd undergraduate
howmany 25-50
since 2005
already Already familiar
firstlang Pascal
secondlang Java
univ Universidade Federal do Ceará
country Brazil
url http://groups.yahoo.com/group/lp-l/
comments

name Programming Languages
prior Yes
compulsory Compulsory
year 2nd undergraduate
howmany 25-50
since 2001
already Not familiar
firstlang C++
secondlang Java
univ University of Kansas
country USA
url http://www.ittc.ku.edu/~alex/teaching/eecs368/
comments

name Principles of Programming Languages
prior Yes
compulsory Compulsory
year 2nd undergraduate
howmany 10-25
since 2005
already Not familiar
firstlang Java
secondlang C++
univ College of William and Mary
country USA
url http://www.cs.wm.edu/~noonan/cs312/
comments

name Programming Languages
prior Yes
compulsory Compulsory
year 2nd undergraduate
howmany 100-200
since 2005
already Not familiar
firstlang Different programs learn different things: one group learns Scheme first then Java, another learns Java first with a little Scheme mixed into CS2
secondlang see answer to previous
univ University of California, Irvine
country USA
url http://www.ics.uci.edu/~thornton/ics141/
comments

name Programming Paradigms and Languages
prior Yes
compulsory Optional
year 2nd undergraduate
howmany 50-100
since 2002
already Not familiar
firstlang Java
secondlang C
univ Griffith University
country Australia
url http://www.cit.gu.edu.au/~arock/ppl/
comments Haskell is chosen as to contrast with students' prior exposure to only imperative/OO languages. Some really like it. Some just don't come close to getting it.

3rd undergraduate

Total student numbers: 1245-2565

With Programming Experience

Total student numbers: 1245-2565

Functional programming courses

name Advanced functional programming
prior Yes
compulsory Optional
year 3rd undergraduate
howmany 0-10
since 1997
already Already familiar
firstlang C
secondlang Java
univ University of Porto
country Portugal
url http://www.dcc.fc.up.pt/~amf/aulas/ld/0102/ld.html
comments

name Functional programming
prior Yes
compulsory Optional
year 3rd undergraduate
howmany 25-50
since 1999
already Not familiar
firstlang Don't know
secondlang Don't know
univ Chalmers University of Technology
country Sweden
url http://www.cs.chalmers.se/Cs/Grundutb/Kurser/e4fun/
comments

name Functional programming
prior Yes
compulsory Optional
year 3rd undergraduate
howmany 10-25
since 2003
already Not familiar
firstlang Java
secondlang C++
univ University of Texas at Austin
country USA
url
comments Once students learn effective programming with higher-order functions, learn a bit of the theory of the lambda calculus,and gain practice programming recursively in Scheme, Haskell and ML/OCaml, they often wonder why more people are not aware of this style of programming. That usually leads to interesting classroom and after-hours discussions on this topic.

name Functional programming
prior Yes
compulsory Optional
year 3rd undergraduate
howmany 25-50
since 2003
already Not familiar
firstlang Java
secondlang N/A for CS graduate programs
univ University of Jyväskylä
country Finland
url http://www.mit.jyu.fi/antkaij/opetus/fo/2005-2006/
comments

name Functional programming
prior Yes
compulsory Optional
year 3rd undergraduate
howmany 0-10
since 1990
already Not familiar
firstlang Java
secondlang C
univ Yale University
country USA
url http://plucky.cs.yale.edu/cs430
comments

name Functional programming
prior Yes
compulsory Optional
year 3rd undergraduate
howmany 25-50
since 1998
already Not familiar
firstlang Scheme
secondlang Ada
univ University of York
country UK
url Not externally accessible (sorry).
comments My triggers for switching to Haskell in FP teaching were (a) Haskell 98, (b) suitable dialect of it implemented in Hugs (c) 2nd edn. of Bird's book revised to use Haskell.

name Advanced functional programming
prior Yes
compulsory Optional
year 3rd undergraduate
howmany 25-50
since 1997
already Already familiar
firstlang Haskell
secondlang Java
univ Chalmers University of Technology
country Sweden
url
comments

name Functional programming
prior Yes
compulsory Optional
year 3rd undergraduate
howmany 10-25
since 2002
already Not familiar
firstlang Java or other
secondlang C
univ Mälardalen University
country Sweden
url http://www.idt.mdh.se/kurser/cd5100/
comments

name Functional programming
prior Yes
compulsory Optional
year 3rd undergraduate
howmany 10-25
since 2001
already Not familiar
firstlang Java
secondlang Haskell
univ University of Passau
country Germany
url
comments

name Functional programming
prior Yes
compulsory Optional
year 3rd undergraduate
howmany 50-100
since 1999
already Already familiar
firstlang Java
secondlang n/a
univ Lund University
country Sweden
url http://www.cs.lth.se/EDA120/
comments

name Functional and logic programming
prior Yes
compulsory Optional
year 3rd undergraduate
howmany 25-50
since 2005
already Not familiar
firstlang Java
secondlang Don't know
univ University of British Columbia
country Canada
url
comments

name Functional programming
prior Yes
compulsory Compulsory
year 3rd undergraduate
howmany 200+
since 2002
already Not familiar
firstlang Java
secondlang It varies. C/Java
univ Vienna University of Technology
country Austria
url http://tuwis.tuwien.ac.at:8080/_ZopeId/63506186A1A4C3YahFU/tpp/lv/lva_html?num=185161&sem=2005W
comments

Other courses

name Programming Language Fundamentals
prior Yes
compulsory Compulsory
year 3rd undergraduate
howmany 50-100
since 2003
already Not familiar
firstlang Java
secondlang Haskell
univ Oregon State University
country USA
url eecs.oregonstate.edu/~erwig/cs381
comments

name Compilers
prior Yes
compulsory Optional
year 3rd undergraduate
howmany 50-100
since 1999
already Already familiar
firstlang Java
secondlang Haskell
univ Philipps-University Marburg
country Germany
url
comments

name Theory in programming practice
prior Yes
compulsory Compulsory
year 3rd undergraduate
howmany 100-200
since 2002
already Not familiar
firstlang Java
secondlang C++
univ University of Texas at Austin
country USA
url http://www.cs.utexas.edu/users/plaxton/c/337/index.html
comments

name Programming Language Fundamentals
prior Yes
compulsory Optional
year 3rd undergraduate
howmany 25-50
since 2002
already Not familiar
firstlang Java
secondlang C
univ University of Tasmania
country Australia
url http://courses.utas.edu.au/portal/page?_pageid=53,33239&_dad=portal&_schema=PORTAL&P_UNIT_CODE=KXA357
comments The first half of the course uses Reynolds' "Theories of Programming Languages", and covers the basics of syntax and semantics, then the imperative and functional paradigms followed by the ISWIM-like and Algol-like combined paradigms. Haskell is used in the second half to illustrate the concepts. Both assignments are in Haskell. This is the students' only exposure in our degree to a language that isn't java/c/php, although some prolog is taught in the AI course.

name Language, Logic and Computation
prior Yes
compulsory Optional
year 3rd undergraduate
howmany 0-10
since 2004
already Not familiar
firstlang Java
secondlang n/a
univ Willamette University
country USA
url
comments I don't have a home page for the course up at the moment: I am revising it from the last time it was taught (which was also the first, in Spring 2004). I "get" to teach Haskell in one course per year, under two course titles which alternate years. The other course is a basic FP course; the "Language, Logic and Computation" is an updated CS theory course, biased toward PL theory, which adds semantics and logic to the usual "uninterpreted" formal language topics. It is mainly organized along the lines of increasing structural complexity of language (a la traditional CS theory), but focuses more on semantic issues and on illustrating aspects of language and meta-linguistic technology with small example languages. Haskell is used as the primary implemented meta-language (various math & logic notations, e.g., CFGs and semantic equations, are the non-implemented meta-languages).

name CS 11 (Software Shop): Haskell track
prior Yes
compulsory Optional
year 3rd undergraduate
howmany 0-10
since 2003
already Not familiar
firstlang Scheme
secondlang Java
univ California Institute of Technology
country USA
url http://www.cs.caltech.edu/courses/cs11/material/haskell/index.html
comments This course is actually one track of a much broader course (CS 11), which teaches a number of programming languages. Students learn whichever one they want (maximum one per term) and can repeat the course to learn more languages. The enrollment typically includes students from every year (freshmen to seniors, and graduate students). The Haskell track was added due to repeated student requests, and now seems to be well established (though it's still under active development and has many rough edges). The students who take the Haskell track are invariably among the best computer science students I have taught at Caltech, and most of them seem to like the language a lot. Usually there are only about 5 students who take the Haskell track each term. I will be extending the track in the near future to cover various topics that interest me (e.g. parser combinators), and may eventually teach an advanced Haskell track.

name Models of Computation
prior Yes
compulsory Optional
year 3rd undergraduate
howmany 25-50
since 1998
already Already familiar
firstlang Don't know
secondlang Don't know
univ Chalmers University of Technology
country Sweden
url http://www.cs.chalmers.se/Cs/Grundutb/Kurser/naber/
comments

name Declarative Programming
prior Yes
compulsory Optional
year 3rd undergraduate
howmany 10-25
since 1994
already Not familiar
firstlang Java
secondlang C++
univ University of Oviedo
country Spain
url http://www.di.uniovi.es/~labra/PDec/
comments

name Declarative Programming
prior Yes
compulsory Compulsory
year 3rd undergraduate
howmany 25-50
since 2004
already Not familiar
firstlang Pascal
secondlang Java
univ University of Namur
country Belgium
url http://www.info.fundp.ac.be/~wva/cours/2109/
comments

name Declarative Programming
prior Yes
compulsory Compulsory
year 3rd undergraduate
howmany 50-100
since 1990
already Not familiar
firstlang Java
secondlang none
univ no comment
country Belgium
url
comments extremely shallow survey - I started filling it out and was totally disappointed by what you want to know

name Compilers
prior Yes
compulsory Compulsory
year 3rd undergraduate
howmany 100-200
since 2000
already Already familiar
firstlang Haskell
secondlang C
univ Universidade do Minho
country Portugal
url http://www.di.uminho.pt/~jas/Teaching/Courses/mpiii.html
comments

name Advanced Programming
prior Yes
compulsory Optional
year 3rd undergraduate
howmany 10-25
since 2005
already Not familiar
firstlang Java
secondlang C
univ University of Pennsylvania
country USA
url http://www.cis.upenn.edu/~bcpierce/courses/advprog/index.html
comments

name Grammars and parsing
prior Yes
compulsory Optional
year 3rd undergraduate
howmany 50-100
since 1999
already Already familiar
firstlang Java
secondlang Haskell
univ Utrecht University
country the Netherlands
url http://www.cs.uu.nl/docs/vakken/gont
comments

name Compilers
prior Yes
compulsory Optional
year 3rd undergraduate
howmany 10-25
since 2001
already Not familiar
firstlang Scheme
secondlang Java
univ Universität Kiel
country Germany
url
comments

Programming languages courses

name Design and Selection of Programming Languages
prior Yes
compulsory Compulsory
year 3rd undergraduate
howmany 50-100
since 2002
already Not familiar
firstlang C
secondlang Java
univ McMaster University
country Canada
url http://www.cas.mcmaster.ca/~kahl/SE3E03/2005/index.html
comments This is in the engineering-oriented (accredited) Software Engineering programme. One purpose of using Haskell is to demonstrate that not all programming languages are ``roughly the same'' (after C and Java). --- This year, students apparently started to like the Haskell aspect...

name Programming Languages
prior Yes
compulsory Compulsory
year 3rd undergraduate
howmany 200+
since 2004
already Not familiar
firstlang C
secondlang Java
univ Universidad Politécnica de Valencia
country Spain
url http://www.dsic.upv.es/users/elp/maria/LPP.html
comments

name Principles of Programming Languages
prior Yes
compulsory Optional
year 3rd undergraduate
howmany 25-50
since 1998
already Already familiar
firstlang Java
secondlang Haskell
univ University of Nottingham
country UK
url
comments

name Design and Selection of Programming Languages
prior Yes
compulsory Optional
year 3rd undergraduate
howmany 25-50
since 2004
already Not familiar
firstlang one strand does Java, another does Scheme+ML+Java
secondlang see answer to previous
univ Brown University
country USA
url http://www.cs.brown.edu/courses/cs173/
comments

name Programming Languages
prior Yes
compulsory Optional
year 3rd undergraduate
howmany 25-50
since 2004
already Not familiar
firstlang Java
secondlang C
univ university of arizona
country USA
url http://www.cs.arizona.edu/~collberg/Teaching/372/2005/index.html
comments

name Principles of Programming Languages
prior Yes
compulsory Optional
year 3rd undergraduate
howmany 10-25
since 2005
already Not familiar
firstlang Java
secondlang C
univ SUNY Plattsburgh
country USA
url
comments I am considering providing a brief introduction to Haskell (instead of ML) when I teach the coure this spring.

4th undergraduate

Total student numbers: 380-825

With Programming Experience

Total student numbers: 380-825

Functional programming courses

name Functional programming
prior Yes
compulsory Optional
year 4th undergraduate
howmany 0-10
since 2003
already Not familiar
firstlang Java
secondlang C
univ Kettering University
country USA
url
comments

name Functional programming
prior Yes
compulsory Optional
year 4th undergraduate
howmany 0-10
since 1999
already Not familiar
firstlang Java
secondlang C
univ University of Pisa
country Italy
url http://www.di.unipi.it/~bellia/web-funzionali/appunti003.html
comments

name Functional programming
prior Yes
compulsory Optional
year 4th undergraduate
howmany 10-25
since 1995
already Already familiar
firstlang C
secondlang Haskell
univ University of Melbourne
country Australia
url http://www.csse.unimelb.edu.au/431/
comments

name Introduction to functional programming
prior Yes
compulsory Optional
year 4th undergraduate
howmany 100-200
since 1994
already Not familiar
firstlang Pascal
secondlang Modula2
univ Universidad de la Republica
country Uruguay
url http://www.fing.edu.uy/inco/cursos/progfunc/Descripcion.html
comments The fact that our course is given at 4th undergraduate year is not our choice. In my opinion, functional programming is adequate to introduce programming at the first year. Although our course is optional, almost all students take it (for reasons related to the number of points they need).

Other courses

name Programming Language Structure
prior Yes
compulsory Compulsory
year 4th undergraduate
howmany 10-25
since 1995
already Not familiar
firstlang Java
secondlang C
univ University of New Orleans (or what's left of it after Katrina)
country USA
url Not up at the moment :(
comments About a third of the course considers functional programming, using Haskell.

name Hardware Description and Verification
prior Yes
compulsory Optional
year 4th undergraduate
howmany 25-50
since 1999
already Already familiar
firstlang Haskell
secondlang C
univ Chalmers University of Technology
country Sweden
url http://www.cs.chalmers.se/ComputingScience/Education/Courses/svh/
comments The course is actually taken by both CSE students (what we call the D line) and elec. eng. students. So talking about the degree programme did not make a lot of sense. The answers I gave were for the CSE students. The EE students have usually not seen Haskell before starting the course.

name Hardware Description and Verification
prior Yes
compulsory Optional
year 4th undergraduate
howmany 25-50
since 1999
already Not familiar
firstlang Don't know
secondlang Don't know
univ Chalmers University of Technology
country Sweden
url http://www.cs.chalmers.se/ComputingScience/Education/Courses/svh/
comments

name Applicative programming
prior Yes
compulsory Optional
year 4th undergraduate
howmany 25-50
since 2000
already Not familiar
firstlang Java
secondlang n/a
univ Brandenburgische Technische Universität Cottbus
country Germany
url http://www.zv.tu-cottbus.de/moveron/admin/show.php?id=7
comments

name Hardware Description and Verification
prior Yes
compulsory Optional
year 4th undergraduate
howmany 25-50
since 1990
already Already familiar
firstlang Ada
secondlang Haskell
univ University of Glasgow
country UK
url http://www.dcs.gla.ac.uk/~jtod/teaching/2005-06-CompArch4/
comments Although the students are supposed to know Haskell from the second year, many of them have forgotten it and others didn't have our second year course, and have never seen functional programming before. However, knowledge of Haskell isn't necessary, and may even be a drawback: I'm using Haskell as a host for a domain-specific hardware description language, and don't want the students to write arbitrary Haskell code that doesn't correspond to a circuit. A prototype version of the software uses Template Haskell to check that the code is actually valid in the domain-specific language, not just in Haskell.

name Compilers
prior Yes
compulsory Compulsory
year 4th undergraduate
howmany 10-25
since 1995
already Already familiar
firstlang Java
secondlang Haskell
univ Utrecht University
country the Netherlands
url
comments

name Compilers
prior Yes
compulsory Optional
year 4th undergraduate
howmany 25-50
since 1990
already Already familiar
firstlang Haskell or Java
secondlang Java or other
univ Chalmers University of Technology
country Sweden
url http://www.cs.chalmers.se/Cs/Grundutb/Kurser/komp/current/
comments When I took over the course in 2002, it was very Haskell-oriented. To open the course to students without Haskell background, I have developed it to be independent of programming language. I also think it is good to present concepts in abstraction from implementation language. Haskell's strength in compiler construction is algebraic datatypes and pattern matching. The maintenance of state in code genetation is conceptually imperative, but the state monad is good enough to handle this in a galant way. The BNF converter tool has evolved in this course. It helps programmers in different languages by generating the boilerplate code needed for algebraic datatypes and pattern matching. BNFC is written in Haskell.

name Distributed and Parallel Technologies
prior Yes
compulsory Optional
year 4th undergraduate
howmany 25-50
since 2003
already Not familiar
firstlang Visual Basic
secondlang Java
univ Heriot-Watt University
country UK
url http://www.macs.hw.ac.uk/~trinder/ParDistr/
comments Haskell is an excellent computational language for teaching a range of coordination languges: - Concurrency - Parallelism - Distribution - Mobility

name Theoretical CS and Prog Languages (combined course)
prior Yes
compulsory Compulsory
year 4th undergraduate
howmany 0-10
since 2004
already Not familiar
firstlang Java
secondlang n/a
univ Southern Utah University
country USA
url
comments

Programming languages courses

name Design and Selection of Programming Languages
prior Yes
compulsory Compulsory
year 4th undergraduate
howmany 25-50
since 1999
already Not familiar
firstlang C
secondlang Java
univ Universidade Estácio de Sá, Rio de Janeiro
country Brazil
url http://saladeaula.estacio.br/arquivo.asp?dir=00/0018322/45194.html&num_seq=32476
comments We use both Hugs and GHCi as suggested tools in this course. Although we teach Haskell and, more generally, functional programming, the main purpose of the course in to discuss with the students the distict programming paradigms.

name Formal Semantics of Programming Languages
prior Yes
compulsory Optional
year 4th undergraduate
howmany 0-10
since 1998
already Already familiar
firstlang Java
secondlang C
univ Yale University
country USA
url http://plucky.cs.yale.edu/cs429
comments

name Programming Languages and Compiler Design
prior Yes
compulsory Compulsory
year 4th undergraduate
howmany 0-10
since 2004
already Not familiar
firstlang Java
secondlang C++
univ College of Wooster
country USA
url Can't, it's done via a Course Management System (Moodle)
comments I have just started teaching Haskell as part of this course and wish I had started sooner.

name Formal Semantics of Programming Languages
prior Yes
compulsory Compulsory
year 4th undergraduate
howmany 50-100
since 2004
already Not familiar
firstlang Java
secondlang Different programs learn different things: one group learns Scheme first then Java, another learns Java first with a little Scheme mixed into CS2
univ University of Bamberg
country Germany
url http://web.uni-bamberg.de/wiai/gdi/Lehre/index.htm
comments This course is on the semantics of non-procedural programming languages, with functional and logical languages currently being the prime examples. The course is aimed at students of Business Informatics and Applied Computer Science without extensive programming background. We do not teach large-scale functional programming but use Haskell to give students some hands-on functional experience. The main part of the course is on structural operational semantics (SOS) and type systems. We teach Prolog for implementing the SOS semantics of a miniature functional language developed during the course. Our experiences are very good indeed. We believe this is partly because our students are not already hooked too much on Java-like OO programming. The calculator-style read-eval-print interpreter of Hugs we find very helpful in teaching Haskell.

name Principles of Programming Languages
prior Yes
compulsory Compulsory
year 4th undergraduate
howmany 25-50
since 2003
already Not familiar
firstlang Java
secondlang n/a
univ Australian National University
country Australia
url
comments

5th undergraduate

Total student numbers: 60-135

With Programming Experience

Total student numbers: 60-135

Functional programming courses

name Functional programming
prior Yes
compulsory Compulsory
year 5th undergraduate
howmany 50-100
since 2004
already Not familiar
firstlang Pascal
secondlang C++
univ St.Petersburg State University
country Russia
url http://www.geocities.com/msimuni/fp/
comments

name Functional programming
prior Yes
compulsory Optional
year 5th undergraduate
howmany 10-25
since 1997
already Not familiar
firstlang C
secondlang Java
univ Universidad Politécnica de Valencia
country Spain
url http://www.dsic.upv.es/asignaturas/facultad/prg/prf-e.html
comments

name Advanced functional programming
prior Yes
compulsory Optional
year 5th undergraduate
howmany 0-10
since 2003
already Already familiar
firstlang Haskell
secondlang C
univ Universidade do Minho
country Portugal
url http://wiki.di.uminho.pt/wiki/bin/view/Education/AdvancedFunctionalProgramming
comments

Other

Total student numbers: 10-25

With Programming Experience

Total student numbers: 10-25

Other courses

name Compilers
prior Yes
compulsory Optional
year Other
howmany 10-25
since 2004
already Not familiar
firstlang Java
secondlang Don't know
univ Universität Bonn
country Germany
url http://www.informatik.uni-bonn.de/~ralf/CC2005.html
comments I do not assume that students are fluent in Haskell or even know the language. The language Haskell is mostly used as a convenient medium for presenting techniques in compiler construction (rather than using a mathematical, non-executable notation). Using Haskell works mostly well (currying seems to be the highest hurdle).

Postgraduate

Total student numbers: 90-295

Beginning Programming

Total student numbers: 0-10

Other courses

name Haskell course
prior No
compulsory Optional
year Postgraduate
howmany 0-10
since 2005
already Not familiar
firstlang Java
secondlang C
univ Universität Leipzig
country Germany
url
comments We have just started the course :-)

With Programming Experience

Total student numbers: 90-285

Functional programming courses

name Functional programming
prior Yes
compulsory Optional
year Postgraduate
howmany 10-25
since 2000
already Not familiar
firstlang Java
secondlang Haskell
univ University of Oxford
country UK
url http://www.softeng.ox.ac.uk/subjects/FPR.html
comments Ours is a professional degree, so students are already proficient programmers. I teach them Haskell as another way of looking at the structure of programs. The course ran for years using Gofer before Haskell; if you consider those the same language, then it hs been running since 1993 rather than 2000.

name Functional programming
prior Yes
compulsory Optional
year Postgraduate
howmany 0-10
since 2001
already Already familiar
firstlang N/A for CS graduate programs
secondlang N/A for CS graduate programs
univ Oregon State University
country USA
url
comments

name Functional programming
prior Yes
compulsory Optional
year Postgraduate
howmany 0-10
since 2003
already Not familiar
firstlang N/A for CS graduate programs
secondlang N/A for CS graduate programs
univ McMaster University
country Canada
url http://www.cas.mcmaster.ca/~kahl/FP/2006/ (not yet up)
comments

name Advanced functional programming
prior Yes
compulsory Optional
year Postgraduate
howmany 10-25
since 1998
already Already familiar
firstlang Java
secondlang Haskell
univ Utrecht University
country the Netherlands
url http://www.cs.uu.nl/wiki/Master/AdvancedFunctionalProgramming
comments

name Functional programming
prior Yes
compulsory Compulsory
year Postgraduate
howmany 10-25
since 1992
already Not familiar
firstlang N/A for CS graduate programs
secondlang N/A for CS graduate programs
univ Simon Fraser University
country Canada
url
comments

name Functional programming
prior Yes
compulsory Optional
year Postgraduate
howmany 0-10
since 2000
already Not familiar
firstlang Java
secondlang Pascal
univ Universidade Federal de Minas Gerais
country Brazil
url http://www2.dcc.ufmg.br/~camarao/functional-programming.html
comments

name Functional programming
prior Yes
compulsory Compulsory
year Postgraduate
howmany 0-10
since 2000
already Not familiar
firstlang Pascal
secondlang C
univ University of Applied Science Wedel
country Germany
url http://www.fh-wedel.de/~si/vorlesungen/fp/fp.html
comments Haskell is also used as a specification and data modelling language in a course about software design

name Inntroduction to Functional Programming using Haskell
prior Yes
compulsory Compulsory
year Postgraduate
howmany 0-10
since 2005
already Not familiar
firstlang Don't know
secondlang Don't know
univ Technical Universoty Darmstadt (Math. Department)
country Germany
url
comments Our course is attended by Maths students only though most of them have taken some courses in Computer Science. Many of the examples center around "Computational Matroid Theory" on which one of the teachers has written a book (to be published next year). Other programming examples come from Exact Real Number Computation exploiting the lazy lists provided by Haskell. We also give some "theoretical" background abou lambda calculus, very basic domain theory and reasoning principles for recursively defined functions.

name Introduction to functional programming
prior Yes
compulsory Optional
year Postgraduate
howmany 10-25
since 1993
already Not familiar
firstlang Java
secondlang C
univ University of Mississippi
country USA
url http://www.cs.olemiss.edu/~hcc/csci555/
comments I have used Gofer or Hugs since 1993. (Two previous offerings of the course used RUFL--Rhodes University Functional Language.) The purpose of the course is to introduce students to a considerably different approach to programming from the imperative/OO approach they see mostly. It also allows discussion of a sophisticated type system, program proofs, and sometimes program derivation (synthesis) techniques. I have been quite pleased with the result. Even though I am not a FL researcher, I enjoy teaching the course more than most of my other courses and students also seem to like the course, despite its seeming lack of practicality.

Other courses

name Quantum computing
prior Yes
compulsory Optional
year Postgraduate
howmany 10-25
since 2005
already Not familiar
firstlang Scheme
secondlang Java
univ Indiana University
country USA
url
comments

name Domain Specific Languages
prior Yes
compulsory Optional
year Postgraduate
howmany 10-25
since 2004
already Not familiar
firstlang Java
secondlang C++
univ University of Texas at Austin
country USA
url
comments Students learned how to view functional programming as a well-specified core language that can be extended through a variety of syntactic and semantic means to produce a domain specific language. Haskell was used by some of the students as the core of their DSL, other students used Scheme (GNU Guile).

name Programming Language Fundamentals
prior Yes
compulsory Optional
year Postgraduate
howmany 10-25
since 2002
already Already familiar
firstlang C++
secondlang Java
univ University of Kansas
country USA
url http://www.ittc.ku.edu/~alex/teaching/eecs762/
comments

name Language Design
prior Yes
compulsory Optional
year Postgraduate
howmany 10-25
since 2000
already Not familiar
firstlang C++
secondlang Java
univ Cal. State Univ. East Bay
country USA
url
comments

Programming languages courses

name Programming Languages
prior Yes
compulsory Optional
year Postgraduate
howmany 10-25
since 2001
already Not familiar
firstlang N/A for CS graduate programs
secondlang N/A for CS graduate programs
univ Oregon State University
country USA
url eecs.oregonstate.edu/~erwig/cs581
comments URL will be active Jan-Mar 2006

name Programming Languages
prior Yes
compulsory Optional
year Postgraduate
howmany 0-10
since 1996
already Not familiar
firstlang C++
secondlang Java
univ Iowa State University
country USA
url http://www.cs.iastate.edu/~leavens/ComS541.html
comments