| Effective Term: | 2025/05 |
| Institute / School : | Institute of Innovation, Science & Sustainability |
| Unit Title: | Data Structures and Algorithms |
| Unit ID: | ITECH2509 |
| Credit Points: | 15.00 |
| Prerequisite(s): | (ITECH1400) |
| Co-requisite(s): | Nil |
| Exclusion(s): | (ITECH3109 and ITECH3218) |
| ASCED: | 020109 |
| Other Change: | |
| Brief description of the Unit |
This unit will explore program design approaches ensuring efficient computing to solve complex problems. In particular, students will study methods for analysing algorithms` time and space efficiency using asymptotic notation. Students will apply this analysis as they study a range of data structures and the algorithms used for processing such structures. Algorithms covered will include standard sorting and searching methods through to tree, graph and flow network processing algorithms. Finally, this unit will discuss implementation of each approach from scratch, as well as through the use of a built-in Application Programming Interface (API). Upon completion of this unit students will be able to determine and implement the appropriate data structure and algorithm to solve a range of problems, as well as be able to determine the efficiency of the solution. |
| Grade Scheme: | Graded (HD, D, C, P, MF, F, XF) |
| Work Experience Indicator: |
| No work experience |
| Placement Component: | |
| Supplementary Assessment:Yes |
| Where supplementary assessment is available a student must have failed overall in the Unit but gained a final mark of 45 per cent or above, has completed all major assessment tasks (including all sub-components where a task has multiple parts) as specified in the Unit Description and is not eligible for any other form of supplementary assessment |
| Course Level: |
| Level of Unit in Course | AQF Level(s) of Course | | 5 | 6 | 7 | 8 | 9 | 10 | | Introductory | | | | | | | | Intermediate | | |  | | | | | Advanced | | | | | | |
|
| Learning Outcomes: |
| Knowledge: |
| K1. | Describe ways in which to measure the efficiency of an algorithm. |
|
| K2. | Identify the computational complexity of a range of complex problems. |
|
| K3. | Discuss the purpose and need for abstract data types in the definition of data structures. |
|
| K4. | Define a range of common data structures along with their appropriate application. |
|
| K5. | Calculate and compare the efficiency of algorithms. |
|
| Skills: |
| S1. | Calculate and compare the efficiency of algorithms. |
|
| S2. | Specify abstract data types to describe the design of various data structures. |
|
| S3. | Implement common data structures and algorithms from first principles. |
|
| S4. | Validate algorithms` performance empirically and compare with their theoretical efficiency. |
|
| Application of knowledge and skills: |
| A1. | Develop, debug and test program solutions for given textual, informally written program specifications. |
|
| Unit Content: |
Topics may include: 1. Efficiency of algorithms, time and space complexity.
2. Computational complexity of problems.
3. Range of data structures.
4. Sorting and searching algorithms.
5. Tree processing algorithms.
6. Graph theory.
7. Graph processing algorithms.
8. Network-flow algorithms.
9. Implementation issues such as memory management, data types, generics.
10. API based implementations of algorithms.
11. Empirical testing and validation of algorithm implementations. |
| Graduate Attributes: |
| | Learning Outcomes Assessed | Assessment Tasks | Assessment Type | Weighting | | 1. | K1, K2, S1, S3 | Demonstrate the ability to solve programming problems by implementing recursive/iterative algorithms. | Lab Test(s) | 10 - 20% | | 2. | K4 - K5, S1 - S4, A1 | Solve programming problems by modifying and implementing provided algorithms and data structures. | Assignments and/or projects. | 50 - 60% | | 3. | K1 - K5, S1 - S4 | Class attendance and exercises, reading of reference material and lecture notes. | Final Examination/Test | 20 - 30% |
|