CAB402 Programming Paradigms
To view more information for this unit, select Unit Outline from the list below. Please note the teaching period for which the Unit Outline is relevant.
Unit code: | CAB402 |
---|---|
Prerequisite(s): | IFN584 or ((CAB201 or ITD121) and (CAB203 or CAB220 or DSB100 or MZB127)) or (IFN563 and IFN564) or (IFQ563 and IFQ564) |
Credit points: | 12 |
Timetable | Details in HiQ, if available |
Availabilities |
|
CSP student contribution | $1,164 |
Domestic tuition unit fee | $4,356 |
International unit fee | $5,172 |
Unit Outline: Semester 1 2025, Gardens Point, Internal
Unit code: | CAB402 |
---|---|
Credit points: | 12 |
Pre-requisite: | IFN584 or ((CAB201 or ITD121) and (CAB203 or CAB220 or DSB100 or MZB127)) or (IFN563 and IFN564) or (IFQ563 and IFQ564) |
Coordinator: | Wayne Kelly | w.kelly@qut.edu.au |
Overview
This advanced unit exposes you to special-purpose programming languages that operate under different paradigms than the conventional "imperative" languages you have used in the course so far. This unit will expose you to new ways of thinking about and expressing software solutions, exploring advanced programming language constructs, principles for the sound design of new languages and how they evolve. The unit provides both a deep theoretical foundation for programming languages by abstracting them to basic mathematical forms as well as showcasing practical application of those advanced principles for software development in the real world.
Learning Outcomes
On successful completion of this unit you will be able to:
- Compare and support ways of thinking about and expressing software solutions
- Critically evaluate the efficiency and effectiveness of different styles of programming languages for different purposes.
- Evaluate new programming languages and programming concepts through self-directed learning.
- Examine how programming languages are designed and implemented.
Content
Topics covered in this unit may include the following:
- Different programming paradigms, contrasting imperative with functional and other declarative styles (e.g., logic-based or list-based languages).
- Functional programming in F#.
- Other characterizations of programming languages such a dynamic, strongly typed, scripting, lazy, etc.
- Program translation techniques including compilation, interpretation and JIT.
- Compiler technologies (grammars, parsing, semantic analysis, optimization, code generation).
- Formal underpinnings such as Lambda calculus, Turing Machines and Von Neumann architecture.
- Advanced programming constructs such as closures, continuations and monads.
Learning Approaches
This unit is available for you to study in either on-campus or online mode. This unit includes a significant proportion of inquiry-driven theory but also emphasises active, artefact-driven learning through practical exercises. The learning material is delivered each week via a series of short 5-10 minute duration pre-recorded videos, interspersed with active learning in the form of formative quizzes. A live lecture/Q&A session will also be conducted each week where you can ask questions and discuss the material presented in the videos. Each week you can choose to attend either an on-campus or online lecture/Q&A session. After understanding the theory presented each week, you can then develop your hands on practical programming skills via detailed practical exercises. You can also attend either an online or on-campus practical class to get help with these practical exercises from your tutor.
The first assignment will then build upon this learning and allow you to tackle a larger scale real world problem. This large scale programming assignment is not just an assessment tasks, but also the biggest "learning activity" within the unit. We will provide active one on one support sessions to help you work through this substantial and challenging task. Additional out of class drop-in support sessions will be offered in the period leading up to the due date in week 7.
The second assignment will give you an opportunity to explore a topic that you find particularly interesting in great depth. It builds self directed learning skills as well as depth of knowledge in a particular field.
You can expect to spend between 10 - 15 hours per week involved in preparing for and attending all scheduled workshops, completing assessment tasks, and undertaking your own independent study to consolidate your learning.
Feedback on Learning and Assessment
The practical workshop sessions will build the skills that you need to complete the assignment. Tutors will be available to give you individual assistance in completing these exercises as well as helping you with any assignment issues. Detailed criteria sheets will be released along with the assignment specifications and detailed comments will be included with the marked assessment items when they are returned.
Assessment
Overview
In the first programming assignment you will design programs and solve problems using different programming paradigms. You will also critically reflect on the efficiency and effectiveness of these different approaches. In the process you will develop new and more advanced abstractions for modelling and managing the complexity of real world systems. The second assignment will allow you to acquire depth of knowledge in a particular field as well as developing your research and self organization skills. You will need to negotiate your project deliverables and effectively communicate your findings.
Unit Grading Scheme
7- point scale
Assessment Tasks
Assessment: Project (applied)
Comparative Programming Exercise - you will implement a software solution using two quite different programming paradigms (Functional and Imperative) and reflect on the relative efficiency and effectiveness of each approach.
This assignment is eligible for the 48-hour late submission period and assignment extensions.
Assessment: Report on a topic related to Programming Paradigms
Students will select a topic of their choosing (from a list), research it, write some software to demonstrate or explore the topic in practice and write a report summarizing their findings and experience.
This assignment is eligible for the 48-hour late submission period and assignment extensions.
Assessment: Online open-book examination
Timed online exam (open book) with theory and practical components covering all topics covered in the semester
Academic Integrity
Academic integrity is a commitment to undertaking academic work and assessment in a manner that is ethical, fair, honest, respectful and accountable.
The Academic Integrity Policy sets out the range of conduct that can be a failure to maintain the standards of academic integrity. This includes, cheating in exams, plagiarism, self-plagiarism, collusion and contract cheating. It also includes providing fraudulent or altered documentation in support of an academic concession application, for example an assignment extension or a deferred exam.
You are encouraged to make use of QUT’s learning support services, resources and tools to assure the academic integrity of your assessment. This includes the use of text matching software that may be available to assist with self-assessing your academic integrity as part of the assessment submission process.
Breaching QUT’s Academic Integrity Policy or engaging in conduct that may defeat or compromise the purpose of assessment can lead to a finding of student misconduct (Code of Conduct – Student) and result in the imposition of penalties under the Management of Student Misconduct Policy, ranging from a grade reduction to exclusion from QUT.
Resources
Risk Assessment Statement
There are no out of the ordinary risks associated with this unit. You will be made aware of evacuation procedures and assembly areas in the first few lectures. In the event of a fire alarm sounding, or on a lecturer's instruction, you should leave the room and assemble in the designated area which will be indicated to you. You should be conscious of your health and safety at all times whilst on campus or in the field.
Standards/Competencies
This unit is designed to support your development of the following standards\competencies.
Australian Computer Society Core Body of Knowledge
1: ICT Professional Knowledge
3: Technology Resources
- Hardware and software fundamentals
Relates to: ULO4
4: Technology Building
Engineers Australia Stage 1 Competency Standard for Professional Engineer
1: Knowledge and Skill Base
Relates to: Project (applied), Report on a topic related to Programming Paradigms, Online open-book examination
Relates to: Project (applied), Report on a topic related to Programming Paradigms, Online open-book examination
Relates to: Project (applied), Report on a topic related to Programming Paradigms, Online open-book examination
2: Engineering Application Ability
Relates to: Project (applied), Report on a topic related to Programming Paradigms
Relates to: Project (applied), Report on a topic related to Programming Paradigms, Online open-book examination
Relates to: Project (applied)
3: Professional and Personal Attributes
Course Learning Outcomes
This unit is designed to support your development of the following course/study area learning outcomes.EN01 Bachelor of Engineering (Honours)
- Engage stakeholders professionally and communicate the outcomes of your work effectively to expert and non-expert audiences using appropriate modes.
Relates to: Report on a topic related to Programming Paradigms - Manage projects to solve complex engineering problems, using appropriate information, engineering methods, and technologies.
Relates to: Project (applied), Online open-book examination - Deploy appropriate approaches to engineering design and quality.
Relates to: Project (applied) - Engage with and apply regulatory requirements relating to safety, risk management, and sustainability in professional engineering practice.
Relates to: Report on a topic related to Programming Paradigms - Demonstrate coherent knowledge and skills of physical, mathematical, statistical, computer, and information sciences that are fundamental to professional engineering practice.
Relates to: Project (applied), Online open-book examination - Demonstrate a thorough understanding of one engineering discipline, its research directions, and its application in contemporary professional engineering practice.
Relates to: Report on a topic related to Programming Paradigms, Online open-book examination
IN01 Bachelor of Information Technology
- Demonstrate well-developed IT discipline knowledge
Relates to: ULO4 - Critically apply design and problem solving skills
Relates to: ULO1 - Work independently and within effective teams
Relates to: ULO3 - Purposefully appraise personal values, attitudes and performance in your continuing professional development
Relates to: ULO2
Unit Outline: Semester 1 2025, Online
Unit code: | CAB402 |
---|---|
Credit points: | 12 |
Pre-requisite: | IFN584 or ((CAB201 or ITD121) and (CAB203 or CAB220 or DSB100 or MZB127)) or (IFN563 and IFN564) or (IFQ563 and IFQ564) |
Overview
This advanced unit exposes you to special-purpose programming languages that operate under different paradigms than the conventional "imperative" languages you have used in the course so far. This unit will expose you to new ways of thinking about and expressing software solutions, exploring advanced programming language constructs, principles for the sound design of new languages and how they evolve. The unit provides both a deep theoretical foundation for programming languages by abstracting them to basic mathematical forms as well as showcasing practical application of those advanced principles for software development in the real world.
Learning Outcomes
On successful completion of this unit you will be able to:
- Compare and support ways of thinking about and expressing software solutions
- Critically evaluate the efficiency and effectiveness of different styles of programming languages for different purposes.
- Evaluate new programming languages and programming concepts through self-directed learning.
- Examine how programming languages are designed and implemented.
Content
Topics covered in this unit may include the following:
- Different programming paradigms, contrasting imperative with functional and other declarative styles (e.g., logic-based or list-based languages).
- Functional programming in F#.
- Other characterizations of programming languages such a dynamic, strongly typed, scripting, lazy, etc.
- Program translation techniques including compilation, interpretation and JIT.
- Compiler technologies (grammars, parsing, semantic analysis, optimization, code generation).
- Formal underpinnings such as Lambda calculus, Turing Machines and Von Neumann architecture.
- Advanced programming constructs such as closures, continuations and monads.
Learning Approaches
This unit is available for you to study in either on-campus or online mode. This unit includes a significant proportion of inquiry-driven theory but also emphasises active, artefact-driven learning through practical exercises. The learning material is delivered each week via a series of short 5-10 minute duration pre-recorded videos, interspersed with active learning in the form of formative quizzes. A live lecture/Q&A session will also be conducted each week where you can ask questions and discuss the material presented in the videos. Each week you can choose to attend either an on-campus or online lecture/Q&A session. After understanding the theory presented each week, you can then develop your hands on practical programming skills via detailed practical exercises. You can also attend either an online or on-campus practical class to get help with these practical exercises from your tutor.
The first assignment will then build upon this learning and allow you to tackle a larger scale real world problem. This large scale programming assignment is not just an assessment tasks, but also the biggest "learning activity" within the unit. We will provide active one on one support sessions to help you work through this substantial and challenging task. Additional out of class drop-in support sessions will be offered in the period leading up to the due date in week 7.
The second assignment will give you an opportunity to explore a topic that you find particularly interesting in great depth. It builds self directed learning skills as well as depth of knowledge in a particular field.
You can expect to spend between 10 - 15 hours per week involved in preparing for and attending all scheduled workshops, completing assessment tasks, and undertaking your own independent study to consolidate your learning.
Feedback on Learning and Assessment
The practical workshop sessions will build the skills that you need to complete the assignment. Tutors will be available to give you individual assistance in completing these exercises as well as helping you with any assignment issues. Detailed criteria sheets will be released along with the assignment specifications and detailed comments will be included with the marked assessment items when they are returned.
Assessment
Overview
In the first programming assignment you will design programs and solve problems using different programming paradigms. You will also critically reflect on the efficiency and effectiveness of these different approaches. In the process you will develop new and more advanced abstractions for modelling and managing the complexity of real world systems. The second assignment will allow you to acquire depth of knowledge in a particular field as well as developing your research and self organization skills. You will need to negotiate your project deliverables and effectively communicate your findings.
Unit Grading Scheme
7- point scale
Assessment Tasks
Assessment: Project (applied)
Comparative Programming Exercise - you will implement a software solution using two quite different programming paradigms (Functional and Imperative) and reflect on the relative efficiency and effectiveness of each approach.
This assignment is eligible for the 48-hour late submission period and assignment extensions.
Assessment: Report on a topic related to Programming Paradigms
Students will select a topic of their choosing (from a list), research it, write some software to demonstrate or explore the topic in practice and write a report summarizing their findings and experience.
This assignment is eligible for the 48-hour late submission period and assignment extensions.
Assessment: Online open-book examination
Timed online exam (open book) with theory and practical components covering all topics covered in the semester
Academic Integrity
Academic integrity is a commitment to undertaking academic work and assessment in a manner that is ethical, fair, honest, respectful and accountable.
The Academic Integrity Policy sets out the range of conduct that can be a failure to maintain the standards of academic integrity. This includes, cheating in exams, plagiarism, self-plagiarism, collusion and contract cheating. It also includes providing fraudulent or altered documentation in support of an academic concession application, for example an assignment extension or a deferred exam.
You are encouraged to make use of QUT’s learning support services, resources and tools to assure the academic integrity of your assessment. This includes the use of text matching software that may be available to assist with self-assessing your academic integrity as part of the assessment submission process.
Breaching QUT’s Academic Integrity Policy or engaging in conduct that may defeat or compromise the purpose of assessment can lead to a finding of student misconduct (Code of Conduct – Student) and result in the imposition of penalties under the Management of Student Misconduct Policy, ranging from a grade reduction to exclusion from QUT.
Resources
Risk Assessment Statement
There are no out of the ordinary risks associated with this unit. You will be made aware of evacuation procedures and assembly areas in the first few lectures. In the event of a fire alarm sounding, or on a lecturer's instruction, you should leave the room and assemble in the designated area which will be indicated to you. You should be conscious of your health and safety at all times whilst on campus or in the field.
Standards/Competencies
This unit is designed to support your development of the following standards\competencies.
Australian Computer Society Core Body of Knowledge
1: ICT Professional Knowledge
3: Technology Resources
- Hardware and software fundamentals
Relates to: ULO4
4: Technology Building
Engineers Australia Stage 1 Competency Standard for Professional Engineer
1: Knowledge and Skill Base
Relates to: Project (applied), Report on a topic related to Programming Paradigms, Online open-book examination
Relates to: Project (applied), Report on a topic related to Programming Paradigms, Online open-book examination
Relates to: Project (applied), Report on a topic related to Programming Paradigms, Online open-book examination
2: Engineering Application Ability
Relates to: Project (applied), Report on a topic related to Programming Paradigms
Relates to: Project (applied), Report on a topic related to Programming Paradigms, Online open-book examination
Relates to: Project (applied)
3: Professional and Personal Attributes
Course Learning Outcomes
This unit is designed to support your development of the following course/study area learning outcomes.EN01 Bachelor of Engineering (Honours)
- Engage stakeholders professionally and communicate the outcomes of your work effectively to expert and non-expert audiences using appropriate modes.
Relates to: Report on a topic related to Programming Paradigms - Manage projects to solve complex engineering problems, using appropriate information, engineering methods, and technologies.
Relates to: Project (applied), Online open-book examination - Deploy appropriate approaches to engineering design and quality.
Relates to: Project (applied) - Engage with and apply regulatory requirements relating to safety, risk management, and sustainability in professional engineering practice.
Relates to: Report on a topic related to Programming Paradigms - Demonstrate coherent knowledge and skills of physical, mathematical, statistical, computer, and information sciences that are fundamental to professional engineering practice.
Relates to: Project (applied), Online open-book examination - Demonstrate a thorough understanding of one engineering discipline, its research directions, and its application in contemporary professional engineering practice.
Relates to: Report on a topic related to Programming Paradigms, Online open-book examination
IN01 Bachelor of Information Technology
- Demonstrate well-developed IT discipline knowledge
Relates to: ULO4 - Critically apply design and problem solving skills
Relates to: ULO1 - Work independently and within effective teams
Relates to: ULO3 - Purposefully appraise personal values, attitudes and performance in your continuing professional development
Relates to: ULO2