Overview

This unit consolidates the technical C programming skills previously acquired in the prerequisite unit Foundations of Technical Programming. Those skills are extended to the development of more complex, modular applications. User-defined abstract data types and dynamic data structures are introduced and extensively used in developing those C applications. The safer procedural programming features provided by C++ and the concepts of classes and objects in C++ are then introduced in the context of simple C++ programs.

Teaching periods
Location
Start and end dates
Last self-enrolment date
Census date
Last withdraw without fail date
Results released date

Learning outcomes

Students who successfully complete this unit will be able to:

  • Define user data types using C structures and functions that appropriately use function parameters passed by value or by reference
  • Manage application memory using pointers and use dynamic data structures in C including generic linked-lists, stacks and queues
  • Evaluate and compare the efficiency of different algorithms (big O) using sorting functions such as bubble sort, insertion sort, and selection sort
  • Develop modular programs involving multiple C source files and function libraries
  • Effectively use features of C++ that improves on C for procedural programs
  • Develop simple C++ programs using classes and objects

Teaching methods

Hawthorn

Type Hours per week Number of weeks Total (number of hours)
Face to Face Contact (Phasing out)
Lecture
2.00 12 weeks 24
Face to Face Contact (Phasing out)
Laboratory
2.00 12 weeks 24
Face to Face Contact (Phasing out)
Laboratory
2.00 12 weeks 24
Unspecified Learning Activities (Phasing out)
Independent Learning
6.50 12 weeks 78
TOTAL150

Assessment

Type Task Weighting ULO's
AssessmentIndividual 20 - 30% 1,2,3,4,5,6 
Assignment 1Individual 20 - 25% 1,2 
Assignment 2Individual 20 - 25% 1,2,3,4,5,6 
Online TestsIndividual 20 - 40% 1,2,3,4,5,6 

Content

  • Pointers, arrays and dynamic memory allocation
  • Structured programming with functions, passing parameters by value and by reference
  • Modular software decomposition in multiple-file programs, abstract data types, function libraries
  • Sequential and random file I/O
  • Dynamic data structures: the linked list, stack and queue
  • Searching algorithms and algorithm efficiency (big 0)
  • Features of C++ that improves on C as a procedural language
  • Classes and objects in C++

Study resources

Reading materials

A list of reading materials and/or required textbooks will be available in the Unit Outline on Canvas.