CS2S560 - Data Structures and Algorithms with Object Oriented Programming 01 Sep 2022 - 31 Aug 2028 | Version 4

Associated Module Information

Module Code: CS2S560
Module Title: Data Structures and Algorithms with Object Oriented Programming
Faculty: Faculty of Computing, Engineering and Science
Faculty Group: Computing and Mathematical Sciences
Faculty Sub Group: Computer Science
Module Leader: Janusz Kulon
Module Team: Shiny Verghese, Christopher Tubb
First Intended Intake: SEP 2016 Final Year of Intake:
Date Closed:
Credit Value: 20 Credit Level: 5
Language: English
Percentage of Module Taught in Welsh: 0
Equivalent Module:
HECOS codes: 100960 - object-oriented programming
HECOS Code Weighting: 100

Document Version Information

Version 4
Valid From 01 Sep 2022
Valid To 31 Aug 2028

Module Aims

To examine common data structures, understand the algorithms that efficiently manipulate those data structures, and reinforce and extend understanding of object-oriented programming.

Content Summary

Data Structures and Algorithms: Generic containers such as lists, vectors and maps; recursion; binary search trees, AVL trees, tree traversal and balancing; priority queues; sort algorithms;

Models of Computation: sequential computation, finite state machines, regular expressions, models of parallel & distributed computation, complexity, time vs space complexity, big-O notation, np-hard problems, applied complexity

Problem Solving: defining a problem, finding a solution, recurrence, elegance vs efficiency, divide and conquer, dynamic programming, representations of problems as graphs and networks

Object-Oriented Programming & Design Patterns: OO design principles (abstraction, encapsulation, inheritance, composition, SOLID). Strategy, Decorator, Adapter, Mediator, Command, State, Factory, Singleton, Observer.

Learning and Teaching Methods

Activity Type Hours
Lecture 24
Practical classes and workshops 24
Independent Study 80
Directed Study 52
Problem / challenge based learning 20
Total Hours Selected 200

Learning Outcomes

# Learning Outcome
LO1 Demonstrate knowledge, comprehension and discernment in the efficient application of common data structures and algorithms, and collections.
LO2 Demonstrate knowledge, comprehension and discernment in the efficient application of object-oriented programming.

Module Requisites

N/A

Assessment Criteria

Assessment Category Assessment Type Description Duration Word Count Weight (%) Best of? Pass Mark
Asynchronous Assessment Practical Coursework 2 (Asynch) Implement design patterns using OO best practice 0 2000 50 No 40
Asynchronous Assessment Practical Coursework 1 (Asynch) Implement algorithms using OO best practice 0 2000 50 No 40

Assessment Matrix

Assessment Type Learning Outcomes
LO1 LO2
Practical Coursework 2 (Asynch)
Practical Coursework 1 (Asynch)

Reading List

Design patterns : elements of reusable object-oriented software: Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides. Addison Wesley (Latest Edition). ISBN-13: 978-0201633610

Data Structures and Algorithms in C++: Adam Drozdek, South-Western College Publishing (Latest Edition). ISBN-13: 978-1133613053

Introduction to Algorithms: T Cormen, C Leiserson, R Rivest, C Stein, MIT Press (Latest Edition). ISBN-13: 978-0262533058

The Pragmatic Programmer: Andrew Hunt, David Thomas, Addison Wesley (Latest Edition). ISBN-13: 978-0201616224