Faculty of Information Technology

print version

This unit entry is for students who completed this unit in 2016 only. For students planning to study the unit, please refer to the unit indexes in the the current edition of the Handbook. If you have any queries contact the managing faculty for your course or area of study.

Monash University

6 points, SCA Band 2, 0.125 EFTSL

Undergraduate - Unit

Refer to the specific census and withdrawal dates for the semester(s) in which this unit is offered.


Information Technology


Not offered in 2016


Familiarity with a variety of differently constructed programming languages, like learning to speak in a variety of natural languages, is a useful skill. Even if it is possible to state something or express ideas in one language, perhaps in two screens-full of code in the language with which we are most fluent, a language based on a different paradigm (style), may be simpler or more powerful for some tasks. It may enable the same thing to be expressed in only two lines of code. What is more important, understanding different computer languages enables us to tackle problems in dramatically different ways. A different choice of paradigm may lead to entirely new, more efficient, ways of solving a problem.

This subject examines a selection of programming languages and paradigms such as functional programming, logic programming and string processing, comparing them to paradigms students are probably already familiar with, for instance object-oriented, imperative and procedural programming paradigms. Topics include specification techniques (control mechanisms, data-modelling techniques including types and polymorphism) and touch on implementation-related issues (run-time environments, parameter passing methods), and the role of recursion versus iteration. The unit provides practical experience with a variety of non-procedural, non-object-oriented programming languages.


At the completion of this unit, students should be able to:

  1. identify the major attributes used to describe programming languages;
  2. identify the major features, strengths and weaknesses of important programming languages in the context of their historical development;
  3. analyse and critique past, present and future programming languages;
  4. evaluate the suitability of different paradigms for different problem types;
  5. design and implement simple programs in several programming languages of different paradigms and demonstrate an ability to solve more complex problems in at least one non-procedural paradigm.


Examination (2 hours): 60%; In-semester assessment: 40%

Workload requirements

Minimum total expected workload equals 12 hours per week comprising:

(a.) Contact hours for on-campus students:

  • Two hours lectures
  • Two hours laboratories

(b.) Additional requirements (all students):

  • A minimum of 2-3 hours of personal study per one hour of lecture time in order to satisfy the reading, tute, prac and assignment expectations.

See also Unit timetable information

This unit applies to the following area(s) of study