Unit rationale, description and aim
Writing efficient and high-quality programs is a sought-after technical skill every technology company is seeking. To write these programs mastery of the science underlying the art of programming is critical. This unit introduces students to data structures as methods for organising large amounts of data. It also introduces algorithms as a set of well-defined instructions or steps designed to perform a specific task. This unit also introduces students to data modelling and computational trade-offs when developing software. This is because all computing devices have limited or restricted resources including memory, computational power, and energy consumption and computer scientists need to work with an awareness of these limitations. The aim of this unit is therefore to extend student programming capabilities by exploring the application and implementation of different data structures and algorithms and considerations associated with appropriate selection of these tools to meet different system requirements.
Campus offering
No unit offerings are currently available for this unit.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.
Demonstrate an understanding of fundamental data s...
Learning Outcome 01
Implement fundamental data structures and algorith...
Learning Outcome 02
Synthesise knowledge of data structures and algori...
Learning Outcome 03
Communicate complex algorithmic concepts and solut...
Learning Outcome 04
Content
Topics will include:
· Big-O notation
· Arrays and Linked lists, Stacks, Queues and Deques
· Hashing and Hash Tables
· Recursion
· Binary trees and binary search trees
· Graph representations and traversal algorithms
· Sorting and Searching Algorithms
· Algorithm design techniques
· Time and Space Complexity
· MapReduce model for big data processing
Assessment strategy and rationale
Assessments are designed to ensure students gain a sound foundational understanding of data structures and algorithms which will enable them to develop efficient code to solve problems. The assessments act as examples of what students might use as they build their own personal professional portfolio. Assessment 1 has been designed to ensure that students gain a broad understanding of the topic and are able to translate this understanding to efficient code snippets. This also gives students the opportunity to add examples of their work to their professional portfolio. Assessment 2 challenges students, working in small teams, to critically apply their knowledge to analyse the design and complexity of a series of real-world scenarios, and prepare a report of the outcomes of their analysis. Assessment 3 further challenges students to implement, validate and justify a solution to a complex problem that is not only correct but efficient. This series of assessments scaffolds students' learning by progressively increasing the complexity of tasks and requiring progressive integration of unit learning outcomes.
To pass the unit, students must demonstrate achievement of every unit learning outcome and obtain a minimum mark of 50%.
Overview of assessments
Type – Programming Portfolio Purpose – E...
Type – Programming Portfolio
Purpose – Enables students to demonstrate a comprehensive understanding of how to build code that address fundamental data structures and algorithm techniques.
This is an individual assessment
30%
Type – Analysis Report Purpose – Gain sk...
Type – Analysis Report
Purpose – Gain skills in critically evaluating the time and space complexity of different code solutions and evaluate the outcomes to recommend the best solutions.
This is a group assessment
30%
Type – Solution Implementation Purpose –...
Type – Solution Implementation
Purpose – Develop (code) an efficient solution to a complex problem. Design and execute test cases to validate the correctness and performance of the solution. Report on the testing process and justify the final solution.
This is an individual assessment
40%
Learning and teaching strategy and rationale
The teaching approach within this unit puts the student at the centre of their learning. This is achieved by using a blended learning approach that integrates asynchronous interactive online elements with face-to-face learning experiences. Access to fundamental knowledge is provided through online resources that enable students to build their understandings in a flexible manner. Students are given the opportunity to build upon this knowledge, and knowledge gained through prerequisite studies, through social learning experiences conducted in face-to-face classes such as tutorials and workshops. These opportunities enable students to build more complex understandings through peer interactions and structured learning experiences. This blended learning approach allows students to develop problem solving skills which align to vocational practices in computer science.