Introduction to Functional Programming
Fall 1999 (Aug 18 - Dec 6)
Lecture: MWF 10:00 - 10:50, SN 014
SN 355, Tel: 962-1913,
Office hours: Mon 11:00 - 12:00, Thu 3:00 - 4:00 and by appt.
Recitation 15-601:  Mon 2:00 - 2:50, SN 014
Recitation 15-602:  Mon 3:00 - 3:50, SN 014
SN 024, Tel: 962-1918,
Office hours: Wed 3:00 - 5:00
Secretary:  Madelyn Mann
SN 318, Tel: 962-1922, firstname.lastname@example.org
COMP 15 is an introductory computer programming class.
The functional programming language Haskell is used to teach
problem analysis, algorithm design and programming.
The course also provides a rudimentary introduction to
imperative programming concepts using the Java
There are no prerequisites, but students are expected to be thoroughly
comfortable with high school mathematics.
Basic facility with the use of computers for text editing
and information access via the World-wide Web (WWW) is also assumed.
How does COMP 15 compare with other introductory programming courses?
COMP 14 and COMP 15 are completely interchangeable in a student's
program of study.
Students with little or no previous programming experience should follow
one of these courses.
COMP 15 is especially appropriate for students of the sciences, including
those intending to pursue further studies in computer science.
Students with a high-school course in Pascal
or Basic may benefit more from COMP 15 than COMP 14 because COMP 15
utilizes a different programming paradigm.
Students with more extensive background in problem analysis,
algorithm design and programming may be able to
proceed directly to COMP 114, the second programming course.
The course emphasizes mathematical modeling and abstraction
in problem solving.
The elements of the programming language Haskell are developed
early, using the text, lectures, and frequent exercises.
Increasingly large examples are studied as students
develop their programming skills through substantial programming
The last few weeks introduce the use of imperative constructs
in programming and make use of the programming language Java
in a small programming exercise.
- Haskell: The Craft of Functional Programming (2nd ed.)
by Simon Thompson,Addison Wesley 1999, ISBN  0-201-34275-8.
We will cover most of secns 1-15.
- On to Java (2nd ed.) by Patrick Winston and Sundar Narasimhan,
Addison Wesley 1998, ISBN  0-201-38598-8.
We will cover sections 1-13.
Course web page
The central repository for up-to-date course information is the
course web page
located at the URL shown at the top of this handout.
Reading assignments, written assignments, and programming assignments
are on this page, as well as announcements and references.
The course grade is determined approximately as follows
Unless specified differently, exams and programming assignments are to
be individual efforts and are to be pledged as such, in accordance with
the honor code in effect at UNC.
An explanation of this code as it pertains to CS courses is provided
as a separate
You are expected to be familiar with this code and your pledge
on programming assignments and exams certifies your compliance
with this code.
- (40%) two midterm exams and a final exam
- (35%) programming assignments
- (25%) written exercises and class participation
For Haskell, we will use the hugs interpreter to run our
programs. The recommended text editor to prepare Haskell programs is
GNU Emacs. Both of these are available under Windows 95/98/NT.
For Java, we will use Microsoft Visual J++.
The necessary software is installed on over 400 PCs in ATN computer labs
For those who wish to install the software on their
own machine, all of it is available free (for PCs).
The Haskell software can be obtained through the COMP 15 course
This page is maintained by
Send mail if you find problems.