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
Prof. Lars Kulik
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: 22 March 2024
Eligibility and requirements
Prerequisites
EITHER
25 points of university-level Mathematics (ECON10005 Quantitative Methods 1 may be counted towards the 25 points), plus:
OR
Both of:
- VCE Algorithmics units 3/4
- Achieving at least 75% in the C proficiency test
(Students entering through VCE Algorithmics and C proficiency test 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 |
---|---|---|---|
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: 22 March 2024
Assessment
Additional details
- Two projects during semester, requiring approximately 30 - 35 hours or work, with the first (worth 10%) due at the start of week 6 and the second (worth 20%) due at the start of week 12. Intended Learning Outcomes, (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: 22 March 2024
Dates & times
- Semester 1
Coordinator Lars Kulik 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 4 March 2019 to 2 June 2019 Last self-enrol date 15 March 2019 Census date 31 March 2019 Last date to withdraw without fail 10 May 2019 Assessment period ends 28 June 2019 Semester 1 contact information
Prof. Lars Kulik
Time commitment details
170 hours
Last updated: 22 March 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 Science-credited subjects - new generation B-SCI 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
- 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