Handbook home
Design of Algorithms (COMP20007)
Undergraduate level 2Points: 12.5On Campus (Parkville)
About this subject
- Overview
- Eligibility and requirements
- Assessment
- Dates and times
- Further information
- Timetable(opens in new window)
Contact information
Semester 1
Professor Justin Zobel or Dr Antonette Mendoza
Email - jzobel@unimelb.edu.au or mendoza@unimelb.edu.au
Overview
Availability | Semester 1 |
---|---|
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. This subject will cover some of 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.
INDICATIVE CONTENT
Sample projects are: approximate string matching for a translation memory, involving sorting and comparison of dynamic programming, branch-and-bound search and brute-force search using a variety of data structures (e.g. arrays, hash tables, tries); speech synthesis based on a pronouncing dictionary and pre-prepared grapheme-phoneme alignment data, based on parsing of the alignment data, hashing of variable length n-grams, and a variety of models for predicting the phoneme(s) associated with a given phoneme sequence (e.g. a simple unigram baseline or a hidden Markov model).
Intended learning outcomes
INTENDED LEARNING OUTCOMES (ILO)
On completion of this subject the student is expected to:
- Read, write and debug graph algorithms, advanced sorting algorithms, dynamic programs and greedy algorithms
- Read, write and debug code using intermediate data structures
- Choose between different algorithms for intermediate problems by analysing their complexity
- Read, write and debug typical multi-module programs in a system programming language such as C
Generic skills
On completion of this subject, students should have developed the following skills:
- An ability to apply knowledge of basic science and engineering fundamentals
- An ability to undertake problem identification, formulation and solution
- The capacity to solve problems, including the collection and evaluation of information
- The capacity for critical and independent thought and reflection
- An expectation of the need to undertake lifelong learning, and the capacity to do so.
Last updated: 11 April 2024
Eligibility and requirements
Prerequisites
25 points of university-level Mathematics
AND
Code | Name | Teaching period | Credit Points |
---|---|---|---|
COMP10002 | Foundations of Algorithms |
Semester 1 (On Campus - Parkville)
Semester 2 (On Campus - Parkville)
|
12.5 |
OR
VCE Algorithmics units 3/4
Plus achieving at least 75% in the C proficinecy test
*Students entering COMP20007 through VCE Algorithmics and C proficiency test cantake 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 |
---|---|---|---|
COMP20003 | Algorithms and Data Structures | Semester 2 (On Campus - Parkville) |
12.5 |
COMP90038 | Algorithms and Complexity |
Semester 2 (On Campus - Parkville)
Semester 1 (On Campus - Parkville)
|
12.5 |
433-253 Algorithms and Data Structures
433 298 Algorithms and Data Structures
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: 11 April 2024
Assessment
Additional details
- A two stage project during semester, requiring approximately 30 - 35 hours or work, with the first stage due in week 4 and the second stage due in week 10 (30%). ILOs 1 to 4 are addressed by the project.
- One 45 minute mid-semester test (10%). ILOs 1 and 3 are addressed in the test.
- One 3-hour end-of-semester written examination (60%). ILOs 1 to 3 are addressed in the exam.
Hurdle requirement: To pass the subject, students must obtain at least:
- 50% overall
- 15/30 in project work
- And 35/70 in the mid-semester test and end-of-semester written examination combined.
Intended Learning Outcomes (ILOs) 1 - 4 are addressed through the projects and in workshops. ILOs 1 - 3 are assessed in the mid-semester test and the final exam.
Last updated: 11 April 2024
Dates & times
- Semester 1
Principal coordinators Justin Zobel and Antonette Mendoza 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 27 February 2017 to 28 May 2017 Last self-enrol date 10 March 2017 Census date 31 March 2017 Last date to withdraw without fail 5 May 2017 Assessment period ends 23 June 2017 Semester 1 contact information
Professor Justin Zobel or Dr Antonette Mendoza
Email - jzobel@unimelb.edu.au or mendoza@unimelb.edu.au
Time commitment details
170 hours
Last updated: 11 April 2024
Further information
- Texts
Prescribed texts
There are no specifically prescribed or recommended texts for this subject.
- Subject notes
LEARNING AND TEACHING METHODS
The subject is delivered through a combination of lectures and workshops (combination of tutorial and individual/group work in a computer lab). The subject consolidates the introductory C programming exposure students will have attained through COMP10002 Foundations of Algorithms or COMP20006 Programming the Machine.
INDICATIVE KEY LEARNING RESOURCES
Students have access to lecture notes, lecture slides and tutorial worksheets. The subject LMS site also contains links to recommended resources relating to programming and algorithmics, and advanced problems for students who want to extend themselves.
CAREERS / INDUSTRY LINKS
The subject provides students with intermediate-level, multi-module programming experience in C, and hands-on practicum with algorithmic analysis and development. It is highly relevant to any career involving “big data”, and covers the staple of technical interviews by companies such as Google, Microsoft and Amazon. There is every expectation that the subject will incorporate guest lecture(s) from leading figures in algorithmics.
- Related Handbook entries
This subject contributes to the following:
Type Name Informal specialisation Computer Science Informal specialisation Science-credited subjects - new generation B-SCI and B-ENG. Informal specialisation Selective subjects for B-BMED Informal specialisation Bachelor of Design Elective Subjects Major Computer Science - Breadth options
This subject is available as breadth in the following courses:
- 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
Last updated: 11 April 2024