Reading Assignment: (use a combination of LLMs, youtube, and any
other visualisation materials.)
Counting and Probability
Counting
5.1 Basics Principles
5.1.1. The Rule of Sum.
5.1.2. The Rule of Product.
5.1.3. The Inclusion-Exclusion Principle.
5.2 Combinatorics
5.2.1. Permutations.
5.2.2. Combinations. (Be in position to explain the difference between permutations
and combinations)
5.3.1. Permutations with Repeated Elements. (Find and workout numerical examples)
5.3.2. Combinations with Repetition. (Find and workout numerical examples)
5.5 The Pigeonhole Principle (Be in position to explain the concept)
Probability (Be in position to explain each of these concepts and workout examples)
6.1.1. Introduction.
6.1.2. Probability Function.
6.1.3. Properties of probability.
6.1.4. Conditional Probability.
6.1.5. Independent Events.
Graphs
1. Introduction to Graph Theory
Definition of Graphs: Basic terminology (vertices, edges, degree, adjacency, etc.)
Examples of graphs
Types of Graphs:
● Undirected vs. directed graphs
● Complete K graphs
● Bipartite graphs
● Sub-graphs
● A cycle, a path
Graph Representation:
● Adjacency matrix
● Adjacency list
● Edge list
2. Graph Traversal Algorithms
● Depth-First Search (DFS)
● Breadth-First Search (BFS)
● Applications of DFS and BFS in solving problems like connected components,
pathfinding, and cycle detection
3. Shortest Path Algorithms
● Single-Source Shortest Path:
○ Dijkstra’s Algorithm
4. Applications of Graphs
● Social Networks: Graphs in social network analysis
● Web and Hyperlinks: PageRank algorithm basics (how Google ranks pages)
Future reading (i.e won’t be examined)
5. Trees as a Special Type of Graph
● Definition and Properties of Trees:
○ Connected, acyclic graphs
○ Rooted and unrooted trees
● Types of Trees:
○ Binary trees, binary search trees
○ AVL trees, red-black trees (basic properties)
○ B-trees and their uses in databases (overview)
○ Trie (prefix trees) and applications in string processing
● Tree Traversals:
○ Preorder, inorder, and postorder traversals
○ Level-order traversal
● Recursive vs. Iterative Traversal Techniques
6. Spanning Trees
● Definition of a Spanning Tree: Basic properties
● Minimum Spanning Tree (MST):
○ Kruskal’s Algorithm
○ Prim’s Algorithm
● Applications of MST in network design and other optimization problems