Handbook home
Algorithms and Complexity (COMP90038)
Graduate courseworkPoints: 12.5On Campus (Parkville)
For information about the University’s phased return to campus and in-person activity in Winter and Semester 2, please refer to the on-campus subjects page.
About this subject
- Overview
- Eligibility and requirements
- Assessment
- Dates and times
- Further information
- Timetable(opens in new window)
Contact information
Please refer to the LMS for up-to-date subject information, including assessment and participation requirements, for subjects being offered in 2020.
Overview
Availability | Semester 1 Semester 2 |
---|---|
Fees | Look up fees |
AIMS
The aim of this subject is for students to develop familiarity and competence in assessing and designing computer programs for computational efficiency. Although computers manipulate data very quickly, to solve large-scale problems, we must design strategies so that the calculations combine effectively. Over the latter half of the 20th century, an elegant theory of computational efficiency developed. This subject introduces students to the fundamentals of this theory and to many of the classical algorithms and data structures that solve key computational questions. These questions include distance computations in networks, searching items in large collections, and sorting them in order.
INDICATIVE CONTENT
Topics covered include complexity classes and asymptotic notation; empirical analysis of algorithms; abstract data types including queues, trees, priority queues and graphs; algorithmic techniques including brute force, divide-and-conquer, dynamic programming and greedy approaches; space and time trade-offs; and the theoretical limits of algorithm power.
Intended learning outcomes
On completion of this subject the student should be able to:
- Design, manipulate and reason about a variety of techniques for solving sorting, searching and graph problems
- Write efficient algorithms and data structures for a variety of fundamental problems
- Conduct formal reasoning about problem complexity and algorithmic efficiency
- Recognize the design techniques of standard algorithms, and apply these techniques to develop new computational solutions to problems
Generic skills
On completion of this subject students should have the following skills:
- An ability to apply fundamental knowledge in reasoning and problem solving
- Capacity to reason and solve problems
- Ability to undertake problem identification, formulation and solution
- Capacity for creativity and innovation
- Profound respect for truth and intellectual integrity, and for the ethics of scholarship.
Last updated: 3 November 2022
Eligibility and requirements
Prerequisites
Permission of the coordinator is required prior to enrolling in this subject (some programming experience is required)
OR Admission into one of the following:
MC-ENG - Master of Engineering (Software)
MC-ENG - Master of Engineering (Software with Business)
MC-IT - Master of Information Technology
Corequisites
None
Non-allowed subjects
Code | Name | Teaching period | Credit Points |
---|---|---|---|
COMP20003 | Algorithms and Data Structures | Semester 2 (On Campus - Parkville) |
12.5 |
COMP20007 | Design of Algorithms | Semester 1 (On Campus - Parkville) |
12.5 |
Recommended background knowledge
Solid understanding of the programming concepts of conditionals, loops,functions and procedures, including parameter passing. Understanding of elementary data structures including arrays, records, and linked lists. Knowledge of mathematical concepts, at the level typically covered by Year 12 mathematics subjects, including the concept of a function, as used in basic calculus (polynomials, exponential and logarithmic functions),and familiarity with basic discrete mathematics (sets, relations and graphs). Students are assumed able to read standard mathematical notation for functions, sets, and tuples. Students who do not have this level of mathematical knowledge will be expected to identify themselves to the subject coordinator prior to the commencement of the teaching semester and take part in a sequence of additional tutorials throughout the semester that will cover these concepts. A diagnostic quiz will be made available to students in Week 1 of semester to help them establish their needs in this regard.
Inherent requirements (core participation requirements)
The University of Melbourne is committed to providing students with reasonable adjustments to assessment and participation under the Disability Standards for Education (2005), and the Assessment and Results Policy (MPF1326). Students are expected to meet the core participation requirements for their course. These can be viewed under Entry and Participation Requirements for the course outlines in the Handbook.
Further details on how to seek academic adjustments can be found on the Student Equity and Disability Support website: http://services.unimelb.edu.au/student-equity/home
Last updated: 3 November 2022
Assessment
Due to the impact of COVID-19, assessment may differ from that published in the Handbook. Students are reminded to check the subject assessment requirements published in the subject outline on the LMS
Description | Timing | Percentage |
---|---|---|
Project work during semester due around weeks 7 and 11, addressing all Intended Learning Outcomes (ILOs) 1-4.
| From Week 7 to Week 11 | 30% |
11 weekly online quizzes, addressing ILOs 1 and 3. Hurdle requirement: Students must successfully complete at least eight of the 11 weekly online quizzes. | Throughout the teaching period | N/A |
A written closed book examination, addressing all Intended Learning Outcomes (ILOs) 1-4.
| During the examination period | 70% |
Last updated: 3 November 2022
Dates & times
- Semester 1
Principal coordinator Michael Kirley Mode of delivery On Campus (Parkville) Contact hours 36 hours, comprising of one 2-hour lecture and one 1-hour tutorial. Total time commitment 200 hours Teaching period 2 March 2020 to 7 June 2020 Last self-enrol date 13 March 2020 Census date 30 April 2020 Last date to withdraw without fail 5 June 2020 Assessment period ends 3 July 2020 - Semester 2
Principal coordinator Toby Murray Mode of delivery On Campus (Parkville) Contact hours 36 hours, comprising of one 2-hour lecture and one 1-hour tutorial. Total time commitment 200 hours Teaching period 3 August 2020 to 1 November 2020 Last self-enrol date 14 August 2020 Census date 21 September 2020 Last date to withdraw without fail 16 October 2020 Assessment period ends 27 November 2020
Time commitment details
200 hours
Last updated: 3 November 2022
Further information
- Texts
Prescribed texts
A. Levitin, Introduction to the Design and Analysis of Algorithms, Pearson, 3rd edition, 2012
- Subject notes
LEARNING AND TEACHING METHODS
The subject involves two weekly one -hour lectures and one tutorial class. The lectures are a mix of direct delivery and interactive student problem solving. Although written assignments are submitted by students individually, in-plenum discussion of the problems is encouraged.
INDICATIVE KEY LEARNING RESOURCES
Students are provided with lecture slides, and links on the LMS to the in-house animated software Algorithms in Action. The slides are integrated with a well-established textbook.
CAREERS / INDUSTRY LINKS
With Big Data at the forefront of modern computing solutions, industry is ever-more focused on efficient computational analysis methods. Software engineers, developers and data analysts will find not only the analysis techniques, but also the fundamental algorithmic design concepts, highly applicable to the handling of significant datasets. Building on an initial connection in a similar undergraduate offering, there is scope for industry liaison with this subject.
- Related Handbook entries
This subject contributes to the following:
Type Name Course Master of Data Science Course Master of Science (Bioinformatics) Course Master of Commerce (Decision, Risk and Financial Sciences) Course Doctor of Philosophy - Engineering Course Ph.D.- Engineering Course Master of Philosophy - Engineering Specialisation (formal) Spatial Specialisation (formal) Computing Specialisation (formal) Distributed Computing Major Computer Science Specialisation (formal) Software with Business Specialisation (formal) Software - Available through the Community Access Program
About the Community Access Program (CAP)
This subject is available through the Community Access Program (also called Single Subject Studies) which allows you to enrol in single subjects offered by the University of Melbourne, without the commitment required to complete a whole degree.
Entry requirements including prerequisites may apply. Please refer to the CAP applications page for further information.
Additional information for this subject
Subject coordinator approval required
- Available to Study Abroad and/or Study Exchange Students
This subject is available to students studying at the University from eligible overseas institutions on exchange and study abroad. Students are required to satisfy any listed requirements, such as pre- and co-requisites, for enrolment in the subject.
Last updated: 3 November 2022