Credit points


Campus offering

No unit offerings are currently available for this unit


COMP104 Fundamentals of Computing

Unit rationale, description and aim

Writing software (computer programs) involves describing processes, procedures; it involves the authoring of algorithms. Computer programming involves developing lists of instructions - the source code representation of software. These instructions are manipulated by different types of objects, e.g. numbers, words, images, sounds, etc. Creating a computer program can be like composing music or like designing a house. It has been argued that in its current state it is an art, not simply the product of engineering. As with playing a musical instrument, computer programming cannot be learnt by simply watching and listening. Hands-on experience emphasised through lab work and assignments is essential in mastering the skills taught in this course.

Computing is best learned by practice, and thus labs and programming assignments are a critical component of the course. These allow students to practice design and implementation skills, and to develop teamwork skills. This unit is designed for students with no prior programming experience. This unit will introduce students to a programming language, including basic control structures common across languages. You will become familiar with concepts and technologies associated with platform-independent structured and object-oriented programming. The aim of this unit is to build the programming skills and knowledge for developing computational solutions to problems.

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.

On successful completion of this unit, students should be able to:

LO1 - Communicate an understanding of the philosophical basis of the development of skills in problem solving and critical thinking (GA5) 

LO2 - Define, document, analyse and solve simple problems and evaluate solutions in a programming environment, applying the principles of programming and selecting appropriate algorithms for problem solving in a high-level language (GA5, GA6, GA10) 

LO3 - Apply skills of programming problem solving processes, taking ethical perspectives into account (GA3, GA4, GA5) 

LO4 - Implement programming concepts and detect logical and syntax errors in a programmer’s code (GA5, GA6). 

Graduate attributes

GA3 - apply ethical perspectives in informed decision making

GA4 - think critically and reflectively 

GA5 - demonstrate values, knowledge, skills and attitudes appropriate to the discipline and/or profession 

GA6 - solve problems in a variety of settings taking local and international perspectives into account

GA10 - utilise information and communication and other relevant technologies effectively.


Topics will include:  

  • Utilising an integrated learning tool for developing problem solving skills and thinking processes; 
  • Program structure and modular solutions; 
  • Data handling: using parameters, passing data, global and local variables; 
  • Analysis of various control structures in a high-level language;  
  • Introduction to object-oriented programming.  

Learning and teaching strategy and rationale

This unit builds on the unit COMP104 Fundamentals of Computing where students learnt how the various aspects of computing systems are configured to meet the needs of organisations/end-users and how these systems employ basic principles and theory in developing computational solutions to problems.  

This unit will engage students in active learning activities, such as writing algorithms, drawing flowcharts and writing programming code to develop problem solving skills and critical thinking skills. 

The two-hour lectures per week will focus on teaching programming concepts and the two hour tutorial per week allows students to develop problem solving and programming skills. Students will undertake practical learning and assessments that will focus on writing programing code to solve real world problems. 

This unit comprises 150 hours in total with a normal expectation of 4 hours per week of directed study (lectures and tutorials). The balance of the hours becomes private study. 

Assessment strategy and rationale

Assessments have been developed to meet the unit learning outcomes and develop graduate attributes consistent with University assessment requirements. These have been designed so that they use a variety of tasks to measure the different learning outcomes of the unit. The schedule provides scaffolded learning with opportunities for students to monitor their own progress, practise their skills and receive feedback. 


  • Tutorial Tasks: Students Will be required to design programs, write code and test the program for syntax and logical errors. These tasks will help students demonstrate the programming problem solving process.  
  • Problem Solving Project: Students will be required to demonstrate their ability to design and develop a real world software application by completing a mini-project at the end of the semester.  
  • Final Exam: This task requires students to apply their knowledge of algorithms and programming concepts to solving problems and their ability to detect errors in a programmer’s code. 


In order to pass this unit, students are required to: 

  1. Submit completed tutorial tests within the allocated time. Partial completions will result in partial marks;  
  2. Submit the problem-solving project within the allocated time. Marks will be allocated based on the scoring rubrics; 
  3. Complete all questions in the final exam; 
  4. Obtain a pass mark (or better) overall (from the combination of marks for all assignments). 

Overview of assessments

Brief Description of Kind and Purpose of Assessment TasksWeightingLearning OutcomesGraduate Attributes

Tutorial Test: the tutorial test will be facilitated by the tutor in a computer lab. Learning activities during tutorials will provide the students with hands-on programing skills experience and the tutorial test will assess the level of students’ understanding of basic programming concepts. 


LO1, LO2 

GA5GA6, GA10  

Problem Solving Project: each student will be given a real world problem and be asked to build a software product based on the software requirements. The project will test if the student is able to apply their computational thinking logically to resolve problems. 


LO1, LO2, LO3 

GA3, GA4, GA5 GA6, GA10 

Final Exam: a closed-book theory-based examination which will test each student’s ability to implement the programming concepts, and their ability to detect the logical and syntax errors in a programmer’s code. 


LO1, LO2, LO4 

GA5GA6, GA10  

Representative texts and references

Required text(s) 

Gaddis, T. (2016). Starting out with Python (3rd ed.). Sydney: Pearson Education. 

Recommended references 

Gaddis, T. (2013). Starting out with programming logic and design (3rd ed.). Upper Saddle River, NJ: Addison-Wesley. 

Sprankle, M., & Hubbard, J. (2012). Problem solving and programming concepts (9th ed). Sydney: Pearson Education. 

Weisfeld, M. (2013). The object-oriented thought process (4th ed.). Upper Saddle River, NJ: Addison-Wesley. 

Further references 

Python software foundation 2017, accessed 9th November 2017, 

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