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 in first half year 2021.
About this subject
- Eligibility and requirements
- Dates and times
- Further information
- Timetable currently unavailable(opens in new window)
The 2021 timetable will be available on 8 December, and after this date you will be able to view the classes for all 2021 subjects. Timetable preference entry will open for Summer subjects on 8 December. Visit the class timetable page for more information on creating your timetable.
Please refer to the specific study period for contact information.
Semester 1 - Online
|Fees||Look up fees|
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.
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
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
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: 28 November 2020