In the past I was involved in the following courses.
First course on algorithms and programming for math bachelor students.
Topics: running time, number representations, binary search, graphs, sorting, Gaussian elimination, spanning trees, matroids, dynamic programming, introduction to programming
Second course on algorithms and programming for math bachelor students.
Topics: data structures, Huffman codes, shortest paths, Turing machines, computability, complexity, object orientation
Introductory course for math bachelor and master students.
Topics: Simplex algorithm, LP duality, paths and trees, maximum flows, min-cost flows, maximum bipartite matchings, stable matchings, ellipsoid method, large-scale linear programming, sensitivity analysis
Advanced course for math bachelor and master students.
Topics: Branchings and arborescences, maximum matchings, minimum-cost perfect matchings, T-joins, matroids, total unimodularity, total dual integrality, Gomory-Chvátal cutting planes, branch-and-bound algorithm, Lagrangian dual, subgradient method