Year

2024

Credit points

10

Campus offering

Find out more about study modes.

Unit offerings may be subject to minimum enrolment numbers.

Please select your preferred campus.

  • Term Mode
  • Semester 2Campus Attendance

Prerequisites

Nil

Unit rationale, description and aim

A secure grounding in the theory and practice of programming is vital to the development of disciplinary expertise in digital technology (computing).

This unit provides the foundations of programming and software design through a focus on real-world problems. Students acquire practical skills in programming and software project management and use these skills to create simple software solutions to real-world problems by applying their developing computational, systems and design thinking skills. Students consider the social impact of past, present and emerging computing technologies, and use this knowledge to inform their own programming projects.

The aim of this unit is to foster students’ exploration of the fundamentals of software design and to give students the opportunity to learn through experience to apply their developing programming and software design skills to a variety of practical design challenges.

Learning outcomes

To successfully complete this unit you will be able to demonstrate you have achieved the learning outcomes (LO) detailed in the below table.

Each outcome is informed by a number of graduate capabilities (GC) to ensure your work in this, and every unit, is part of a larger goal of graduating from ACU with the attributes of insight, empathy, imagination and impact.

Explore the graduate capabilities.

Learning Outcome NumberLearning Outcome DescriptionRelevant Graduate Capabilities
LO1Define programming techniques and apply them to the solution of real-world problemsGC1, GC2, GC10
LO2Design flowcharts, pseudocode and algorithmsGC1, GC2, GC8, GC10
LO3Select and use a non-visual programming language in the development of software programsGC1, GC2, GC3, GC10
LO4Evaluate algorithm and programming code using test data to check for desired outcomesGC1, GC2, GC6, GC7, GC8, GC10
LO5Plan and manage software projects using an iterative and collaborative approach, identifying risks and considering ethics, safety and sustainabilityGC1, GC2, GC4, GC6, GC7, GC9, GC10

Content

Topics will include:

Module 1-Programming techniques –LO1

  • Sequence, selection and repetition,
  • Data structures: Lists tuples, dictionaries, sets
  • Functions
  • Files and exception handling
  • Strings

Module 2-Program Design- LO1, LO2

  • Flowcharts
  • Pseudocode
  • Algorithms
  • Artificial Intelligence -machine learning algorithms

Module 3- Software Development Life Cycle -LO1, LO2, LO3, LO4, LO5

  • Software Project Management -design, development, evaluation of software solution

Learning and teaching strategy and rationale

A student-focused, problem-based learning approach is used in this unit. This enables the development of conceptual, procedural and professional knowledge and skill which allows students to practise design thinking, system thinking and computational thinking skills.

The learning trajectory follows the ACU’s 3A framework:

Acquisition: Students encounter programming concepts through interactive lecture demonstrations, concepts are discussed and broadened through analysis of specific real-world problems and further informed by research during development of software projects. In tutorial classes students design, develop and evaluate software solutions.

Assimilation: Issues in software design and development are introduced through a practice-oriented learning method. This method involves the parallel development of procedural and conceptual skills required for design, development and documentation of software solutions.

Application -Students combine conceptual knowledge in programming design and procedural knowledge of software development methodologies to work on software development projects.

Using a computational thinking approach, students develop solutions to real-world problems: designing developing, communicating and evaluating software solutions. 

Assessment strategy and rationale

The problem-based learning strategy employed in this unit is supported by the integration of progressive authentic assessment tasks completed at critical points in the students’ learning.

Initially students acquire knowledge in software program design by undertaking tutorial exercises and they develop skills in design and development through practical tutorial classes. Practical tutorials provide opportunities for formative assessment which supports assimilation of knowledge.

Summative assessment aims to assess students’ competencies and how well they can apply knowledge and skills (conceptual, procedural and professional) in a holistic manner using an integrated approach to solving design problems.

In this unit, students’ problem-solving skills are assessed by means of quizzes and a problem-solving test that evaluates students’ achievement of a synthesis between design theory and the application of programming skills to a software project. The software design project will assess students’ project management skills in object-oriented software design and development and will require evidence of successful project definition, research, ideation, prototyping, iteration, critical evaluation and risk assessment.

Overview of assessments

Brief Description of Kind and Purpose of Assessment TasksWeightingLearning Outcomes

Quiz

Requires students to demonstrate their knowledge of programming techniques and of the application of these techniques to the solution of real-world problems.

20%

LO1

Problem-Solving Test

Requires students to demonstrate competence in creating flowcharts, pseudocode and algorithm.

30%

LO1, LO2

Software Design Project

Requires students to demonstrate competence in software project management: design, development, testing and documentation of a computer game.

50%

LO1, LO2, LO3, LO4, LO5

Representative texts and references

Deitel, P.J., & Dietal, H. (2020). Intro to Python for computer science and data science: Learning to program with AI, big data and the cloud. New York: Pearson Education.

Downey, A. (2012). Think Python: How to think like a computer scientist. Green Tea Press.

Farrell, J. (2018), Introductory programming logic and design. Cengage Learning US.

Guzdial, M.J. & Ericson, B. (2016). Introduction to computing and programming in Python: A multimedia approach. Boston: Pearson.

Miller, B.N., Ranum, D.L. & Anderson, J. (2021). Python programming in context (3rd ed.). Burlington, Massachusetts: Jones & Bartlett Learning.

Perry, G. & Miller, D. (2019). Sam’s teach yourself: Beginning programming in 24 hours (4th ed.). Pearson Higher Education.

Schneider, G.M., & Gersting, J. (2019). Invitation to Computer Science. Cengage Learning US.

Spraul, V. A. (2012). Think like a programmer: An introduction to creative problem solving. San Francisco : No Starch Press.

Stephens, R. (2019). Essential algorithms: A practical approach to computer algorithms using Python and C# (2nd ed.). Indianapolis, IN: Wiley.

Sweigart, A. (2012). Making games with Python & Pygame. Sweigart, Al.

Have a question?

We're available 9am–5pm AEDT,
Monday to Friday

If you’ve got a question, our AskACU team has you covered. You can search FAQs, text us, email, live chat, call – whatever works for you.

Live chat with us now

Chat to our team for real-time
answers to your questions.

Launch live chat

Visit our FAQs page

Find answers to some commonly
asked questions.

See our FAQs