[[https://intranet.fel.cvut.cz/cz/education/rozvrhy-ng.B251/public/html/predmety/43/56/p4356206.html|FEE timetable]] [[https://intranet.fel.cvut.cz/cz/education/rozvrhy-ng.B251/public/html/predmety/43/56/fsl-p4356206.html|ALG students]] [[https://cw.felk.cvut.cz/brute/|Upload system BRUTE]] ====== Lectures ====== Lectures are in KN:G-205 between 14:45 and 16:15. ===== Lectures timetable ===== ^ Lecture^ Day ^ Topics ^ Slides ^ | **1.** | 22.9. | Order of growth of functions, asymptotic complexity | {{:courses:be5b33alg:alg01_2025.pdf | alg01_2025}} \\ {{ :courses:be5b33alg:alge01.pdf | alg01a}} \\ {{:courses:be5b33alg:lesson01_2019.pdf | alg01b}} | | **2.** | 29.9. | Trees, binary trees, recursion | {{:courses:be5b33alg:alg02_2025.pdf | alg02_2025}} \\ {{ :courses:be5b33alg:alg03_2011e_py.pdf | alg02 }} | | **3.** | 6.10. | More recursion and backtrack examples | {{:courses:be5b33alg:alg03_2025.pdf | alg03_2025}} \\ {{ :courses:be5b33alg:recur_examples.py | recursion examples }}, {{ :courses:be5b33alg:packitems.py | backtrack examples }} {{ :courses:be5b33alg:coins.py |coin change}}, {{ :courses:be5b33alg:queenspuzzle.py | N queens}}, {{ :courses:be5b33alg:tiles.py | rectangle tiling}}| | **4.** | 13.10. | Graph, graph representation, basic graph processing | {{ :courses:be5b33alg:alg04_2025.pdf | alg04_2025 }} \\ {{ :courses:be5b33alg:graphs_intro.pdf | graphs }} \\ {{ :courses:be5b33alg:graphviz_intro.pdf | Graphviz support}} \\ {{ :courses:be5b33alg:graphbasic.py | graph representation }}, {{ :courses:be5b33alg:graphweighted.py | weighted graphs }} | | **5.** | 20.10. | Queue, Stack, Breadth/Depth First Search | {{ :courses:be5b33alg:alg05_2025.pdf | alg05_2025 }} \\ {{:courses:be5b33alg:alg04_2011exten_py.pdf| alg05_py}} \\ [[https://www.youtube.com/watch?v=NUgMa5coCoE|DFS animation]], [[https://www.youtube.com/watch?v=x-VTfcmrLEQ|BFS animation]], [[https://www.youtube.com/watch?v=VsEla1bVVro|BFS and DFS side by side!]] | | **6.** | 27.10. | Array search, Binary search tree | {{ :courses:be5b33alg:alg05_2011e_py.pdf | alg06_py}} | | **7.** | 3.11. | AVL and B- trees | {{:courses:be5b33alg:alg06_2011e.pdf|alg07 }} | | **8.** | 10.11. | Sorting algorithms I | {{ :courses:be5b33alg:alg07_2011e_py.pdf | alg08_py}} | | ** >> /dev/null ** | 17.11. | Public holiday | celebrate Freedom and Democracy Day | | **9.** | 24.11. | Sorting algorithms II | {{:courses:be5b33alg:alg08_2011e_py.pdf| alg09a_py }}, {{:courses:be5b33alg:alg09_2011e_py.pdf| alg09b_py }} | | **10.** | 1.12. | Dynamic programming I | {{:courses:be5b33alg:alg10_2015_e_py.pdf| alg11a_py}} \\ {{:courses:be5b33alg:alg10_2015b_e_py.pdf| alg11b_py}} | | **11.** | 8.12. | Dynamic programming II | {{:courses:be5b33alg:alg10_2015d_e_py.pdf | alg12a_py}} \\ {{:courses:be5b33alg:alg10_2015c_e_py.pdf| alg12b_py}}| | **12.** | 15.12. | Complexity of recursive algorithms, Master theorem | {{ :courses:be5b33alg:alg02e.pdf | alg10}} | | **13.** | 5.1. | Hashing I & II | {{ :courses:be5b33alg:alg13e.pdf | alg13}} {{ :courses:be5b33alg:alg14e.pdf |alg14a}} {{ :courses:be5b33alg:alg13_2015b_e.pdf | alg14b}} | Monday 17. 11. 2025 is a public holiday to commemorate both [[https://en.wikipedia.org/wiki/Velvet_Revolution|Velvet Revolution of 1989]] and the storming of Czech universities by Nazis in 1939, which led to 17.11. become [[https://en.wikipedia.org/wiki/International_Students%27_Day|International Students' Day]]. **Source code examples for particular lectures** 02 - {{ :courses:be5b33alg:rec.py | basic recursion }}, {{ :courses:be5b33alg:rec2.py | same examples, more insight }} 03 - {{:courses:be5b33alg:binarytree.py| binary tree, In-pre-Post order, recursion}}, {{ :courses:be5b33alg:binarytree2.py | alternative: binary tree in just 1D arrays}} ( {{ :courses:be5b33alg:alg03_2011e.ppt | slides ppt }} {{ :courses:be5b33alg:alg03_2011e_py.ppt | slides-python pptx}} ) 04/05 - DFS/BFS with and without nodes as objects {{:courses:be5b33alg:graph.py| graph.py, with objects}}, {{ :courses:be5b33alg:graph2.py |graph2.py, no objects }} 06 - {{:courses:be5b33alg:magicsquare.py| backtrack example - magic square}} 07, 08 - {{:courses:be5b33alg:sortsx2.py| Sorts - Insert, Select, Bubble, Quick, Merge, Heap, Radix, Counting}}, [[https://www.toptal.com/developers/sorting-algorithms|Sorting speed visually]]