Course Title: Data Structures & Algorithms

Part A: Course Overview

Course Title: Data Structures & Algorithms

Credit Points: 12.00


Course Code

Campus

Career

School

Learning Mode

Teaching Period(s)


Course Coordinator: Denis Rinfret

Course Coordinator Phone: +848 3776 1300

Course Coordinator Email: denis.rinfret@rmit.edu.vn


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 1: Assignment 1
Weighting of final grade (%): 20
this task assesses the following learning outcomes:
PLO 1.1, 1.2, 2.1, 2.2, 2.3 CLO 1, 2, 3, 4, 5

Assessment 2: Assignment 2
Weighting of final grade (%): 20
this task assesses the following learning outcomes:
PLO 1.1, 1.2, 2.1, 2.2, 2.3 CLO 1, 2, 3, 4, 5

Assessment 3: Midterm exam
Weighting of final grade (%): 20
this task assesses the following learning outcomes:
PLO 1.1, 1.2, 2.1, 2.2, 2.3 CLO 1, 2, 3, 4, 5

Assessment 4: Final exam
Weighting of final grade (%): 40
this task assesses the following learning outcomes:
PLO 1.1, 1.2, 2.1, 2.2, 2.3 CLO 1, 2, 3, 4, 5