精东传媒app

UniSQ 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 1, 2023 Toowoomba On-campus
Units : 1
School or Department : School of Mathematics, Physics & Computing
Grading basis : Graded
Course fee schedule : /current-students/administration/fees/fee-schedules

Staffing

Course Coordinator:

Requisites

Pre-requisite: CSC5020

Overview

The study of algorithms and data structures remains one of the mainstays of application development curricula worldwide as employers seek programmers who can 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.

Course learning outcomes

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.

Topics

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 required to be purchased or accessed

There are no texts or materials required for this course.

Student workload expectations

To do well in this subject, students are expected to commit approximately 10 hours per week including class contact hours, independent study, and all assessment tasks. If you are undertaking additional activities, which may include placements and residential schools, the weekly workload hours may vary.

Assessment details

Approach Type Description Group
Assessment
Weighting (%) Course learning outcomes
Assignments Written Problem Solving 1 No 25 1,2,3,4
Assignments Written Problem Solving 2 No 25 2,3,4
Assignments Written Report No 50 1,2,3,4
Date printed 9 February 2024