Teaching Responsibility

LJMU Schools involved in Delivery:

Computer Science and Mathematics

Learning Methods

Workshop

Module Offerings

5133COMP-SEP-CTY

Aims

This is a practical, applied Software Engineering module with the aim of introducing the student to the fundamentals of Abstract Data Types and complexity of operations on ADTs followed by an implementation-based exploration of common data structures and operations, their implementations and applications

Learning Outcomes

1.
Explain a range of fundamental data structures and their operations
2.
Analyse fundamental algorithms’ complexity as applied to a range of ADT implementations
3.
Evaluate data structures in a given problem domain
4.
Implement standard ADTs using both primitive language and library resources
5.
Synthesise appropriate algorithms and data structures to fulfil a problem specification

Module Content

Outline Syllabus:Abstract Data Types and common implementation strategies: Linear ADTs: Lists (Arrays, Linked Lists) Stacks, Queues Non-Linear ADTs: Trees, Binary Trees, BSTs Maps (ListMaps, BSTMaps, HashMaps) Graphs Algorithms for structure operations; insert, remove, retrieval Algorithms for structure navigation; search and sort Algorithm types: iterative and recursive Relationship between ADTs and computing fundamentals (e.g. Stack, Queue) Use of Big O notation to specify time complexity for simple algorithms Using a program debugger to monitor program state, and halt/control execution as required. Use of a program debugger to inspect the call stack and stack frames
Module Overview:
This is a practical, applied Software Engineering module with the aim of introducing the student to the fundamentals of Abstract Data Types and complexity of operations on ADTs followed by an implementation-based exploration of common data structures and operations, their implementations and applications This module is a technical, skills-focused module. 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. Basic operational familiarity with a debugger will be assumed but reinforced and built on during this module.
Additional Information:This module is a technical, skills-focused module. 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. Basic operational familiarity with a debugger will be assumed but reinforced and built on during this module.

Assessments

Portfolio

Report