Functional Programming

Subject 433-431 (2008)

Note: This is an archived Handbook entry from 2008.Search for this in the current handbook

Credit Points: 12.500
Level: Undergraduate
Dates & Locations:

This subject has the following teaching availabilities in 2008:

Semester 1, - Taught on campus.
Pre-teaching Period Start not applicable
Teaching Period not applicable
Assessment Period End not applicable
Last date to Self-Enrol not applicable
Census Date not applicable
Last date to Withdraw without fail not applicable


Timetable can be viewed here. For information about these dates, click here.
Time Commitment: Contact Hours: Twenty-four hours of lectures, 11 hours of workshops
Total Time Commitment: Not available
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.

Corequisites: None
Recommended Background Knowledge: None
Non Allowed Subjects: None
Core Participation Requirements:

For the purposes of considering request for Reasonable Adjustments under the Disability Standards for Education (Cwth 2005), and Student Support and Engagement Policy, academic requirements for this subject are articulated in the Subject Overview, Learning Outcomes, Assessment and Generic Skills sections of this entry.

It is University policy to take all reasonable steps to minimise the impact of disability upon academic study, and reasonable adjustments will be made to enhance a student's participation in the University's programs. Students who feel their disability may impact on meeting the requirements of this subject are encouraged to discuss this matter with a Faculty Student Adviser and Student Equity and Disability Support: http://services.unimelb.edu.au/disability

Subject Overview:

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%).

Prescribed Texts: None
Recommended Texts:

Information Not Available

Breadth Options:

This subject is not available as a breadth subject.

Fees Information: Subject EFTSL, Level, Discipline & Census Date
Generic Skills:

Information Not Available

Notes:

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

Related Course(s): Bachelor of Computer Science (Honours)
Bachelor of Engineering (Computer Engineering)
Bachelor of Engineering (Electrical Engineering)
Bachelor of Engineering (Software Engineering)

Download PDF version.