#### Data Structures and Graph Algorithms, grades 8-9* (Online)

*Refers to the level of mathematics and not to the actual age.

#### Pre-requisites:

Prior experience with computer programming is required. Our enrichment course Computer Algorithms I is required. Alternatively, email the course Instructor as.algorithms@gmail.com for permission to register.

#### Course description:

This course is a sequel to the Computer Algorithms I course. Coding in this course will be done in C, with an option to use Python for home assignments. Prior experience with basic computer programming is recommended. Course will build upon Computer Algorithms I and introduce native, compound and abstract data types, data structures such as stacks and queues, and graph algorithms. Course also introduces searching and sorting algorithms, their complexities and correctness. We will use online platforms to run the code, thus installing software on your computer is not required.

The following topics will be covered:

- Algorithms review – flowchart and pseudocode
- Abstract Data Types – Stacks, Queues and Trees
- Implementation of Stacks, Queues and Trees (Coding)
- Matrices review – Representation of Adjacency matrix
- Examples of graph algorithms that could be covered:
- Minimal Spanning Tree – Prim’s and Kruskal algorithm
- Maximum Flow – Ford-Fulkerson algorithm
- Shortest path – Dijkstra’s algorithm

- Implementation of graph algorithms (Coding)
- Analysis of graph algorithms

**2024/25 Course Information**

**This course will not be offered in 2024/25, and instead will run in 2025/26.**

For details please write to as.algorithms@gmail.com.

****Please note we are unable to answer any enquiries by phone.****