Handbook home
Foundations of Algorithms (COMP10002)
Undergraduate level 1Points: 12.5Dual-Delivery (Parkville)
Please refer to the return to campus page for more information on these delivery modes and students who can enrol in each mode based on their location.
About this subject
- Overview
- Eligibility and requirements
- Assessment
- Dates and times
- Further information
- Timetable(opens in new window)
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 - Dual-Delivery Semester 2 - Dual-Delivery |
---|---|
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: 7 September 2023