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/