1. Handbook
  2. Subjects
  3. Declarative Programming

Declarative Programming (COMP30020)

Undergraduate level 3Points: 12.5On Campus (Parkville)

You’re viewing the 2019 Handbook:
Or view archived Handbooks


Year of offer2019
Subject levelUndergraduate Level 3
Subject codeCOMP30020
Semester 2
FeesSubject EFTSL, Level, Discipline & Census Date


Declarative programming languages provide elegant and powerful programming paradigms and techniques that every programmer should know. This subject presents declarative programming languages and techniques.


  • The dangers of destructive update
  • Functional programming
  • Recursion
  • Strong type systems
  • Parametric polymorphism
  • Algebraic types
  • Type classes
  • Defensive programming practice
  • Higher order programming
  • Currying and partial application
  • Lazy evaluation
  • Monads
  • Logic programming
  • Unification and resolution
  • Nondeterminism, search, and backtracking.

Intended learning outcomes


On completion of this subject the student is expected to:

  1. Apply declarative programming techniques
  2. Write medium size programs in a declarative language
  3. Write programs in which different components use different languages
  4. Select appropriate languages for each component task in a project

Generic skills

On completion of this subject students should have developed the following skills:

  • Ability to undertake problem identification, formulation and solution
  • Ability to utilise a systems approach to design and operational performance
  • Intellectual curiosity and creativity, including understanding of the philosophical and methodological bases of research activity
  • Openess to new ideas and unconventional critiques of received wisdom
  • Capacity for independent critical thought, rational inquiry and self-directed learning.

Last updated: 10 August 2019