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.
|Course:||CSE 552, Fall 2011|
|Textbook:||Real World Haskell|
|Prerequisite:||Four courses involving significant programming and a discrete mathematics or modern algebra course.|
|Office Hours:||Wednesday 1:30-3:00 PM (Levine 510)|
|Office Hours:||Tuesday 3:00-4:30 PM (Levine North 5th floor bump space)|
|Administrative assistant:||Laura Fox (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 the previous version, 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 you'll have to explore those applications on your own.
- Do you expect that the course will involve any large projects, or mostly smallish weekly assignments?
It will be smallish weekly assignments. That is not to say easy, because Haskell programs can do a lot with just a few lines of code. However, we really want to analyze code structure, down to the expression level, and large projects aren't really well suited for that task.
- 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. I expect that most students won't.
- When will the course meet?
The time slot for this course has been changed to MW 12-1:30PM. (The course was originally scheduled for TR 1:30-3PM, but that time slot conflicts with many other courses.)
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.