====== b6b36zal -- Základy algoritmizace ====== Tento kurz se již **nevyučuje**. V přechodném období je otevřen paralelně s kurzem [[courses:b0b36zal:start|B0B36ZAL -- Základy algoritmizace]]. Informace pro aktuální semestr sledujte na tomto kurzu. ===== Představení ===== Předmět si klade za cíl seznámit posluchače se základy algoritmizace a začít u nich rozvíjet analytické myšlení. Posluchači budou během semestru vypracovávat zadané úlohy. Více v sekci [[https://cw.fel.cvut.cz/wiki/courses/b6b36zal/cviceni|Cvičení]]. Účast na cvičeních je povinná. Detailní informace k jednotlivým cvičením budou uveřejňovány ve složce cvičení. Účast na přednáškách je doporučená, ale na cvičení se vyžadují znalosti, které posluchač nabyl na přednáškách. [[https://teams.microsoft.com/l/team/19%3aNuVkunGMstp34wChVm8iyYDDVtbAlbmAJtX7F4Yrx1A1%40thread.tacv2/conversations?groupId=8fba8def-28b2-4e03-94ae-a84004223f73&tenantId=f345c406-5268-43b0-b19f-5862fa6833f8|Skupina MS Teams]] pro hromadnou komunikaci a výuku na dálku. ===== Konzultační hodiny vyučujících ===== | ^ Konzultační hodiny ^ E-mail ^ Místnost ^ Poznámka ^ ^ doc. Ing. Jiří Vokřínek, Ph.D. | po domluvě emailem | | KN:E-333b | Přednášející | ^ RNDr. Ladislav Serédi | po domluvě přes **MS Teams** nebo emailem | \\ prosím používejte **MS Teams** | KN:E-429 | Cvičící [[http://seredlad.pages.fel.cvut.cz/slides/#1|Prezentace z cvičení]] | ===== Přednášky ===== Přednášky probíhají v prostředí MS Teams. Odkaz na [[https://teams.microsoft.com/l/channel/19%3aff76383e93524b95bd127d33363e3e56%40thread.tacv2/prednasky?groupId=5dd674b9-c671-4e69-a6d1-a967646b6a32&tenantId=f345c406-5268-43b0-b19f-5862fa6833f8|přednáškový kanál v MS Teams]] Odkaz na [[http://goo.gl/nX15rH|hlasovací aplikaci]] Materiály mohou být průběžně aktualizovány -- //takto jsou označeny materiály z minulého roku beze změn// a **takto revidované pro aktuální ZS 2020/2021**. | **1** | 22.9.2020 | Úvod. Algoritmus, vstup a výstup. {{:courses:b6b36zal:prednasky:zal01.pdf| }}| | **2** | 29.9.2020 | Proměnné a datové typy. Funkce. {{:courses:b6b36zal:prednasky:zal02.pdf| }}| | **3** | 6.10.2020 | Řízení běhu programu. {{:courses:b6b36zal:prednasky:zal03.pdf| }}| | **4** | 13.10.2020 | Problémy, algoritmy, data. {{:courses:b6b36zal:prednasky:zal04.pdf| }} Příklady: {{:courses:b6b36zal:prednasky:gcd.py|GCD}} {{:courses:b6b36zal:prednasky:nim.py|NIM}} {{:courses:b6b36zal:prednasky:tictactoe.py| Tic Tac Toe}}| | **5** | 20.10.2020 | Vyhledávání a řazení 1. {{:courses:b6b36zal:prednasky:zal05.pdf| }} Příklady: {{:courses:b6b36zal:prednasky:insertion_sort.py|I-S}} {{:courses:b6b36zal:prednasky:selection_sort.py|S-S}} {{:courses:b6b36zal:prednasky:bubble_sort.py|B-S}} | | **6** | 27.10.2020 | Abstraktní datové typy (zásobník, fronta, spoj. seznam). {{:courses:b6b36zal:prednasky:zal06.pdf| }} Příklady: {{:courses:b6b36zal:prednasky:stack.py|stack}}, {{:courses:b6b36zal:prednasky:queue.py|queue}}, {{:courses:b6b36zal:prednasky:linkedlist.py|Linked list}}| | **7** | 3.11.2020 | Vyhledávání a řazení 2. {{:courses:b6b36zal:prednasky:zal07.pdf| }} Příklady: {{:courses:b6b36zal:prednasky:merge_sort.py|M-S}}, {{:courses:b6b36zal:prednasky:quick_sort.py|Q-S}}, {{:courses:b6b36zal:prednasky:heap_sort.py|H-S}} | | **8** | 10.11.2020 | Rekurze. {{:courses:b6b36zal:prednasky:zal08.pdf| }} Příklady: {{:courses:b6b36zal:prednasky:factorial.py|factorial}}, {{:courses:b6b36zal:prednasky:list_reverse.py|list reverse}}, {{:courses:b6b36zal:prednasky:hanoi.py|hanoi}}, {{:courses:b6b36zal:prednasky:fibonacci.py|fibonacci}} | | **9** | 17.11.2020 | - | | **10** | 24.11.2020 | Vyhledávání a řazení 3. {{:courses:b6b36zal:prednasky:zal09.pdf| }} Příklady: {{:courses:b6b36zal:prednasky:graphpaths.py|Cesty v grafu}}, {{:courses:b6b36zal:prednasky:citypaths.py|Cesta z města}} | | **11** | 1.12.2020 | Složitost a výkon algoritmů. {{:courses:b6b36zal:prednasky:zal10.pdf| }} [[http://bigocheatsheet.com/| Přehled složitosti algoritmů a datových struktur]] | | **12** | 8.12.2020 | Přehled programovacích jazyků. Úvod do překládaných programovacích jazyků. {{:courses:b6b36zal:prednasky:zal11.pdf| }} | | **13** | 15.12.2020 | Programovací styly a kódovací konvence: čistý kód. {{:courses:b6b36zal:prednasky:clean-code.pdf}} | | | 22.12.2020 | Vánoce | | | 29.12.2020 | Vánoce | | **14** | 5.1.2021 | - | /* Programovací styly a kódovací konvence: čistý kód. {{:courses:b6b36zal:prednasky:clean-code.pdf}} */ **Poklady tvoří podpůrný materiál a jejich učelem není nahradit vlastní zápisky z přednášky, které slouží také jako prostředek osvojení si studované problematiky.** ===== Hodnocení předmětu a zkouška ===== Hodnocení se řídí [[https://www.cvut.cz/sites/default/files/content/7e72349e-3ea5-4693-9853-5147f1238481/cs/20180718-studijni-a-zkusebni-rad-pro-studenty-cvut.pdf|Studijním a zkušebním řádem ČVUT]]. Předmět je zakončen zápočtem a zkouškou. K úspěšnému absolvování předmětu je nutné získat **zápočet** a vykonat **zkoušku**. Pro získání zápočtu je třeba úspěšně vyřešit **všechny domácí úkoly** a získat alespoň **10 bodů**. Po získání zápočtu je nutné vykonat **implementační zkoušku**. Implementační zkouška probíhá v počítačové učebně na školních počítačích. Instalované prostředí odpovídá tomu, na které jste zvyklí ze semestru, s tím rozdílem, že nemáte přístup na internet ani ke svým personálním souborům (pracujete tedy v "čistém laboratorním prostředí"). Zkouškové zadání se skládá z šesti úloh, každé hodnocené až 10 body. Úlohy na sebe mohou navazovat. Není vyžadována speciální znalost specifických algoritmů, ale předpokládá se schopnost navrhnout jednoduchý algoritmus podle zadání a jeho bezchybná implementace. Čas na řešení úloh je dostatečný. Body lze získat v kategoriích: ^ Kategorie ^ Body ^ Minimum bodů ^ | 10 domácích úkolů | 40 | 10 ^ | Zkouška (implementace) | 60 | - | Rozložení hodnocení dle dosažených bodů je dle tabulky: ^ Známka ^ Bodové rozmezí ^ Slovní hodnocení ^ | A | 90 a více | výborně | | B | 80 - 89 | velmi dobře | | C | 70 - 79 | dobře | | D | 60 - 69 | uspokojivě | | E | 50 - 59 | dostatečně | | F | méně než 50 | nedostatečně | ===== Odkazy ===== [[https://cw.felk.cvut.cz/brute/|BRUTE]] [[https://fel.cvut.cz/cz/education/rozvrhy-ng.B221/public/html/predmety/31/28/p3128906.html|Rozvrh]] [[https://cw.fel.cvut.cz/wiki/courses/b6b36zal/cviceni|Cvičení]] [[https://cw.fel.cvut.cz/wiki/courses/b6b36zal/zadani|Zadání domácích úkolů]] [[https://www.jetbrains.com/shop/eform/students|Získání licence PyCharm]] /* [[https://cw.felk.cvut.cz/forum/forum-1428.html|diskusní fórum]] [[https://cw.felk.cvut.cz/forum/forum-1188.html|diskusní fórum - ZS2016]] */