Skip navigation
The Australian National University

Welcome to COMP3600/6466 - Algorithms


Overview

Algorithms is the foundation of Computer Science. It enables advances in Artificial Intelligence, Machine Learning, Cyber Security, Distributed, Mobile, and Cloud Computing, Computer Graphics and Animation, and many more. These advances have made Computer Science an indispensable part of our everyday life.

In this course, we will study the basics of Algorithms Design and Analysis. We will focus on two fundamental problems in computing: Sorting and Searching. We will cover various data structures and algorithm design techniques for solving these two classes of problems, as well as performance measures and analysis techniques of these algorithms and data structures.

Tentative topics that will be covered in this class:

  • The Problem: Search and Sort
  • Analysis Framework:
    • Model of Computation
    • Asymptotic Analysis
    • Recurrence Analysis
    • Basic analysis of Randomized Algorithms
    • Empirical Analysis
  • Algorithm Design Techniques:
    • Brute Force
    • Divide & Conquer
    • Decrease & Conquer
    • Transform & Conquer
    • Dynamic Programming
    • Greedy
    • Iterative Improvement


Assumed Background

This is a third year computing class. Therefore, this class assumes students are comfortable in creating computer programs using high-level programming languages. In particular, the pre-requisites are completion of COMP1110/1140/1150, 6 units of 2000-level COMP courses, and 6 units of 2000-level MATH courses or COMP1600/2600.

For students who take this class without satisfying all pre-requisites, please note: The class will run with the assumption that all students have satisfied all pre-requisites. There will be no exception on our marking nor materials.


Class Admin


Time & Location

  • Lecture: Monday 5.05pm-6.55pm, Coombs Lecture Theatre
  • Open Q&A / lecture (starting week 2): Wednesday 4.05pm-4.55pm, Coombs Lecture Theatre

    Note: Monday, 7 October will be a public holiday. We will replace this lecture during Open Q&A session on 25 Sep and 2 Oct.

  • Tutorial (starting week 2): Please select your group in wattle.
    Group selection will open on Wednesday 24 July and close on Friday 2 August.

Teaching Staffs

  • Lecturer & convenor: Hanna Kurniawati
  • Tutors:
    • Jeffery Guo (head tutor)
    • Erli Wang
    • Jonathon Schwartz
    • Kartik Gupta
    • Matthew Aitchison
    • Mengyu Chen
    • Samuel Yang-Zhao
    • Xinghao Li

To contact a teaching staff, please send your e-mail to: comp_3600_6466@anu.edu.au OR algorithmsatanu@gmail.com .

Discussion forum is available here. Please register here.


Textbook

  • [CLRS] Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. Introduction to algorithms, 3rd Ed. MIT press, 2009.
  • [Lev] Anany Levitin. Introduction To Design And Analysis Of Algorithms, 3rd Ed. Pearson Higher Education, 2011

Physical copies of [CLRS] have been reserved in Hancock Library. An e-book version of [CLRS] and [Lev] have also been reserved.

Recommended Books:
  • [Ski] S. Skiena. The Algorithm Design Manual. Springer-Verlag.

Assessments

3 assignments @20% (redeemable) + final exam @40%.

Each assignment will include (though not restricted to) problem formulation, algorithms design and their implementation, theoretical analysis of the algorithms, and empirical analysis of the implementation of the algorithms. Algorithms can be implemented in C/C++/Java. However, support will only be given to C++.

Timeline for the assignments (all in Canberra time (AEST)):

  • Assignment 1: Monday, 5 August - Friday, 23 August, 23:59
  • Assignment 2: Monday, 26 August - Friday, 27 September, 23:59
  • Assignment 3: Monday, 30 September - Friday, 18 October, 23:59

Final exam will include all materials. The exam schedule follows ANU final exam schedule.


Academic Honesty

Cheating will not be tolerated. We will follow ANU procedure. For Poor Academic Practice / Academic Misconduct outcome, the penalty will be:

  • Caught 1st time: At least 0 mark for the assessment.
  • Caught 2nd time: 0 mark for the course.

Giving Feedback

We welcome your feedback on how to help you learn better in this class. You can give feedback via the following:

  • Direct to the teaching staffs via:
    • E-mail to comp_3600_6466@anu.edu.au OR algorithmsatanu@gmail.com
    • The class' piazza
    • In-person before/after/during break in lectures/tutorials
  • Through your class representatives via:
    • This form
    • In-person discussion with one of your class representatives (Zoey Chen, V. Vijendran, and Simian Wang)

Notes

  • We do not take lecture attendance. However, this is a campus-based class, meaning: Although there will be recordings of the lectures, we do not guarantee that every explanation given in class will be recorded in the video lecture. Therefore, lecture attendance is highly recommended.
  • We do not take tutorial attendance. However, information given in tutorial will not be recorded and help outside of the tutorial time are solely at the discretion of the tutors. Therefore, tutorial attendance are highly recommended.
  • All materials and information about this class will be available or linked from this website. If and when there's discrepancy between information in this page and elsewhere (e.g., program and courses site or wattle), information in this page is the correct one.

Updated:  08 August 2019 / Responsible Officer:   JavaScript must be enabled to display this email address. / Page Contact:   JavaScript must be enabled to display this email address. / Powered by: Snorkel 1.4