USQ Logo
The current and official versions of the course specifications are available on the web at
Please consult the web for updates that may occur during the year.

CSC8720 Programming Algorithms

Semester 2, 2021 Online
Short Description: Programming Algorithms
Units : 1
Faculty or Section : Faculty of Health, Engineering and Sciences
School or Department : School of Sciences
Student contribution band : Band 2
ASCED code : 020109 - Algorithms
Grading basis : Graded


Examiner: David Lai


Pre-requisite: CSC5020


The study of algorithms and data structures remains one of the mainstays of application development curricula worldwide as employers seek programmers who create efficient and well-designed code. Understanding and using complex structures and the operations on those can simplify programming significantly, thereby reducing costs of development, operation, and maintenance. Programming algorithms are fundamental as it applies to all programming languages and techniques and builds core programming competency. The course prepares students for further investigation in software development in advanced courses in the study program.


This course addresses various data structures and techniques for algorithm design and analysis. It covers data structures such as lists, stacks, queues, trees and graphs within a modern object-based scripting language. The design of various algorithms such as searching algorithms, sorting algorithms and graph algorithms is discussed. This course also addresses other fundamental topics such as recursive algorithms and complexity analysis.


On completion of this course students should be able to:

  1. Apply the fundamentals of structured programming, data structures, and basic algorithms;
  2. Create clear, logical, and concisely written source code that is well-documented throughout;
  3. Use time complexity to describe the behaviour of an algorithm;
  4. Create solutions to problems by generating programs which apply strategies covered in the course.


Description Weighting(%)
1. Interpreted Programming Language fundamentals 10.00
2. Recursion and tail recursion optimization 10.00
3. Sorting and Searching Programming Strategies 20.00
4. Memory Management 15.00
5. Lists, Stacks, Queues 15.00
6. Sets, Maps, Hashing 10.00
7. Trees, Priority Queues 15.00
8. Basics of Time Complexity 5.00

Text and Materials

ALL textbooks and materials available to be purchased can be sourced from USQ's Online Bookshop (unless otherwise stated). (

Please contact us for alternative purchase options from USQ Bookshop. (

There are no texts or materials required for this course.

Reference Materials

Reference materials are materials that, if accessed by students, may improve their knowledge and understanding of the material in the course and enrich their learning experience.
Malik, D.S 2018, C++ Programming: Program Design Including Data Structures, 8th edn, Cengage.
(ISBN 978-1-337-11756-2.)

Student Workload Expectations

Activity Hours
Assessments 33.00
Online Lectures 26.00
Private Study 106.00

Assessment Details

Description Marks out of Wtg (%) Due Date Objectives Assessed Notes
Algorithm Application 25 25 26 Jul 2021 1,2,4
Complexity Analysis 25 25 16 Aug 2021 2,3,4
Report 100 50 11 Oct 2021 1,2,3,4

Important assessment information

  1. Attendance requirements:
    There are no attendance requirements for this course. However, it is the students' responsibility to study all material provided to them or required to be accessed by them to maximize their chance of meeting the objectives of the course and to be informed of course-related activities and administration.

  2. Requirements for students to complete each assessment item satisfactorily:
    To satisfactorily complete an individual assessment item a student must achieve at least 50% of the marks. (Depending upon the requirements in Statement 4 below, students may not have to satisfactorily complete each assessment item to receive a passing grade in this course.)

  3. Penalties for late submission of required work:
    Students should refer to the Assessment Procedure (point 4.2.4)

  4. Requirements for student to be awarded a passing grade in the course:
    To be assured of receiving a passing grade students must obtain at least 50% of the total weighted marks available for the course.

  5. Method used to combine assessment results to attain final grade:
    The final grades for students will be assigned on the basis of the weighted aggregate of the marks (or grades) obtained for each of the summative assessment items in the course.

  6. Examination information:
    There is no examination in this course.

  7. Examination period when Deferred/Supplementary examinations will be held:
    Deferred and Supplementary examinations will be held in accordance with the Assessment Procedure

  8. University Student Policies:
    Students should read the USQ policies: Definitions, Assessment and Student Academic Misconduct to avoid actions which might contravene University policies and practices. These policies can be found at

Assessment Notes

  1. The due date for an assignment is the date by which a student must despatch the assignment to the USQ. Students must retain a copy of each item submitted for assessment purposes. Such copies should be despatched to the USQ within 24 hours of receipt of a request to do so.

  2. Electronic submission of assignments is required for this course. All submissions must be made through the Assignment Drop Box located on the USQ study desk for this course, unless directed otherwise by the examiner of the course. Students must retain a copy of each item submitted for assessment. This must be despatched to USQ within 24 hours if requested by the Examiner.

  3. Reliable access to the internet is a requirement of this course as the course contains electronic assessment and submission elements. In order to avoid internet issues, on-campus students should upload their assignments electronically using the same computer laboratories. Online students who knowingly do not have reliable access to the internet should actively seek alternative internet access (e.g., Internet cafes, local libraries, or work places) for assessment submission. Online students are able to use the on-campus student computer laboratories once access has been enabled. To be granted access, Online students need to contact ICT and ask to have a student account enabled so that they can work on-campus.

  4. Students are expected to open their university provided email account and check it regularly for personal communication. In accordance with the Electronic Communication with Students Policy and Procedure ( information sent to the student's USQ email account will be regarded as being received.

  5. APA style is the referencing system required in this course. Students should use the 6th or 7th edition of the APA Style Manual to format their assignments. The APA Style to be used is defined by the USQ Library's referencing guide.

Evaluation and Benchmarking

In meeting the University’s aims to establish quality learning and teaching for all programs, this course monitors and ensures quality assurance and improvements in at least two ways. This course:

  1. conforms to the USQ Policy on Evaluation of Teaching, Courses and Programs to ensure ongoing monitoring and systematic improvement.
  2. forms part of the Master of Information Technology and is benchmarked against the:
• internal USQ accreditation/reaccreditation processes which include (i) stringent standards in the independent accreditation of its academic programs, (ii) close integration between business and academic planning, and (iii) regular and rigorous review; and
• professional accreditation standards of the Australian Computer Society (ACS).

Other Requirements

  1. This course requires the use of a computer lab with C++ compiler installed.
    If the course is only available via the web students are expected to work with USQ-supplied virtual machines either over a fast internet connection, or on a powerful personal computer.

Date printed 8 November 2021