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 2024 in Semester 2 at Clayton and Malaysia. It needs FIT1008 or FIT1054.
- Credit points
- 6
- Offered in 2024
- Semester 2
- Clayton, Malaysia
- Assessment
- No exam
- 4 tasks
- Workload
- 144 hours
- per semester
This is the 2024 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 2024 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 students 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.
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 2024
| Teaching period | Campus | Mode |
|---|---|---|
| Second semester | Clayton | On campus |
| Second semester | Malaysia | On campus |
Assessment
- Assignment 1 Functional Reactive ProgrammingAssignmentThreshold hurdle30%
- Assignment 2 Haskell ProgrammingAssignmentThreshold hurdle30%
- Applied quizzesOtherThreshold hurdle20%
- Applied ClassworkOtherThreshold hurdle20%
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 3 areas of study in the 2024 handbook.
Contacts
- Chief Examiners
- Dr Tim Dwyer
- Unit Coordinators
- Mr Soo Wooi King
Common questions
When is FIT2102 offered?
In 2024, 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 Advanced computer science and Computational science.