Teaching Responsibility

LJMU Schools involved in Delivery:

Computer Science and Mathematics

Learning Methods

Lecture

Practical

Module Offerings

5207COMP-JAN-CTY

Aims

To study abstract data types (ADTs) and common implementations of these data types. To develop applications using the STL containers in order to implement . Games software in a group setting, where each member is in charge of a specific role and set of algorithmic and data requirements. To build on programming skills through implementation of algorithms and use of appropriate data structures in problem solving for games development. To recognise and specify how complexity of operations on these ADTs and their overall performance characteristics are affected by both the ADT in question and its implementation strategy.

Learning Outcomes

1.
Apply appropriate data structures in order to solve specific sub problems related to game development within a specific game’s development role.
2.
As a group, enhance a specified games software design by applying data structures in tandem with appropriate algorithmic processing.
3.
Appraise a range of fundamental data structures and analyse fundamental characteristics of algorithms.
4.
Define and discuss the syntactic and semantic language constructs required to use particular data structures and their appropriate algorithms.

Module Content

Outline Syllabus:Identifying how data structures are shared between different games domains. Constructing Functional Requirements for an entire game using data structure techniques Identifying shared processing, algorithms and data requirements Distribution of Algorithmic Processing across a games requirements specification. Definition and Principles of Abstract Data Types and Concrete Implementations. STL Algorithms, Iterators and Containers The relationship between Discrete Mathematics and Data Structures. Use of Templates in the STL Hardware Architectures and their practical implications on Data Structure usage and Algorithmic Processing. CPU vs GPU Data Structures, CPU to GPU Coordination, Data Parallelism and SIMD Processing. Modern Language constructs for memory management and aliased data structures: smart, shared and weak pointers vs Raw types. Games-Specific Data Structures Algorithms for creating, modifying and processing data structures. Algorithm types: iterative and recursive Reasoning about the performance of Algorithms. Aggregate ADTs Linear ADTs Hierarchical ADTs Associative ADTs Relationship between ADTs and computing fundamentals (e.g. Stack, Queue) Logic and Bitwise Processing. Profiling and Debugging a program’s structure. Modern Techniques for Algorithmic Control: Lambdas, Move Semantics, Function Binding
Module Overview:
This module is a technical, skills-focused module. You will be introduced to Data Structures as Abstract Data Types and cover the fundamentals of discrete mathematics which provide the foundations for data structure design and implementation. You will gain exposure of how to create your own implementation in games industry standard languages and their standard libraries. Each structure will be covered from a game programming perspective, demonstrating real-world usage within game engines and game applications. It will require previous experience in programming, building on existing programming-based skills such as problem/functional decomposition and the use of an IDE to develop and test programs.
Additional Information:This module is a technical, skills-focused module. Students will be introduced to Data Structures as Abstract Data Types and cover the fundamentals of discrete mathematics which provide the foundations for data structure design and implementation. Students will gain exposure of how to create their own implementation in games industry standard languages and their standard libraries. Each structure will be covered from a game programming perspective, demonstrating real-world usage within game engines and game applications. It will require previous experience in programming; It will build on existing programming-based skills such as problem / functional decomposition and the use of an IDE to develop and test programs.

Assessments

Report

Centralised Exam