# Course Title: Data Structures & Algorithms

## Part A: Course Overview

Course Title: Data Structures & Algorithms

Credit Points: 12.00

## Terms

### Teaching Period(s)

COSC2658

RMIT University Vietnam

172H School of Engineering

Face-to-Face

Viet3 2017,
Viet3 2018,
Viet3 2019,
Viet3 2020,
Viet3 2021,
Viet1 2022,
Viet3 2022,
Viet1 2023,
Viet3 2023,
Viet1 2024

Course Coordinator: Dr Yossi Nygate

Course Coordinator Phone: -

Course Coordinator Email: yossi.nygate@rmit.edu.vn

Course Coordinator Location: 2.4.27, Saigon South Campus

Pre-requisite Courses and Assumed Knowledge and Capabilities

Before commencing this course, you should have completed Computing Engineering, or provide evidence of equivalent capabilities.

Course Description

This course provides you with an in-depth understanding of a wide range of fundamental data structures and algorithms used in developing structured, efficient, reusable, and practical software. You will spend a significant time on each algorithm to understand its essential characteristics and to respect its subtleties. Furthermore, you will be able to compare, contrast and make the best possible decision to select suitable data structures and algorithms to form the solution for a complex problem.

Objectives/Learning Outcomes/Capability Development

This course contributes to the following Program Learning Objectives:

1.1. Comprehensive, theory based understanding of the underpinning natural and physical sciences and the engineering fundamentals applicable to the engineering discipline.
1.2. Conceptual understanding of mathematics, numerical analysis, statistics, and computer and information sciences which underpin the engineering discipline.
2.1. Application of established engineering methods to complex engineering solving.
2.2. Fluent application of engineering techniques, tools and resources.
2.3. Application of systematic engineering synthesis and design processes.

On completion of this course, you should be able to:

1. Compare, contrast, and apply the key algorithmic design paradigms: brute force, divide and conquer, decrease and conquer, transform and conquer, greedy, dynamic.
2. Compare, contrast, and apply key data structures: trees, lists, stacks, queues, hash tables, and graph representations.
3. Define, compare, analyse, and solve general algorithmic problem types: sorting, searching, string processing, graphs, and geometric.
4. Compare, contrast, and apply algorithmic tradeoffs : time vs. space, deterministic vs. randomized, and exact vs. approximate.
5. Implement, empirically compare, and apply fundamental algorithms and data structures to real-world problems.

Overview of Learning Activities

Learning activities will take the form of:

• Lectures
• Tutorials and Labs

Overview of Learning Resources

Learning resources will consist of recommended references and class notes which may be accessed through "myRMIT" if you are in Melbourne and via "RMIT online" if you are based in Vietnam.
The set of references is deliberately broad, including books, journal publications, government reports, industry standards and handbooks, and web-based resources.

Overview of Assessment

Assessment Task 1 Weighting 20% This assessment task supports CLOs 2, 3 & 4   Assessment Task 2 Weighting 20% This assessment task supports CLOs 2, 3, 4 & 5   Assessment Task 3 Weighting 20% This assessment task supports CLOs 1, 2, 3 & 4   Assessment Task 4 Weighting 40% This assessment task supports CLOs 1, 2, 3, 4 & 5