The goals of this course are twofold: (1) to take good programmers and turn them into excellent ones, and (2) to introduce them to a range of modern software engineering practices, in particular those embodied in advanced functional programming languages.
NOTE for students interested in CIS 552 in Spring 2014:
The course has now reached its enrollment cap. If you would like to register, please add your name to the waiting list. If you are an undergraduate who tried to register during the pre-registration period but didn't know that you needed permission, please send email to firstname.lastname@example.org.
|Course||CIS 552, Spring 2014|
|Time||MW Noon - 1:30PM|
|Textbook||Real World Haskell|
|Prerequisite||Four courses involving significant programming and a discrete mathematics or modern algebra course.|
|Instructor||Benjamin Pierce (OH: Mon 4:30–6 PM, Levine 562)|
|Teaching assistants||Emilio Gallego (OH: Thu 2–4 PM, Towne 223)|
|Leonidas Lampropoulos (OH: Tue 1-3PM, Levine 5th-floor bump space)|
|Antal Spector-Zabusky (OH: Tue 3–5 PM, GRW 575)|
|Administrative assistant||Britton Carnevali (Levine 308)|
Will the course be largely about functional programming in Haskell? Do you expect to teach much material that would apply to non-functional programming?
Like past semesters, the focus of this course will be functional programming in Haskell. The goal is to bend your mind about what programming is, and Haskell is an excellent tool for the job. Of course you will learn things that will apply to other languages and paradigms, but we'll leave that exploration to you.
Do you expect that the course will involve any large projects, or mostly smallish weekly assignments?
It will be smallish weekly assignments. However, "small" does not necessarily mean "easy," because Haskell programs can do a lot with just a few lines of code!
Will it be important to know much about functional programming before starting the course?
You don't need to know anything about functional programming before starting.
The course is full! Can I still register?
Not at the moment. The class size is capped to enable in-class discussion. You can add your name to the waiting list and you'll be added when space opens up.
Welcome to CIS 552!
See the home page for basic information about the course, the schedule for the lecture notes and assignments, the resources for links to the required software and online references, and the syllabus for detailed information about the course policies.