Semester 1, 2022 Online | |
Units : | 1 |
Faculty or Section : | Faculty of Health, Engineering and Sciences |
School or Department : | School of Mathematics, Physics & Computing |
Grading basis : | Graded |
Course fee schedule : | /current-students/administration/fees/fee-schedules |
Staffing
Examiner:
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 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:
- Apply the fundamentals of structured programming, data structures, and basic algorithms;
- Create clear, logical, and concisely written source code that is well-documented throughout;
- Use time complexity to describe the behaviour of an algorithm;
- 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
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
Description | Group Assessment |
Weighting (%) | Course learning outcomes |
---|---|---|---|
Problem Solving 1 | No | 25 | 1,2,3,4 |
Problem Solving 2 | No | 25 | 2,3,4 |
Report | No | 50 | 1,2,3,4 |