Handbook home
Algorithms and Complexity (COMP90038)
Graduate courseworkPoints: 12.5On Campus (Parkville)
About this subject
- Overview
- Eligibility and requirements
- Assessment
- Dates and times
- Further information
- Timetable (login required)(opens in new window)
Contact information
Semester 1
Semester 2
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: 10 November 2023
Eligibility and requirements
Prerequisites
Permission of the coordinator is required prior to enrolling in this subject (some programming experience is required)
OR
Code | Name | Teaching period | Credit Points |
---|---|---|---|
COMP90059 | Introduction to Programming |
Semester 1 (On Campus - Parkville)
Semester 2 (On Campus - Parkville)
|
12.5 |
OR
Admission into or selection of one of the following:
- MC-SOFTENG Master of Software Engineering
- MC-IT Master of Information Technology
- MC-DATASC Master of Data Science
- GD-CS Graduate Diploma in Computer Science
- GD-DATASC Graduate Diploma in Data Science
- MC-DINFENG Master of Digital Infrastructure Engineering
- Software specialisation (formal) in the MC-ENG Master of Engineering
- Software with Business specialisation (formal) in the MC-ENG Master of Engineering
OR
Students wanting to enrol in COMP90038 that have not met any of the above pre-requisites will need to complete an enrolment variation form and attach Subject Coordinator approval.
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: 10 November 2023
Assessment
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% |
10 weekly online quizzes, addressing ILOs 1 and 3.
| Throughout the teaching period | 10% |
A written closed book examination, addressing all Intended Learning Outcomes (ILOs) 1-4.
| During the examination period | 60% |
Last updated: 10 November 2023
Dates & times
- Semester 1
Coordinator Junhao Gan Mode of delivery On Campus (Parkville) Contact hours 36 hours, comprising of two 1-hour lectures and one 1-hour tutorial per week Total time commitment 200 hours Teaching period 26 February 2024 to 26 May 2024 Last self-enrol date 8 March 2024 Census date 3 April 2024 Last date to withdraw without fail 3 May 2024 Assessment period ends 21 June 2024 Semester 1 contact information
- Semester 2
Coordinator Olya Ohrimenko Mode of delivery On Campus (Parkville) Contact hours 36 hours, comprising of two 1-hour lectures and one 1-hour tutorial per week Total time commitment 200 hours Teaching period 22 July 2024 to 20 October 2024 Last self-enrol date 2 August 2024 Census date 2 September 2024 Last date to withdraw without fail 20 September 2024 Assessment period ends 15 November 2024 Semester 2 contact information
Time commitment details
200 hours
What do these dates mean
Visit this webpage to find out about these key dates, including how they impact on:
- Your tuition fees, academic transcript and statements.
- And for Commonwealth Supported students, your:
- Student Learning Entitlement. This applies to all students enrolled in a Commonwealth Supported Place (CSP).
- Completion rate. Students who started their course from 2022 and are in a CSP or receiving a HELP Loan (eg FEE-HELP) must meet the completion rate to continue to receive Commonwealth Support for that course.
Subjects withdrawn after the census date (including up to the ‘last day to withdraw without fail’) count toward the Student Learning Entitlement, and as a fail toward the completion rate, unless there are approved ‘special circumstances’.
Last updated: 10 November 2023
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 Commerce (Decision, Risk and Financial Sciences) Course Master of Science (Bioinformatics) Course Doctor of Philosophy - Engineering Course Master of Data Science Course Ph.D.- Engineering Course Master of Philosophy - Engineering Major Computer Science Specialisation (formal) Software with Business Specialisation (formal) Software Specialisation (formal) Distributed Computing Specialisation (formal) Computing - 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: 10 November 2023