Course Information Package
|Course Unit Title||DATA STRUCTURES|
|Course Unit Code||ACSC288|
|Course Unit Details||BSc Computer Engineering (Required Courses) - BSc Computer Science (Required Courses) -|
|Number of ECTS credits allocated||5|
|Learning Outcomes of the course unit||By the end of the course, the students should be able to:|
|Mode of Delivery||Face-to-face|
|Recommended optional program components||NONE|
Part 1: Data representation under imperative programming.
Data, data representation and data storage. Static data types. Memory requirements and implications.
Part 2: Dynamic Data and pointer programming
Pointer programming. Construction of dynamic data in C - new and delete operators. Persistence of dynamic memory. Memory Deallocation. Dynamic (vectors) vs static arrays.
Part 3: Dynamic Linked Lists
Development of dynamic linked lists. Basic list operations (append, delete, insert, etc). Implementation of linked lists and performance issues. Comparison with arrays. Types of linked lists: circular linked lists, double linked lists.
Part 4: Linear Abstract Data Types
Implementing abstract types. Stacks and Queues. Dynamic and static implementations and performance considerations. Applications of stacks and queues.
Part 5: Multidimensional Data Structures
Two-dimensional linked lists. Trees: Implementation of generic trees and applications. Binary trees and implementations. Special binary trees: Heaps, Binary search trees. Hash tables.
Part 6: Introduction to Algorithmic ComplexityWhat is algorithmic complexity. Tractability. Investigation of performance on general problems such as sorting and searching. Investigation of ADTs provided by the Standard Template Library (vector, maps, multimaps, valarray, sets, etc).
|Recommended and/or required reading:|
|Planned learning activities and teaching methods|
The module will combine theoretical understanding with practical skill acquisition. Delivery will be based on 2 period lecturing and 2 laboratory periods. Every one or two weeks tutorial exercises will be provided to students that cover the concepts addressed. Laboratory work is based on programming using the C programming language.The course material (notes, exercises, forum, etc) is maintained on the university’s e-learning platform
|Assessment methods and criteria|
|Language of instruction||English|