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

Associated Module Information

Module Code: CS4D768
Module Title: Object Oriented Programming with Data Structures and Algorithms
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, Elliot Naylor
First Intended Intake: JUL 2018 Final Year of Intake:
Date Closed:
Credit Value: 40 Credit Level: 7
Language: English
Percentage of Module Taught in Welsh: 0
Equivalent Module:
HECOS codes: 100956 - programming
HECOS Code Weighting: 100

Document Version Information

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

Module Aims

To obtain advanced knowledge and practical skills in the analysis, synthesis, design and implementation of advanced algorithms and data structures.

Content Summary

Data Structures:

Implementation and performance analysis of advanced data structures such as: Queues, B-trees, Oct-tree, Quad-trees, AVL, binary space partitioning grids or multi-resolution maps

Choosing and working with advanced data structures and recognizing which data structure is the best to use to solve a particular problem

Problem Solving and Algorithms:

Developing object-oriented solutions to complex problems involving multiple classes and design patterns

Application of secure coding principles and practices to non-trivial programming problems

Analysis of efficiency and computational complexity of various algorithms such as: searching, sorting, recursive dimensional clustering, Gilbert–Johnson–Keerthi algorithm

Modelling simple physics e.g. using Euler and Runge–Kutta integration techniques and principle of force accumulation

Analysis and development of solutions to complex problems such as: real time vehicle motion, spatial partitioning and collision detection

Learning and Teaching Methods

Activity Type Hours
Lecture 48
Practical classes and workshops 48
Independent Study 160
Directed Study 144
Total Hours Selected 400

Learning Outcomes

# Learning Outcome
LO1 Demonstrate a critical understanding of the concepts associated with applying and implementing a variety of data structures and algorithms
LO2 Create data structures and appraise their role of in producing software solutions to non-trivial programming problems

Module Requisites

N/A

Assessment Criteria

Assessment Category Assessment Type Description Duration Word Count Weight (%) Best of? Pass Mark
Asynchronous Assessment Practical Written Work 2 Apply knowledge to the solution of a problem and report on findings 0 3000 50 No 40
Asynchronous Assessment Practical Written Work 1 Apply knowledge to the solution of a problem and report on findings 0 3000 50 No 40

Assessment Matrix

Assessment Type Learning Outcomes
LO1 LO2
Practical Written Work 2
Practical Written Work 1

Reading List

Neapolitan R., (2014) Foundations Of Algorithms, Jones & Bartlett Learning; ISBN-13: 978-1284049190.

Adam Drozdek (2012) Data Structures and Algorithms in C++, : Course Technology, ISBN-13: 978-1133608424

Savitch W, (2014), Problem Solving with C++, 9th Edition, Addison-Wesley, ISBN-13: 978-1292018249

Lengyel E. (2011), Mathematics for 3D Game Programming and Computer Graphics Hardcover – 22 Jun 2011, ISBN-13: 978-1435458864