Note: This is an archived Handbook entry from 2008.Search for this in the current handbook
|Dates & Locations:|| |
This subject has the following teaching availabilities in 2008:Semester 1, - Taught on campus.
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
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.
|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
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.
Project work during semester, expected to take about 36 hours (40%) and a 2-hour end of semester written examination (60%).
|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
Credit may not be gained for both 433-431 Functional Programming and 433-631 Functional Programming.
Bachelor of Computer Science (Honours) |
Bachelor of Engineering (Computer Engineering)
Bachelor of Engineering (Electrical Engineering)
Bachelor of Engineering (Software Engineering)
Download PDF version.