CMPS 410-WWW Special Topics -- Functional Programming

Fall 2012

Instructor name: Dr. Cong-Cong Xing, Associate Professor

Office location: Peltier 108-D

Phone number: 985.448.4406 Email:

Website:

Office hours: M: 10:45 – 12:45; T: 11:00 – 1:00 (online); W: 10:45 – 12:45; F: 10:45 – 12:45, 2:00 – 4:00

Catalog Description: Selected current topics in computer science.

Prerequisites: Permission of department head.

Required Text and Other Materials:

  • Elements of ML Programming, by Jeffrey Ullman. Prentice Hall, 1998. (Here is the Amazon link for this text:
  • Standard ML of New Jersey (SML/NJ) (free downloading, compiler installed on your computer.

Student Outcome Objectives: Upon completion of this course, students are expected to be able to: (1) have a basic grasp on the idea of functional programming (FP); (2) practice FP using SML; (3) recognize the fundamental difference between FP and imperative programming; (4) understand basics of Lambda calculus; (5) design algorithms in FP style; (6) solve problems by functional-programming in SML.

Course Contents (tentative):

  • What is functional programming?
  • Basics of FP
  • Comparison of FP with imperative (traditional) programming
  • Getting Started in ML
  • Expressions
  • Type Consistency
  • Variables and Environments
  • Tuples and Lists
  • Defining Functions
  • Basic Definitions
  • Recursive Functions
  • Patterns
  • Let structure
  • Input and Output
  • Simple output
  • Input from a file
  • Output to files
  • Introduction to Lambda Calculus
  • Abstraction
  • Application
  • Lambda calculus and FP
  • More Functions
  • Matches and patterns
  • Exceptions
  • Polymorphic Functions
  • Higher-order Functions
  • Curried Functions*
  • Types
  • Defining New Types
  • Datatypes
  • More About ML Data Structures
  • Record Structures
  • Arrays
  • References*
  • Encapsulation and the ML Module System
  • Modules
  • Structures
  • Functors*

Method of Instruction: Online lecture notes, homework/assignments, online discussion, reading, tests, and exams.

Course Requirements: Towards a successful completion of this course, students are required to accomplish the following: all homework and programming assignments, 2 or 3 tests, and 1 final (comprehensive) exam.

Methods of Evaluation: The followingwill be used to compute your overall average and letter grades:

  • 90—100 A
  • 80—89 B
  • 70—79 C with the distribution
  • 50—69 D
  • 0—49 F

30% -- Homework / Assignment

40% -- Tests

30% -- Final Exam (comprehensive)

Make-up Procedure: Make-up tests are allowed only in cases, and only with a legitimate excuse. Please contact your instructor in a timely manner.

Academic Honesty Policy: As specified in the students conduct code handbook. (

Section Five of the Code of Student Conduct, ‘Academic Dishonesty and Disruptive Behavior,’ includes a requirement that faculty file a charge complaint statement with their respective dean whenever a student is confronted or disciplined for cheating. The Office of Academic Affairs will maintain these records, and any student confronted and/or disciplined for multiple offenses of academic dishonesty will be brought before the Academic Affairs Integrity Committee for further review and potential sanctions. Please read the Code of Student Conduct for further details regarding this policy.")

Attendance Policy: Attendance is extremely important for a successful completion of this course.

DROP DATE: The last day to drop the course with a “W” is: Nov. 7, 2012.

Americans With Disabilities Act (ADA):

Students with a documented disability are entitled to classroom accommodations under the ADA. To receiveaccommodations, contact the Office of Disability Services at (985) 448-4430 or 158-A Shaver Gym. Additional information can be found at

Academic Grievances:

The proper procedure for filing grade appeals or grievances related to academic matters is listed in Section 5 of the Code of Student Conduct and at the following link:

Continued Learning following an Extreme Emergency:

In order to make continued learning possible following an extreme emergency,

Students are responsible for:

  • reading regular emergency notifications on the NSU website;
  • knowing how to use and access Blackboard (or university designated electronic delivery system);
  • being familiar with emergency guidelines;
  • evacuating textbooks and other course materials;
  • knowing their Blackboard (or designated system) student login and password;
  • contacting faculty regarding their intentions for completing the course.

Faculty is responsible for:

  • their development in the use of the Blackboard (or designated) software;
  • having a plan for continuing their courses using only Blackboard and email;
  • continuing their course in whatever way suits the completion of the course best, and being creative in the continuation of these courses;
  • making adjustments or compensations to a student’s progress in special programs with labs, clinical sequences or the like only in the immediate semester following the emergency.

Final Note:

  • The instructor remains the right to make any changes to this syllabus.