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 yetNo reviews yet. Be the first to review FIT2102.
Requisites
Before FIT2102
Prerequisites
Pass these before you enrol.
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 period | Campus | Mode |
|---|---|---|
| Second semester | Clayton | On campus |
| Second semester | Malaysia | On campus |
Assessment
- Assignment 1 Functional Reactive ProgrammingProjectThreshold hurdle30%
- Assignment 2 Haskell ProgrammingProjectThreshold hurdle30%
- Applied quizzesQuiz / TestThreshold hurdle20%
- Applied classworkExerciseThreshold hurdle20%
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
Describe the major attributes that differentiate programming paradigms considered;
- 2
Describe 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 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
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
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.