Foundations of Algorithms (COMP10002)
Undergraduate level 1Points: 12.5On Campus (Parkville)
About this subject
Contact information
Semester 1
Semester 1: Dr Jianzhong Qi
email: jianzhong.qi@unimelb.edu.au
Semester 2: Professor Alistair Moffat
email: ammoffat@unimelb.edu.au
Semester 2
Semester 1: Dr Jianzhong Qi
email: jianzhong.qi@unimelb.edu.au
Semester 2: Professor Alistair Moffat
email: ammoffat@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)
- Basic sorting algorithms (such as selection sort, insertion sort, quicksort)
- Basic data structures (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: 20 March 2025
Eligibility and requirements
Prerequisites
One of the following subjects:
Code | Name | Teaching period | Credit Points |
---|---|---|---|
COMP10001 | Foundations of Computing |
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
Students cannot enrol in and gain credit for this subject and:
COMP20006
433-172 Algorithmic Problem Solving
433-152 Algorithmic Problem Solving
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: 20 March 2025
Assessment
Additional details
- Project work during semester, requiring approximately 30 - 35 hours of work, (30%), due in approximately Week 8 and Week 11
- One mid-semester test (10%), held in Week 5 or Week 6
- One two-hour end-of-semester examination (60%).
Hurdle requirement: To pass the subject, students must obtain at least:
- 50% overall
- 12/30 in project work
- 28/70 in the mid-semester test and end-of-semester written examination combined.
Intended Learning Outcomes (ILO) 1 is addressed in all components of assessment. ILO 2, ILO 3, ILO 4 and ILO 5 are assessed in the mid-semester test and in the examination. ILO 6 is addressed in the programming assignments.
Last updated: 20 March 2025
Dates & times
- Semester 1
Principal coordinator Jianzhong Qi 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 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
Semester 1: Dr Jianzhong Qi
email: jianzhong.qi@unimelb.edu.au
Semester 2: Professor Alistair Moffat
email: ammoffat@unimelb.edu.au - Semester 2
Principal coordinator Alistair Moffat 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 24 July 2017 to 22 October 2017 Last self-enrol date 4 August 2017 Census date 31 August 2017 Last date to withdraw without fail 22 September 2017 Assessment period ends 17 November 2017 Semester 2 contact information
Semester 1: Dr Jianzhong Qi
email: jianzhong.qi@unimelb.edu.au
Semester 2: Professor Alistair Moffat
email: ammoffat@unimelb.edu.au
Time commitment details
170 hours
Last updated: 20 March 2025
Further information
- Texts
- 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-credited subjects - new generation B-SCI and B-ENG. Informal specialisation Selective subjects for B-BMED Informal specialisation Bachelor of Design Elective Subjects - Breadth options
- 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.
Please note Single Subject Studies via Community Access Program is not available to student visa holders or applicants
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: 20 March 2025