This course is linked to F28PA Software Development A. The aim of this course is to introduce more programming techniques in a high-level language such as text processing, advanced error handling, and recursion. The course also covers abstract data types and fundamental data structures commonly used in programs such as stacks, queues, linked lists, search trees and heaps. The course also introduces unit testing in practice to familiarise students with software testing and debugging at the code level.
1. Introduction to Data Structures and ADTs (1.1 Abstract Data Types, Complexity)
2. Dynamic Structures 1: Stacks (2.1 Stacks and its Operations, Stack ADT)
3. Dynamic Structures 2: Queues (3.1 Queues and its Operations, Queue ADT)
4. Recursion (4.1 Concept of Recursion, Recursive Structure in ADTs)
5. Linked Data Structures (5.1 Linked Lists and its Operations, Doubly Linked Lists)
6. Algorithm I: Sorting Algorithms (6.1 Insertion, Bubble, Merge, and Quicksort)
7. Algorithm II: Searching Algorithms (7.1 Linear Search, Binary Search)
8. Tree Data Structures (8.1 Binary Search Trees, Tree Traversals)
9. Advanced Structures (9.1 Priority Queues, Tries)
10. Unit Testing (10.1 Unit Testing, Software Refactoring)
By the end of the course, students should be able to do the following:
Curriculum explorer: Click here
SCQF Level: 8
Credits: 15