|Module Name||Data Structures and Algorithms|
|ECTS Weighting ||5 ECTS|
|Semester Taught||Semester 1|
|Module Coordinator/s||Prof Glenn Strong|
Module Learning Outcomes
On successful completion of this module, students will be able to:
- Understand a range of fundamental data structures and algorithms, being able to discuss their advantages, disadvantages, and curiosities;
- Decide on and design data structures and algorithms that are efficient and practicable for a particular software project, being able to reason about their costs and complexities;
- Program data structures and algorithms by hand;
- Know several methods to reason about and evaluate the complexity and performance of candidate solutions to computing problems.
To study well-established computing theory, with special consideration for sorting and searching problems. To develop strong, practical computer programming skills with a sound understanding of available compute and memory hardware resources.
Specific topics addressed in this module include:
- Sorting algorithms, searching algorithms.
- Arrays, lists, stacks, heaps, maps and hash tables, trees, graphs.
- “Big Oh” approximation, performance analysis techniques.
- C programming techniques. Memory allocation and management.
Teaching and Learning Methods
This module includes lectures, tutorials and programming labs, during which students can ask questions about their assignments and are marked.
|Assessment Component||Brief Description||Learning Outcomes Addressed||% of Total||Week Set||Week Due|
|Examination||Real-time exam (2 hours)||LO1, LO2, LO3, LO4, LO5||40%||N/A||N/A|
|Programming assignment||Assignment 1||LO1, LO2, LO3, LO4||15%||3||5|
|Programming assignment||Assignment 2||LO1, LO2, LO3, LO4||15%||5||7|
|Programming assignment||Assignment 3||LO1, LO2, LO3, LO4||15%||7||9|
|Programming assignment||Assignment 4||LO1, LO2, LO3, LO4||15%||9||11|
Real time exam – 2 hours, 100%
Contact Hours and Indicative Student Workload
|Contact Hours (scheduled hours per student over full module), broken down by:||49.5 hours|
|Tutorial or seminar||11 hours|
|Independent study (outside scheduled contact hours), broken down by:||66.5 hours|
|Preparation for classes and review of material (including preparation for examination, if applicable)||30.5 hours|
|Completion of assessments (including examination, if applicable)||36 hours|
|Total Hours||116 hours|
Recommended Reading List
Prerequisite modules: CSU22E03
Other/alternative non-module prerequisites: good working knowledge of C and/or C++
Thursday, 9am lecture: https://eu.bbcollab.com/guest/090de80880454ffe89a82a534f0d295e
Thursday, 11am lecture: https://eu.bbcollab.com/guest/e35ebe1130c24ddc90d35dfaa0689d9f