UnitLevel 2Undergraduate

FIT2102 Programming paradigms

Faculty of Information Technology

FIT2102 Programming paradigms is a level 2, 6-credit-point, undergraduate unit from the Faculty of Information Technology, offered in 2026 in Semester 2 at Clayton and Malaysia. It needs FIT1008, FIT1054 or FIT2085.

Credit points
6
Offered in 2026
Semester 2
Clayton, Malaysia
Assessment
No exam
4 tasks
Workload
144 hours
per semester

This is the 2026 handbook entry. See the 2027 entry.

Reviews

No reviews yet

No reviews yet. Be the first to review FIT2102.

Requisites

After FIT2102

No unit lists FIT2102 as a prerequisite in the 2026 handbook.

Overview

Ability to code in differently constructed programming languages is analogous to speaking in different natural languages with varying grammars. Similar to natural languages, programming languages from different paradigms (styles) vary in their expressiveness and efficiency. One programming language may require many screens-full of complex code to accomplish a task for which another requires but a few expressive lines of code. Therefore, understanding the design principles of programming languages enables computational problems to be implemented in dramatically different and powerful ways; leading, in some cases, to solutions that are more elegant, correct, maintainable, efficient and/or extensible.

This unit examines a selection of programming languages and paradigms and explores the evolution of language design from low-level paradigms that are closer to the execution model of the machine, to more high-level declarative paradigms that allow programmers to model a problem precisely rather than specify its solution. The unit covers paradigms such as functional and declarative programming styles, comparing and contrasting them to programming styles that you are already familiar with, including object-oriented, imperative and procedural programming paradigms. We compare type systems supported by various languages, from scripting languages like JavaScript with weak type systems, to gradual typing as in TypeScript, to advanced compiled languages with strong type correctness, such as Haskell. We see these applied to data-modeling techniques (covering polymorphism, mutability-versus-purity, state management, and side-effects) and different models of execution such as strict-versus-lazy evaluation. Strong, expressive type systems are increasingly important in the age of artificial intelligence and "vibe coding", where type checking provides an essential verification of code correctness to support safe integration of AI-generated code.

The unit provides practical experience with using modern functional programming techniques, non-procedural, non-object-oriented programming languages and discusses the influence of programming language theory on the design of current main-stream computer languages, and how the theory translates to practice. A focus of the unit is that these techniques are applicable and ubiquitous in a variety of modern languages, for example, we will see how functional programming techniques are used in relatively conventional imperative languages like JavaScript, and compare and contrast this with pure functional languages, such as Haskell.

Offerings in 2026

Teaching periodCampusMode
Second semesterClaytonOn campus
Second semesterMalaysiaOn campus

Assessment

  • Assignment 1 Functional Reactive ProgrammingProjectThreshold hurdle
    30%
  • Assignment 2 Haskell ProgrammingProjectThreshold hurdle
    30%
  • Applied quizzesQuiz / TestThreshold hurdle
    20%
  • Applied classworkExerciseThreshold hurdle
    20%

Assessment details may change. Please refer to the assessment information in Moodle closer to the start of the teaching period.

Learning outcomes

When you finish this unit, you should be able to:

  1. 1

    Describe the major attributes that differentiate programming paradigms considered;

  2. 2

    Describe the major features, strengths and weaknesses of important programming languages in the context of their historical development;

  3. 3

    Analyse and critique past, present and future programming languages;

  4. 4

    Evaluate the suitability of different paradigms for different problem types;

  5. 5

    Design and implement programs in several programming languages of different paradigms and demonstrate an ability to solve more complex problems in at least one non-procedural paradigm;

  6. 6

    Describe the theoretical aspects of modern programming paradigms and apply this theory to analysis and design of programs.

Workload and teaching

  • Applied sessions24 hours
  • Workshops24 hours
  • Teaching approachActive learning

Minimum total expected workload to achieve the learning outcomes for this unit is 144 hours per semester typically comprising a mixture of scheduled online and face to face learning activities and independent study. Independent study may include associated reading and preparation for scheduled teaching activities.

Where it fits

FIT2102 is part of 2 areas of study in the 2026 handbook.

Contacts

Chief Examiners
Dr Tim Dwyer
Unit Coordinators
Tan Choon Ling

Common questions

What are the prerequisites for FIT2102?

You need FIT1008, FIT1054 or FIT2085 before you enrol.

When is FIT2102 offered?

In 2026, FIT2102 runs in Semester 2 at Clayton and Malaysia.

How much work is FIT2102?

The handbook expects about 144 hours of study across the semester. No students have rated its difficulty yet.

Does FIT2102 have an exam?

No. FIT2102 has 4 assessment tasks and no exam.

Which majors and minors include FIT2102?

FIT2102 is part of Algorithms and software; and Computational science.

More details

Credit points
6
Level
2
Study level
Undergraduate
Faculty
Faculty of Information Technology
Type
Coursework
EFTSL
0.125
Student contribution
SCA Band 2
Study abroad
Available