====== Přednášky ====== **Vyučující:** [[http://cmp.felk.cvut.cz/~kybic/|Jan Kybic]] /* a [[http://mrs.felk.cvut.cz/people/petr-stepan|Petr Štěpán]] */ Přednášky se budou konat v pondělí, v místnosti KN:E-107 od 9:15. /* Přednášky budou distanční kvůli COVID. */ Materiály k jednotlivým přednáškám budu postupně aktualizovat a doplňovat. Vše budu umisťovat na tuto stránku, tak aby to bylo pro vás připraveno nejpozději v době plánovaného konání přednášky (v pondělí od 9:15). Pokud byste měli k látce jakékoli dotazy, [[courses:b3b33alp:start|obraťte se]] na mne. /* Přednášky budou vysílány v původně plánovaném čase, t.j. v pondělí v 9:15. pomocí aplikace [[https://bigbluebutton.org/|BigBlueButton]]. Odkaz na připojení jste dostali emailem, nebo ho naleznete v aplikaci [[https://cw.felk.cvut.cz/brute|BRUTE]], na přehledové stránce předmětu. Zejména připravím videa s komentovanou verzí prezentace, případně odkazy na externí zdroje atp. */ Podívejte se i na [[courses:b3b33alp:literatura|odkazy na literaturu]]. Nezapomeňte, že učit se programovací jazyky je podobné jako učit se cizí jazyky, je potřeba je procvičovat. Programovat se naučíte nejlépe tak, že bude programovat. Řešit můžete problémy zadané na cvičení, problémy které si sami vymyslíte, i ty, které najdete na internetu (např. [[https://www.practicepython.org/|Practice Python]] nebo [[https://www.w3resource.com/python-exercises/|W3 Python Exercises]]). /* 20 a 27.11. vyjímečně v místnosti [[https://www.fs.cvut.cz/studium/bakalarske-a-magisterske/umisteni-poslucharen-a-uceben/|KN:A-221]] fakulty strojní. */ ==== Časový plán přednášek ==== //Poznámka: Podklady pro studium budou postupně doplňovány do následující sekce. Můžete se podívat i na podklady pro klasické přednášky z [[https://cw.fel.cvut.cz/b191/courses/b3b33alp/prednasky/start|minulého roku]]. // ^ Číslo ^ Datum ^ Téma ^ | 1 | 20.9. | Úvod, základní programové struktury a techniky | | 2 | 27.9. | Funkce, řetězce, moduly. | | 3 | 4.10. | Datové typy, typ pole. Neměnnost (immutability).| | 4 | 11.10. | Složitost. | | 5 | 18.10. | Třídění a vyhledávání. | | 6 | 25.10. | Rekurze a rychlé třídění. Quicksort. | | 7 | 1.11. | Záznam. Principy objektově orientovaného programování. Zásobník. | | 8 | 8.11. | Fronta. Spojový seznam. | | 9 | 15.11. | Stromy. Množiny a mapy. | | 10 | 22.11. | Prohledávání stavového prostoru (neinformované). | | 11 | 29.11. | Prioritní fronta a hromada. Prohledávání stavového prostoru (informované). Rozptylovací tabulka. | | 12 | 6.12. | Rozptylovací tabulka (dokončení). Dynamické programování.| | 13 | 13.12. | Grafové algoritmy. Konečný automat a jeho použití. Regulární výrazy. | | | 20.12 | // zimní prázdniny // | | | 27.12 | // zimní prázdniny // | | 13 | 3.1. | Splnitelnost. Numerické výpočty a vizualizace. | /* ^ Číslo ^ Datum ^ Téma ^ | 1 | 21.9. | Úvod, základní programové struktury a techniky /* {{:courses:b3b33alp:prednasky:01_uvod_beamer.pdf|Úvod, základní programové struktury a techniky}} {{:courses:b3b33alp:prednasky:01_uvod.zip|(zipped Jupyter notebook)}} {{:courses:b3b33alp:prednasky:01_uvod_programs.zip|(programy)}} | | | 28.9. | //státní svátek// | | 2 | 5.10. | Funkce, řetězce, moduly. {{:courses:b3b33alp:prednasky:02_funkce.pdf|Funkce, řetězce, moduly.}} {{:courses:b3b33alp:prednasky:02_funkce_programs.zip|(programy)}} | | 3 | 12.10. | Datové typy, typ pole. {{:courses:b3b33alp:prednasky:03_pole.pdf|Datové typy, typ pole.}} {{:courses:b3b33alp:prednasky:03_pole_programs.zip|(programy)}} | | 4 | 19.10. | Složitost. Třídění a vyhledávání. {{:courses:b3b33alp:prednasky:04a_slozitost.pdf|Složitost.}} {{:courses:b3b33alp:prednasky:04b_sorting.pdf|Třídění a vyhledávání.}} {{:courses:b3b33alp:prednasky:04b_sorting_programs.zip|(programy)}} | | 5 | 26.10. | Rekurze a rychlé třídění. {:courses:b3b33alp:prednasky:05_rekurze.pdf|Rekurze a rychlé třídění.}} {{:courses:b3b33alp:prednasky:05_rekurze_programs.zip|(programy)}} | | 6 | 2.11. | Záznam, Fronta,  zásobník. {{:courses:b3b33alp:prednasky:06_fronta_a_zasobnik.pdf|Záznam, Fronta,  zásobník.}} {{:courses:b3b33alp:prednasky:06_fronta_a_zasobnik_programs.zip|(programy)}} | | 7 | 9.11. | Konečný automat {{:courses:b3b33alp:prednasky:07a_konecny_automat.pdf|Konečný automat}} {{:courses:b3b33alp:prednasky:konecny_automat_programy.zip|(programy)}} | | 8 | 16.11. | Regulární výrazy. Spojový seznam {{:courses:b3b33alp:prednasky:07b_spojovy_seznam.pdf|Spojový seznam}} {{:courses:b3b33alp:prednasky:spojovy_seznam_programy.zip|(programy)}} | | 9 | 23.11. | {{:courses:b3b33alp:prednasky:08a_stromy.pdf|Stromy}} {{:courses:b3b33alp:prednasky:08a_stromy_programs.zip|(programy)}},{{:courses:b3b33alp:prednasky:08c_mnoziny_mapy_v_pythonu.pdf|Asociativní pole a množina v Pythonu.}} | | 10 | 30.11. | {{:courses:b3b33alp:prednasky:08b_halda.pdf|Prioritní fronta, hromada (heap)}} {{:courses:b3b33alp:prednasky:08b_halda_programy.zip|(programy)}}. {{:courses:b3b33alp:prednasky:09_rozptylovaci_tabulky.pdf|Rozptylovací tabulka (hash table)}} {{:courses:b3b33alp:prednasky:09_rozptylovaci_tabulky_programs.zip|(programy).}} | | 11 | 7.12. | {{:courses:b3b33alp:prednasky:10_stavovy_prostor.pdf|Prohledávání stavového prostoru}} {{:courses:b3b33alp:prednasky:10_stavovy_prostor_programs.zip|(programy).}} | | 12 | 14.12. | {{:courses:b3b33alp:prednasky:10a_splnitelnost.pdf|Splnitelnost}} {{:courses:b3b33alp:prednasky:10a_splnitelnost_programs.zip|(programy)}}. {{:courses:b3b33alp:prednasky:11_dynamicke_programovani.pdf|Dynamické programování}} {{:courses:b3b33alp:prednasky:11_dynamicke_programovani_programs.zip|(programy)}}. | | | 21.12 | // zimní prázdniny // | | 13 | 4.1. | {{:courses:b3b33alp:prednasky:12_grafy.pdf|Grafové algoritmy}} {{:courses:b3b33alp:prednasky:12_grafy_programs.zip|(programy)}}. {{:courses:b3b33alp:prednasky:13_numpy.pdf|Numerické výpočty a vizualizace}} {{:courses:b3b33alp:prednasky:13_numpy_programs.zip|(programy)}} | */ ==== Podrobnější podklady k přednáškám ==== == Přednáška 1 == * Nainstalujte si [[http://python.org|Jazyk Python]] na váš počítač. Pokud nerozumíte anglicky, tak se to rychle naučte, ale prozatím se podívejte na české návody, například na stránku [[https://naucse.python.cz/lessons/beginners/install|Nauč se Python]] nebo [[http://diveintopython3.py.cz/installing-python.html|Ponořme se do Pythonu.]] Pokud neuspějete, ptejte se. * ** Úvod ** -- {{ :courses:b3b33alp:prednasky:01a_uvod.pdf|pdf}} * ** Úvod do Pythonu ** (část 1) Proměnné a přiřazení, první programy v Pythonu,{{ :courses:b3b33alp:prednasky:01b_python.pdf |pdf}} * ** Úvod do Pythonu ** (část 2) Chyby, řídící struktury. {{ :courses:b3b33alp:prednasky:01c_python.pdf |pdf}} * {{:courses:b3b33alp:prednasky:01_uvod_programs.zip|Programy z této přednášky}} * Naší úvodní přednášce odpovídají např. [[https://naucse.python.cz/course/pyladies/|Lekce 1,2,3]] z [[https://naucse.python.cz/course/pyladies/|Nauč se Python|]] či několik prvních kapitol (až po [[https://www.w3schools.com/python/python_for_loops.asp|For Loops]]) z [[https://www.w3schools.com/python/default.asp|W3schools Python tutorial]], nebo několik prvních kapitol (až po [[https://www.learnpython.org/en/Loops|Loops]]) z [[https://www.learnpython.org/|Learn Python]]. Vyberte si, co vám nejvíc vyhovuje. * Záznam přednášky 21.9.2020 - [[https://bbb04.felk.cvut.cz//playback/presentation/2.0/playback.html?meetingId=f677dca51ad460dc01782f09461d4276d5f9423b-1600669801813|v prohlížeči]], [[https://bbb04.felk.cvut.cz//presentation/f677dca51ad460dc01782f09461d4276d5f9423b-1600669801813/f677dca51ad460dc01782f09461d4276d5f9423b-1600669801813.pdf|pdf]] /*[[https://bbb04.felk.cvut.cz//presentation/f677dca51ad460dc01782f09461d4276d5f9423b-1600669801813/f677dca51ad460dc01782f09461d4276d5f9423b-1600669801813.mp4|mp4]] */ == Přednáška 2 == * {{:courses:b3b33alp:prednasky:02_funkce.pdf|Funkce, řetězce, moduly}} --- pdf slidy * {{:courses:b3b33alp:prednasky:02_funkce_programs.zip|programy}} z této přednášky. * [[https://naucse.python.cz/course/pyladies/|Lekce 3,5,6,7]] z [[https://naucse.python.cz/course/pyladies/|Nauč se Python]] * kapitola [[https://www.learnpython.org/en/Functions|Functions]] z [[https://www.learnpython.org/|Learn Python]]. * [[https://bbb04.felk.cvut.cz//playback/presentation/2.0/playback.html?meetingId=3f93a7361494f8616b1340ebe9d8aa117bb67738-1601879401164|Záznam z přednášky 5.10.2020]]. == Přednáška 3 == * {{:courses:b3b33alp:prednasky:03_pole.pdf|Datové typy, typ pole.}} --- pdf slidy. * {{:courses:b3b33alp:prednasky:03_pole_programs.zip|programy}} z této přednášky * [[https://bbb04.felk.cvut.cz//playback/presentation/2.0/playback.html?meetingId=6eab977ffb18e072ff99e87607304b1ecafb606f-1602484201359|Záznam z přednášky 12.10.2020]] == Přednáška 4 == * {{:courses:b3b33alp:prednasky:04a_slozitost.pdf|Složitost.}} --- pdf slidy * {{:courses:b3b33alp:prednasky:04b_sorting_programs.zip|programy}} z této přednášky. * Od kuchařů z MFF UK: Stručně o {{http://ksp.mff.cuni.cz/kucharky/programatorske-kucharky/01-slozitost.pdf|složitosti}} * [[https://bbb04.felk.cvut.cz//playback/presentation/2.0/playback.html?meetingId=e1c214b225aa4e08cfb05c43a9a9bb135649ad28-1603089004040|Záznam z přednášky 19.10.2020]] == Přednáška 5 == * {{:courses:b3b33alp:prednasky:04b_sorting.pdf|Třídění a vyhledávání.}} --- pdf slidy * {{:courses:b3b33alp:prednasky:04b_sorting_programs.zip|programy}} z této přednášky. * Od kuchařů z MFF UK: Stručně o {{http://ksp.mff.cuni.cz/kucharky/programatorske-kucharky/02-trideni.pdf|třídění}} a {{http://ksp.mff.cuni.cz/kucharky/programatorske-kucharky/03-binarni-vyhledavani.pdf|binárním vyhledávání}} * [[https://bbb04.felk.cvut.cz//playback/presentation/2.0/playback.html?meetingId=be3347c08f9945d7896307a16da6b2839142adc8-1603697401227|Záznam z přednášky 26.10.2020]] == Přednáška 6 == * {{:courses:b3b33alp:prednasky:05_rekurze.pdf|Rekurze a rychlé třídění.}} --- pdf slidy * {{:courses:b3b33alp:prednasky:05_rekurze_programs.zip|programy}} z této přednášky. * [[https://bbb04.felk.cvut.cz//playback/presentation/2.0/playback.html?meetingId=0b1c574ca81ab62043edebf90384581075c904d1-1604302201662|Záznam z přednášky 2.11.2020]] == Přednáška 7 == * {{:courses:b3b33alp:prednasky:06_fronta_a_zasobnik.pdf|Záznam, Fronta,  zásobník.}} --- pdf slidy * {{:courses:b3b33alp:prednasky:06_fronta_a_zasobnik_programs.zip|programy}} z této přednášky. * [[https://bbb04.felk.cvut.cz//playback/presentation/2.0/playback.html?meetingId=c4e533a14fea70be68081a3f7954822b2a9c6b49-1604907001285|Záznam z přednášky 9.11.2020]] == Přednáška 8 == * {{:courses:b3b33alp:prednasky:07b_spojovy_seznam.pdf|Spojový seznam}} -- pdf slidy. * {{:courses:b3b33alp:prednasky:spojovy_seznam_programy.zip|Spojový seznam}} -- programy. * [[https://bbb04.felk.cvut.cz//playback/presentation/2.0/playback.html?meetingId=3cf0d9245cb7b32b5513bf917662b1a1a730ff3d-1605512761237|Záznam z přednášky 16.11.2020]] == Přednáška 9 == * {{:courses:b3b33alp:prednasky:08a_stromy.pdf|Stromy}} -- pdf slidy. * {{:courses:b3b33alp:prednasky:08a_stromy_programs.zip|Stromy}} -- programy. * Programátorská kuchařka: {{http://ksp.mff.cuni.cz/kucharky/programatorske-kucharky/10-vyhledavaci-stromy.pdf|stromy}}, * [[https://bbb04.felk.cvut.cz//playback/presentation/2.0/playback.html?meetingId=434dbda62423fc3feeb2d1d2ac70c9087fbafcdd-1606116601479|Záznam z přednášky 23.11.2020]] == Přednáška 10 == * {{:courses:b3b33alp:prednasky:08c_mnoziny_mapy_v_pythonu.pdf|Asociativní pole a množina v Pythonu.}} * {{:courses:b3b33alp:prednasky:10_stavovy_prostor.pdf|Prohledávání stavového prostoru}} {{:courses:b3b33alp:prednasky:10_stavovy_prostor_programs.zip|(programy).}} * [[https://bbb04.felk.cvut.cz//playback/presentation/2.0/playback.html?meetingId=9d4c30e1bf33b820e1827afad2bfad572a8374f4-1606721402003|Záznam z přednášky 30.11.2020]] == Přednáška 11 == * {{:courses:b3b33alp:prednasky:08b_halda.pdf|Prioritní fronta, hromada (heap)}} -- pdf slidy * {{:courses:b3b33alp:prednasky:08b_halda_programy.zip|Prioritní fronta, hromada (heap)}} -- programy * {{:courses:b3b33alp:prednasky:09_rozptylovaci_tabulky.pdf|Rozptylovací tabulka (hash table)}} -- pdf slidy * {{:courses:b3b33alp:prednasky:09_rozptylovaci_tabulky_programs.zip|Rozptylovací tabulka (programy).}} * Programátorská kuchařka: {{http://ksp.mff.cuni.cz/kucharky/programatorske-kucharky/04-halda.pdf|halda}} * Přednáška 7.12.2020 proběhla vyjímečně v MS Teams, tým {{https://teams.microsoft.com/l/team/19%3a7dcea32c07ee469ba421bb8dc886d4c3%40thread.tacv2/conversations?groupId=3898a8db-305c-487e-81e7-e18fdb14826f&tenantId=f345c406-5268-43b0-b19f-5862fa6833f8|Predmet-B201-B3B33ALP}}, kde je (v kanále General), k dispozici i {{https://web.microsoftstream.com/video/69bd95fd-cbbb-414f-9d3d-158058304d57|záznam}}. == Přednáška 12 == * {{:courses:b3b33alp:prednasky:11_dynamicke_programovani.pdf|Dynamické programování}} -- pdf slidy * {{:courses:b3b33alp:prednasky:11_dynamicke_programovani_programs.zip|Dynamické programování}} -- programy * [[https://bbb04.felk.cvut.cz//playback/presentation/2.0/playback.html?meetingId=a9f23e701e496f7eb4e5899dd9a93bc9089caabd-1607931001202|Záznam z přednášky 14.12.2020]] == Přednáška 13 == * {{:courses:b3b33alp:prednasky:12_grafy.pdf|Grafové algoritmy}} -- pdf slidy * {{:courses:b3b33alp:prednasky:12_grafy_programs.zip|Grafové algoritmy}} -- programy * {{:courses:b3b33alp:prednasky:07a_konecny_automat.pdf|Konečný automat a regulární výrazy}} -- pdf slidy * {{:courses:b3b33alp:prednasky:konecny_automat_programy.zip|Konečný automat a regulární výrazy}} -- programy * [[https://bbb04.felk.cvut.cz//playback/presentation/2.0/playback.html?meetingId=614f243ca458adfc538678afc7b6e4302a9550b3-1609745403660|Záznam z přednášky 4.1.2021.]] == Bonus (nebude u zkoušky) == * {{:courses:b3b33alp:prednasky:13_numpy.pdf|Numerické výpočty a vizualizace}} -- pdf slidy * {{:courses:b3b33alp:prednasky:13_numpy_programs.zip|Numerické výpočty a vizualizace}} -- programy * {{:courses:b3b33alp:prednasky:10a_splnitelnost.pdf|Splnitelnost}} -- pdf slidy * {{:courses:b3b33alp:prednasky:10a_splnitelnost_programs.zip|Splnitelnost}} -- programy