Handbook home
Algorithms and Data Structures (COMP20003)
Undergraduate level 2Points: 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
Semester 2
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 2 |
---|---|
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
INTENDED LEARNING OUTCOMES (ILO)
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: 22 March 2024
Eligibility and requirements
Prerequisites
Admission to the Master of Engineering (Software) or (Software/business) programs
OR
25 points of university-level mathematics* and one of the following:
VCE Algorithmics units 3/4
COMP20006 Programming the Machine
Code | Name | Teaching period | Credit Points |
---|---|---|---|
COMP20005 | Engineering Computation |
Semester 1 (On Campus - Parkville)
Semester 2 (On Campus - Parkville)
|
12.5 |
COMP10002 | Foundations of Algorithms |
Semester 2 (On Campus - Parkville)
Semester 1 (On Campus - Parkville)
|
12.5 |
*Students entering COMP20003 through VCE Algorithmics can take mathematics requirements concurrently.
Corequisites
None
Non-allowed subjects
Students cannot enrol in and gain credit for this subject and:
Code | Name | Teaching period | Credit Points |
---|---|---|---|
COMP90038 | Algorithms and Complexity |
Semester 1 (On Campus - Parkville)
Semester 2 (On Campus - Parkville)
|
12.5 |
COMP20007 | Design of Algorithms | Semester 1 (On Campus - 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: 22 March 2024
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 |
---|---|---|
Programming project work during semester, due around weeks 5 and 11.
| From Week 5 to Week 11 | 30% |
One mid-semester test
| Mid semester | 10% |
An end-of-semester written examination.
| End of semester | 60% |
Additional details
Hurdle requirement: To pass the subject, students must obtain at least: 50% overall; 15/30 in project work; 35/70 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: 22 March 2024
Dates & times
- Semester 2
Principal coordinator Nir Lipovetzky Mode of delivery On Campus (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 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 Semester 2 contact information
Time commitment details
170 hours
Last updated: 22 March 2024
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-credited subjects - new generation B-SCI Informal specialisation Selective subjects for B-BMED 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 (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: 22 March 2024