Not offered in 1998
J Han and P McKenzie
6 points
* 4 hours per week
* Second semester
* Peninsula
* Prerequisites: CFR2128 or equivalent
* Prohibitions:
CSC3030, SFT2207
Objectives At the completion of this subject students should understand programming principles and be able to relate them to various application contexts; be familiar with the major programming paradigms and their representative languages; understand how programming principles are supported by these paradigms; and be able to select and deploy appropriate programming paradigms and languages in given application contexts when necessary, and have the ability to easily adjust to new programming paradigms.
Synopsis This subject presents a systematic account of programming principles and examines alternative programming paradigms. Topics include: review of imperative and object-oriented programming paradigms; study of the functional programming paradigm - functions, lists, polymorphism, higher-order functions, currying, lazy evaluation, equations, pattern matching; study of the logic programming paradigm - Horn clauses and their execution, logical variables, relations, data structures, search control; introduction of other programming paradigms and concepts, including parallel and distributed programming, co-routines, communication and synchronisation, and constraint programming. This subject emphasises how programming concepts and principles are supported in the different paradigms.
Assessment Examination (3 hours): 50%
* Practical
work: 50%
Prescribed texts
Bal H E and Grune D Programming language essentials Addison-Wesley, 1994
Recommended texts
Watt D A Programming language concepts and paradigms
Prentice-Hall, 1990
Wilson L B and Clark R G Comparative programming languages
Addison-Wesley, 1993
Published by Monash University, Australia
Maintained by wwwdev@monash.edu.au
Approved by M Rambert, Faculty of Information Technology
Copyright © Monash University 1997 - All Rights Reserved -
Caution