Presentations are intended to be interactive discussions on the main subjects included in the lecture notes.
It is recommended to read the lecture notes before and come up with your own questions.
Lecture 01: Computational Problems
Defining computational problems
Classifying computational problems
Internal representation of data
From problem to algorithm to implementation
Lecture 02: Algorithm efficiency analysis
Correctness of an algorithm
Algorithm analysis. Worst case, best case, average
Asymptotic notations
Turing problem reductions
Lecture 03: Nondeterministic and Probabilistic Algorithms
Nondeterminnistic algorithms
Choice, success, failure
Probabilistic algorithms
Las Vegas algorithms
Monte Carlo algorithms
Appendix: Mathematical background, terminology and notations
Lecture 04: Probabilistic Analysis
Expected time for deterministic algorithms
Case studies:false
Hiring problem
Streaks
First occurrence in a list
Nuts and Bolts
Supplementary readings:
Phillip G Bradford. Matching nuts and bolts optimally.
UIUC CS 473:Algorithms (Spring 2017). Sorting nuts and bolts
Lecture 05: Domain Specific Algorithms (String Matching, KMP)
The string matching problem and variations
Motivation
Problem domain
The Naive Algorithm
Running Time
The KMP Algorithm
Updating the offset
Computing the longest proper border
Time Complexity
Preprocessing phase
Lecture 05: Domain Specific Algorithms (String Matching, Rabin-Karp, Boyer-Moore)
The Boyer-Moore Algorithm
Bad Character Rule
Good Suffix Rule
The Rabin-Karp Algorithm
Strings as numbers
Hash functions
Rolling has functions
Lectures 9, 10: NP-complete problems
Lectures 11: Backtracking and Banch & Bound (link on the title)
Algorithmic Paradigms
Backtracking
Optimization Problems
Branch & Bound
Lectures 12: Dynamic Programming
General Description
One-dimensional problems
Fibonacci
Longest Increasing Subsequence
Rod Cutting
General Approaches
Two-dimensional problem
Discrete Knapsack
[CLR2000] T.H. Cormen, C.E. Leiserson, R.L. Rivest: Introducere in Algoritmi, Computer Libris Agora, 2000.
[LC2008] Dorel Lucanu, Mitica Craus. Proiectarea algoritmilor. Polirom, 2008.