Handbook home
Algorithms and Data Structures (COMP20003)
Undergraduate level 2Points: 12.5Dual-Delivery (Parkville)
From 2023 most subjects will be taught on campus only with flexible options limited to a select number of postgraduate programs and individual subjects.
To learn more, visit COVID-19 course and subject delivery.
About this subject
- Overview
- Eligibility and requirements
- Assessment
- Dates and times
- Further information
- Timetable(opens in new window)
Contact information
Semester 2
Overview
Availability | Semester 2 - Dual-Delivery |
---|---|
Fees | Look up fees |
AIMS
Programmers can choose between several representations of data. These will have different strengths and weaknesses, and each will require its own set of algorithms. Students will be introduced to the most frequently used data structures and their associated algorithms. The emphasis will be on justification of algorithm correctness, on analysis of algorithm performance, and on choosing the right data structure for the problem at hand. Leading up to an exam with a programming component, quality implementation of algorithms and data structures is emphasized.
This subject, or its cognate COMP20007 Design of Algorithms, is a prerequisite for many 300-level subjects in the Computing and Software Systems major.
INDICATIVE CONTENT
Topics include: justification of algorithm correctness; asymptotic and empirical analysis of algorithm performance; algorithms for sorting and searching, including fundamental data structures such as trees and hash tables; and graph algorithms.
Intended learning outcomes
On completion of this subject the student is expected to:
- Present arguments for the correctness or incorrectness of a given algorithm
- Reason about and evaluate the efficiency behaviour of a given algorithm
- Choose appropriate data structures and algorithms for a given problem
- Implement the chosen data structures and algorithms.
Generic skills
On completion of this subject, students should have developed the following skills:
- Application of knowledge of basic science and engineering fundamentals
- Effective communication about computational efficiency
- Capacity to reason and solve problems
- Ability to undertake problem identification, formulation and solution
- Programming competency
- Capacity for creativity and innovation
- Profound respect for truth and intellectual integrity, and for the ethics of scholarship.
Last updated: 7 September 2023
Eligibility and requirements
Prerequisites
Students must meet one of the following prerequisite options:
Option 1
Admission into the MC-SOFTENG Master of Software Engineering
Option 2
One of
Code | Name | Teaching period | Credit Points |
---|---|---|---|
COMP10002 | Foundations of Algorithms |
Semester 2 (Dual-Delivery - Parkville)
Semester 1 (Dual-Delivery - Parkville)
|
12.5 |
COMP20005 | Intro. to Numerical Computation in C |
Semester 1 (Dual-Delivery - Parkville)
Semester 2 (Dual-Delivery - Parkville)
|
12.5 |
AND
a minimum of 25 credit points of university-level mathematics
Students enrolling through VCE Algorithmics can take mathematics requirements concurrently
Corequisites
None
Non-allowed subjects
Students who complete this subject cannot also gain credit for
Code | Name | Teaching period | Credit Points |
---|---|---|---|
COMP20007 | Design of Algorithms | Semester 1 (Dual-Delivery - Parkville) |
12.5 |
COMP90038 | Algorithms and Complexity |
Semester 1 (Dual-Delivery - Parkville)
Semester 2 (Dual-Delivery - Parkville)
|
12.5 |
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: 7 September 2023
Assessment
Description | Timing | Percentage |
---|---|---|
Programming assignment 1 - Individual - 10% - due week 4 (Friday).
| Week 4 | 10% |
Programming assignment 2 - Individual - 15% - due Week 7(Friday).
| Week 7 | 15% |
Programming assignment 3 - Individual - 15% - due Week 12 (Friday).
| Week 12 | 15% |
One mid-semester test
| Week 8 | 10% |
Closed Book Exam - 50% - exam period
| During the examination period | 50% |
Additional details
Hurdle requirement: To pass the subject, students must obtain at least: 50% overall; 20/40 in project work; 30/60 in the mid-semester test and end-of-semester examination combined.
Intended Learning Outcomes (ILOs) 2, 3 and 4 are addressed in all assessment components. ILO 1 is primarily addressed in the second programming project and the final examination.
Last updated: 7 September 2023
Dates & times
- Semester 2
Principal coordinator Nir Lipovetzky Mode of delivery Dual-Delivery (Parkville) Contact hours 48 hours, comprising of two 1-hour lectures and one 2-hour workshop per week Total time commitment 170 hours Teaching period 25 July 2022 to 23 October 2022 Last self-enrol date 5 August 2022 Census date 31 August 2022 Last date to withdraw without fail 23 September 2022 Assessment period ends 18 November 2022 Semester 2 contact information
Time commitment details
170 hours
Last updated: 7 September 2023
Further information
- Texts
Prescribed texts
TBA
- Subject notes
LEARNING AND TEACHING METHODS
This subject involves two 1-hour lectures and one 2-hour workshop each week. Although lectures are largely delivered directly based on the slides, often there are in-class discussions and development of computer code. The workshops are a blend of tutorial theory questions and implementation of algorithms and data structures in C.
INDICATIVE KEY LEARNING RESOURCES
Students are provided with lecture slides, and sample and scaffolding computer code in the C language.
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.
- Related Handbook entries
This subject contributes to the following:
Type Name Informal specialisation Science Discipline subjects - new generation B-SCI Major Computer Science - Breadth options
This subject is available as breadth in the following courses:
- Bachelor of Arts
- Bachelor of Commerce
- Bachelor of Design
- Bachelor of Environments
- Bachelor of Fine Arts (Acting)
- Bachelor of Fine Arts (Animation)
- Bachelor of Fine Arts (Dance)
- Bachelor of Fine Arts (Film and Television)
- Bachelor of Fine Arts (Music Theatre)
- Bachelor of Fine Arts (Production)
- Bachelor of Fine Arts (Screenwriting)
- Bachelor of Fine Arts (Theatre)
- Bachelor of Fine Arts (Visual Art)
- Bachelor of Music
- 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: 7 September 2023