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.
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.