CFR3160

Programming principles and paradigms

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

Back to the Information Technology Handbook, 1998
Handbook Contents | University Handbooks | Monash University


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