UW, COSC 3015, Fall 2007

Department of Computer Science
University of Wyoming


COSC 3015:
Functional Programming

Fall 2007
SYLLABUS


Professor: CaldwellE-mail: jlc@cs.uwyo.edu
Office: 4074 Engineering BuildingPhone:766-4913
Office hours: Tu-Th (10:50-11:20),(2:35-3:05) Th:(4-5) W (10-12) (and when my door is open -- almost always)
Class: meets Tuesday and Thursday from 9:35 -- 10:50 in EN 3112.
Web Page: http://www.cs.uwyo.edu/~jlc/courses/3015/
Grader: Brandon Skari E-mail: bskari@uwyo.edu
Office:4072 Engineering BuildingPhone:766-4972

Prerequisites: COSC 2030

Textbooks:

  • Required:
    The Haskell School of Expression: Learning Functional Programming through Multimedia  
    by Paul Hudak Cambridge University Press, 2000
    errata sheet
  • Recommended:
    Haskell: The Craft of Functional Programming (2nd Edition)  
    by Simon Thompson Addison Wesley, 1999
    This book is rather elementary -- but is widely used for teaching Haskell based functional programming courses.
    Purely Functional Data Structures
    by Chris Okasaki,Cambridge University Press, 1999
    An excellent reference on efficient data structures and algorithms in a functional setting. Not required by highly recommended.
    Introduction Functional Programming using Haskell
    by Richard Bird, Prentice Hall, 1998
    An alternative to the Thompson title with a more mathematically sophisticated and elegant presentation.
    errata sheet
    Higher-Order Perl: Transforming Programs with Programs
    by Mark Jason Dominus, Morgan Kaufmann, 2005
    This highly praised book applies techniques of function programming in the setting of Perl.

    Abstract: Functional programming languages are distinguished from the "ordinary" imperative programming languages you already know ( e.g. Java, C++) by

    In this course we will cover the techniques of functional programming and will discuss applications of these techniques in other contexts of programming and software design.

    Grading and Other Policies: Grades will be based on written homework, an in-class midterm exam and a final exam. A standard grading scale will be used, where an overall average of 90%-100% earns an A, 80%-89% a B, 70%-79% a C, 60%-69% a D and 0%-59% an F. Work is due at the beginning of class, and late work is accepted for a few days, or until a solution is distributed, at a substantial reduction in credit each day. Returned work should be kept for verification of records.

    Midterm Exam

    25%
    Homework
    45%
    Final Exam
    30%

    100%

    The professor reserves the right to alter the grading scheme or to take extenuating circumstances into account when assigning grades. Discussion of the course material among students is encouraged, although students are expected to write up their own homeworks. Academic dishonesty will be treated in accordance with university standards. Students are urged to read University regulation 802 , section 3 defines academic dishonesty. University regulation 203 describes students rights to appeal and the appeal process.

    Homework:

    No. Due Date Assignment Remarks
    1 Thursday: August 30 Check out the website for the book.
    Read the following articles: To get a leg up, you might try installing the software for use with the book on your own computer.
    2 Tuesday: September 4 Install the software for use with the book on your own computer.
    Do the following assignment hw2.
    Have a nice break.
    3 Tuesday: September 11 hw3.pdf
    4 Thursday: September 13 hw4.pdf
    5 Tuesday: September 18 hw5.pdf
    6 Thursday: September 20 Do Exercise 2.5 on page 33 of the text.
    7 Tuesday: September 25 hw7.pdf
    8 Tuesday: October 2 Do exercise 3.2 on pg. 47 of the text
    9 Thursday: October 4 Do probblems 5.2, 5.5, 5.6 on page 72 nd 73 of the text.
    10 Tuesday: October 9 hw10.pdf  
    11 Thursday: October 11 hw11.pdf  
    12 Tuesday: October 16 hw12.pdf Midterm will be on Thursday -- review in class on Tuesday.
    13 Thursday: October 25 hw13.pdf  
    14 Tuesday: October 30 hw14.pdf
    15 Thursday: November 1 Do exercise 10.1 from the book. Here is a link to the source code from the book. SOE Source
    16 Tuesday: November 13 hw16.pdf a small test
    Set.hs and Lists.hs
    17 Tuesday: November 7 Election Day Read chapter 13 of the text and do problem 13.2 on page 183, parts 1,2, and 3.
    18 Thursday: November 29 hw18.pdf
    19 Tuesday: December 4 hw19.pdf The exercise is at the end of discussion.

    Exams: