Handbook home
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: 3 October 2024