CS250 Symbolic Computation (Fall 2004)

Course Prerequisites: CS142 Introduction to Computer Science II


Course Contact Information

Instructor: Chris Lynch
Lectures: MWF 11am SC 344
Office hours: MW 2-4pm F 3-4 SC 377
Contact: SC 377, clynch@clarkson.edu
Text: Simon Thompson, Haskell: The Craft of Functional PRogramming, Addison Wesley (1999).

Topical Outline

This course is a study of functional programming. In previous introductory courses, a particular type of programming paradigm called the imperative or procedural programming was studied. These two paradigms differ in the way computation is viewed. The imperative paradigm treats computation as operations performed on state variables; the functional paradigm treats computation as functions operating on values. Some benefits of the functional approach, among others, are the clean and direct approach to program design without introducing unnecessary side-effects. Typical well-written functional programs are easier to understand, simpler to debug, and have a simple proof of correctness. Most functional programming languages are interpreted (instead of compiled) and strongly supports symbolic computation (as opposed to numerical). Recursion and higher-order functions will play an important role in exploring symbolic computation through functional programming. Other topics include type inference and lazy evaluation. This course uses the programming language Haskell as the main example of a functional programming language.

Objectives and Outcomes

The objective of this course is to introduce students to the functional paradigm of progrmaming with some emphasis on symbolic computation, its implications and applications, and the beautiful types of abstractions that they provide.

The specific outcomes of this course include:


Requirements and Policies

Although attendance is not mandatory, students are responsible for all course materials covered in lectures given during class periods. Students that need to make up missing course work must provide the required Clarkson official exempt form. All students must submit their own work; the exchange of ideas are encouraged but ultimately the submitted work must be the student's own. If a student exchanges ideas with another student or gets ideas from another source, then that source must be mentioned on the homework paper. If that is not done, then it is consdidered cheating. Of course it is also considered cheating to copy something even if the source is referenced. Please refer to the Clarkson University Regulations for more guidelines on academic integrity and related matters.

Grading scheme


Schedule of Topics


Software

The HUGS Haskell Interpreter must be installed on your PC.