This course is devoted to mathematical aspects laying at the basis of major programming theories.
In this course we will cover the following fundamental topics:
- Number representation in computer
- Linear algebra basics: vectors and matrices. And their role in computations.
- Graphs and trees.
- Algorithm complexity analysis. Big-O notation.
- Algorithmic strategies with connection to programming:
- Recurrence relations and recursion in programs.
- Brute force and it's practical improvements.
- Heuristic algoritms.
- Greedy algorithms and matroids.
- Formal models.
- Finite State Automata.
- Languages and Grammatics.
Original plan is located here.