COURSE OUTLINE

Session 5

Effective Sorting Algorithms
(quick and merge sort)

Session 6

Arithmetics Algorithms
(primality, GCD, LCM, modular arithmetics, quick exponentiation)

Session 1  

Arrays, Stacks, Queues

Session 3

Binary Search

Session 2

Linked Lists
(singly and doubly linked lists)

Session 4

Quadratic Sorting Algorithms
(selection, insertion, and bubble sort)

Session 10

String Algorithms
(substring search, polynomial hashing)

Session 9

Heap and Balanced Search Trees

Session 8

Search, Enumeration, and Generation of Combinatorial Objects

Session 7

Dynamic Programming
(1D and 2D dynamic programming tables)

Session 11

Graph Storage and Traversal
(depth and breadth first search)

Session 12

Shortest paths
(Dijkstra's, Bellman–Ford, and Bellman–Ford algorithms)

Session 15

Final exam

Session 14

Global optimization methods
(gradient descent, simulated annealing, genetic algorithms)

Session 13

Computational geometry
(lines, circles, polygons, convex hulls)