CSU33D05 – Data Structures and Algorithms

Module CodeCSU33D05
Module Name Data Structures and Algorithms
ECTS Weighting [1]5 ECTS
Semester TaughtSemester 1
Module Coordinator/s  Saif Ur Rehman Malik

Module Learning Outcomes

On successful completion of this module, students will be able to:

  1. Understand a range of fundamental data structures and algorithms, being able to discuss their advantages, disadvantages, and curiosities;
  2. 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;
  3. Program data structures and algorithms by hand;
  4. 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 ComponentBrief Description Learning Outcomes Addressed% of TotalWeek SetWeek Due
ExaminationOnline real-time exam (2 hours)LO1, LO2, LO3, LO4, LO540%N/AN/A
Programming assignmentAssignment 1LO1, LO2, LO3, LO415%35
Programming assignmentAssignment 2LO1, LO2, LO3, LO415%57
Programming assignmentAssignment 3LO1, LO2, LO3, LO415%79
Programming assignmentAssignment 4LO1, LO2, LO3, LO415%911

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
Lecture22 hours
Laboratory16.5 hours
Tutorial or seminar11 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

Module Website

Blackboard

[1] TEP Glossary

[2] TEP Guidelines on Workload and Assessment