433-431 Functional Programming

Note

Credit may not be gained for both 433-431 Functional Programming and 433-631 Functional Programming.

Credit Points

12.5

Prerequisites

Knowledge of functional programming, and study at the third-year level in at least four of the following areas: artificial intelligence, computer design, database systems, graphics, interactive system design, networks and communications, operating systems, programming languages, software engineering, and theory of computation.

Semester

Not Offered (view timetable)

Contact

Twenty-four hours of lectures, 11 hours of workshops

Subject Description

Functional programming is an appealing programming language paradigm that all programmers should be aware of. Functional programming languages are generally simple and powerful and enjoy clean sematics. To learn a functional language, there are few rules to remember, and even fewer exceptions.

Topics covered include functional programming languages: pattern matching, list comprehension, higher-order functions, strict and lazy evaluation; functional programming techniques: accumulators, higher-order programming, continuations, monads; functional data structures and algorithms; declarative input/output; types: polymorphism, type classes; computational models: evaluation of functional programs, lambda calculus, combinators, and graph reduction; implementation: translation to lambda expression and combinator form, abstract machines, strictness analysis, parallel evaluation.

Assessment

Project work during semester, expected to take about 36 hours (40%) and a 2-hour end of semester written examination (60%).



Status:                   Official 2007
Last Modified:            Tuesday October 31 22:20
SGML to HTML Conversion:  Information Division - CWIS (SDI)
Authorised by:            Academic Registrar
Enquiries:                http://unimelb.custhelp.com/

Valid CSS! Valid XHTML 1.0!