This module introduces the abstract behaviour of the fundamental linear data structures, their associated algorithms and alternative implementations. A description, analysis and comparison of the classic algorithms for the common problem of sorting and searching is also included as are the techniques involved in devising, writing and computing the efficiency of algorithms.
Overview of the role of data structures; understanding the utilising the Collection API; nature of abstraction and ADT specifications; Stack, Queue and List ADTs and their implementation; iterations vs recursion; sorting and searching; algorithm complexity and O-notation;
Overview of the role of data structures.
Definition and roles of data structures in programming.
Understanding and utilising collection API.
Understanding and using building block collection in Python such as List. Using this collection to implement the other collections/data structures.
Stack, Queue and List ADTs and their implementation
Presenting the structures and behavior/operations of the mentioned ADT. Implementing Stack and Queue using List and Linked List.
Iterations vs recursion
Presenting recursion thinking and recursion functions. The similarity and difference between iteration and recursion.
Sorting and searching
Different algorithms for sorting data with and without recursion. Linear search and binary search algorithms.
Algorithm complexity and O-notation
Analysis the complexity of algorithms using Big O- Notation
This module will be taught using 2-hour weekly lectures and 2-hour practical sessions.
The lectures will provide theoretical material which will be underpinned by many coding examples to demonstrate the use of this material. The practical sessions will provide students with supervised practice time in the lab using appropriate exercises
|Module Content & Assessment