Module Code | CSU33D05 |
Module Name | Data Structures and Algorithms |
ECTS Weighting [1] | 5 ECTS |
Semester Taught | Semester 1 |
Module Coordinator/s | Saif Ur Rehman Malik |
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.
Module Content
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 Details
Assessment Component | Brief Description | Learning Outcomes Addressed | % of Total | Week Set | Week Due |
Examination | Online 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 |
Reassessment Details
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 |
Lecture | 22 hours |
Laboratory | 16.5 hours |
Tutorial or seminar | 11 hours |
Other | 0 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
N/A
Module Pre-requisites
Prerequisite modules: CSU22E03
Other/alternative non-module prerequisites: good working knowledge of C and/or C++
Module Co-requisites
N/A