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 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
Disclaimer - Offer of some units is subject to viability, and information in these Unit Outlines is subject to change prior to commencement of the teaching period.

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:

  1. Compare and support ways of thinking about and expressing software solutions
    Relates to: ACS CBOK: 1, 1.6, 4, 4.2
  2. Critically evaluate the efficiency and effectiveness of different styles of programming languages for different purposes.
    Relates to: ACS CBOK: 4, 4.2
  3. Evaluate new programming languages and programming concepts through self-directed learning.
    Relates to: ACS CBOK: 1, 1.6, 4, 4.2
  4. Examine how programming languages are designed and implemented.
    Relates to: ACS CBOK: 1, 1.6, 3, 3.1, 4, 4.2

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.

Weight: 30
Individual/Group: Individual
Due (indicative): Week 7
Related Unit learning outcomes: 1, 2
Related Standards: EASTG1CMP: 1, 1.2, 1.3, 1.5, 2, 2.1, 2.2, 2.3

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.

Weight: 30
Individual/Group: Individual
Due (indicative): Week 13
Related Unit learning outcomes: 2, 3
Related Standards: EASTG1CMP: 1, 1.2, 1.3, 1.5, 2, 2.1, 2.2, 3, 3.2

Assessment: Online open-book examination

Timed online exam (open book) with theory and practical components covering all topics covered in the semester

Weight: 40
Individual/Group: Individual
Due (indicative): During central examination period
Central exam duration: 2:40 - No perusal
Related Unit learning outcomes: 1, 4
Related Standards: EASTG1CMP: 1, 1.2, 1.3, 1.5, 2, 2.2

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

Library and web-based information will be used in this unit. Reference materials required will be advised via Canvas.

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

  1. Understanding the ICT profession
    Relates to: ULO1, ULO3, ULO4

3: Technology Resources

  1. Hardware and software fundamentals
    Relates to: ULO4

4: Technology Building

  1. Programming
    Relates to: ULO1, ULO2, ULO3, ULO4

Engineers Australia Stage 1 Competency Standard for Professional Engineer

1: Knowledge and Skill Base


  1. Relates to: Project (applied), Report on a topic related to Programming Paradigms, Online open-book examination

  2. Relates to: Project (applied), Report on a topic related to Programming Paradigms, Online open-book examination

  3. Relates to: Project (applied), Report on a topic related to Programming Paradigms, Online open-book examination

2: Engineering Application Ability


  1. Relates to: Project (applied), Report on a topic related to Programming Paradigms

  2. Relates to: Project (applied), Report on a topic related to Programming Paradigms, Online open-book examination

  3. Relates to: Project (applied)

3: Professional and Personal Attributes


  1. Relates to: Report on a topic related to Programming Paradigms

Course Learning Outcomes

This unit is designed to support your development of the following course/study area learning outcomes.

EN01 Bachelor of Engineering (Honours)

  1. 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
  2. Manage projects to solve complex engineering problems, using appropriate information, engineering methods, and technologies.
    Relates to: Project (applied), Online open-book examination
  3. Deploy appropriate approaches to engineering design and quality.
    Relates to: Project (applied)
  4. 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
  5. 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
  6. 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

  1. Demonstrate well-developed IT discipline knowledge
    Relates to: ULO4
  2. Critically apply design and problem solving skills
    Relates to: ULO1
  3. Work independently and within effective teams
    Relates to: ULO3
  4. Purposefully appraise personal values, attitudes and performance in your continuing professional development
    Relates to: ULO2