Handbook home
Foundations of Algorithms (COMP10002)
Undergraduate level 1Points: 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
Jianzhong Qi
jianzhong.qi@unimelb.edu.au
Shaanan Cohney
cohneys@unimelb.edu.au
Semester 2
Alistair Moffat
ammoffat@unimelb.edu.au
Artem Polyvyanyy
artem.polyvyanyy@unimelb.edu.au
Overview
Availability | Semester 1 Semester 2 |
---|---|
Fees | Look up fees |
AIMS
In many projects, it is important for programmers to have fine control over low-level details of program execution, and to be able to assess the cost of a design decision on likely overall program performance. This subject introduces students to a system programming language that gives programmers this kind of control, explores a range of standard data structures and algorithmic techniques, and shows how to apply them to frequently encountered problems.
INDICATIVE CONTENT
- Introduction to computer organization
- Machine level representation of data
- Programming in a system programming language
- Pointers and dynamic memory allocation
- Program semantics and arguments about correctness
- Induction and recursion
- Basic searching algorithms (linear and binary)
- String algorithms (such as KMP, BMH, and index-based techniques)
- Basic sorting algorithms (such as selection sort, insertion sort, quicksort)
- Basic data structures (such as binary search trees and hash tables)
- Asymptotic complexity
- Standard software development tools such as debuggers.
Intended learning outcomes
INTENDED LEARNING OUTCOMES (ILO)
On completion of this subject the student is expected to:
- Read, write and debug typical small-scale programs in a system programming language such as C
- Discuss, analyse, implement, and apply standard data structures such as linked lists, binary search trees, and hash tables
- Discuss, analyse, and apply a range of sorting and searching algorithms
- Present logical arguments for the correctness of a given algorithm
- Choose between different algorithms for simple problems by analysing their complexity
- Use a command line interface and standard development tools for programming
Generic skills
On completion of this subject students should have developed the following skills:
- Ability to undertake problem identification, formulation and solution
- Capacity for independent critical thought, rational inquiry and self-directed learning
- Profound respect for truth and intellectual integrity, and for the ethics of scholarship
- An ability to apply knowledge of basic science and engineering fundamentals.
Last updated: 11 April 2024
Eligibility and requirements
Prerequisites
One of
Code | Name | Teaching period | Credit Points |
---|---|---|---|
COMP10001 | Foundations of Computing |
Summer Term (On Campus - Parkville)
Semester 1 (On Campus - Parkville)
Semester 2 (On Campus - Parkville)
|
12.5 |
COMP10003 | Media Computation | Semester 1 (On Campus - Parkville) |
12.5 |
OR
Achieving at least 75% in a programming competency test.
Corequisites
None
Non-allowed subjects
Code | Name | Teaching period | Credit Points |
---|---|---|---|
COMP20005 | Intro. to Numerical Computation in C |
Semester 2 (On Campus - Parkville)
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: 11 April 2024
Assessment
Description | Timing | Percentage |
---|---|---|
Problem Sets - 1-Hour (each). Week 2 to Week 9. Each student will be required to complete five exercises out of a total of eight made available, one associated with each of these eight weeks' workshop classes.
| From Week 2 to Week 9 | 5% |
Quiz, held in Week 5 or Week 6.
| Mid semester | 15% |
Two programming Assignments, 20% each, 20-30 hours each.
| Week 8 and 11 | 40% |
Exam
| During the examination period | 40% |
Additional details
Hurdle requirement:
- 16/40 in the programming assignments and;
- 22/55 in the mid-semester quiz and end-of-semester written examination combined.
Students are advised that the usual 50% threshold for passing the subject still applies
Last updated: 11 April 2024
Dates & times
- Semester 1
Principal coordinator Jianzhong Qi Coordinator Shaanan Cohney Mode of delivery On Campus (Parkville) Contact hours 60 hours, comprising of three 1-hour lectures and one 2-hour workshop per week Total time commitment 170 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
Jianzhong Qi
jianzhong.qi@unimelb.edu.au
Shaanan Cohney
cohneys@unimelb.edu.au - Semester 2
Principal coordinator Alistair Moffat Coordinator Artem Polyvyanyy Mode of delivery On Campus (Parkville) Contact hours 60 hours, comprising of three 1-hour lectures and one 2-hour workshop per week Total time commitment 170 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
Alistair Moffat
ammoffat@unimelb.edu.au
Artem Polyvyanyy
artem.polyvyanyy@unimelb.edu.au
Time commitment details
170 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).
Subjects withdrawn after the census date (including up to the ‘last day to withdraw without fail’) count toward the Student Learning Entitlement.
Last updated: 11 April 2024
Further information
- Texts
Prescribed texts
None
- Subject notes
This subject is available for science credit to students enrolled in the BSc. Students undertaking this subject will require regular access to the internet.
LEARNING AND TEACHING METHODS
The subject will be delivered through a combination of lectures, programming workshops, and programming exercises and assessed programming assignments. Students will also be expected to develop and submit programming assignments for assessment.
INDICATIVE KEY LEARNING RESOURCES
Students will have access to lecture notes and lecture slides, and will be expected to own a copy of the textbook nominated by the coordinator. Other guidance will be provided via the LMS.
CAREERS / INDUSTRY LINKS
Programming competencies are a critical part of a range of career pathways, including in IT, engineering, and mathematics. In addition, an understanding of the fundamental nature of computation is a key enabler across all science discipline areas, including genetics and physics.
- Related Handbook entries
This subject contributes to the following:
Type Name Course Master of Science (Mathematics and Statistics) Informal specialisation Science Discipline subjects - new generation B-SCI - 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.
- 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: 11 April 2024