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 Fall 2019:
If you are an undergraduate (even a submatriculant!), you will not be able to register for CIS 552 during the advance registration period. Instead, you must register through the waiting list. The waitlist system will only open after the advance registration results have been posted. This list will be processed between April 10th and April 19th.
There are spots reserved for students who need to register in this way; the course will not fill up during advance registration.
If you have questions about this registration process, send email to sweirich@cis.upenn.edu.
Logistics | |
Course | CIS 552, Fall 2017 |
Time | MW 12:00 - 1:30 PM |
Location | TBA |
Prerequisite | Four courses involving significant programming and a discrete mathematics or modern algebra course. |
People | |
Instructor | Stephanie Weirich |
Teaching assistants | TBA |
Administrative assistant | Cheryl Hickey (Levine 502) |
FAQ
- 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.
- Will this be an active learning class?
Yes! You will be expected to attend each class and actively participate. You will be asked to read and complete course materials before class as well as complete exercises during class.