Základy algoritmického myšlení #1 úvod a flow charts Ondřej Veselý Organizace předmětu ● Forma a obsah výuky ➡ ● Docházka ● Domácí úkol(y), test, zkouška ● Bodový systém Pro úspěšné ukončení předmětu je nutné získat 12 bodů ● V průběžném testu je možné získat až 9 bodů. ● V závěrečném testu je možné získat až 6 bodů ● Na zkoušce je možné získat až 9 bodů Algoritmizace - těžiště předmětu ● Flow chart ● Vstup/výstup ● Podmínky ● Datové typy ● Výraz/příkaz ● Cykly ● Podprogram Python - praktická část ● Překlopení dosavadních dovedností do Pythonu ● Práce se soubory ● Scraping ● API Tematické minipřednášky navíc tematická část ● Neuronky pro produkťáky ● Etika v AI ● Stavění produktů s velkými jazykovými modely Motivace Algoritmizace ● Způsob myšlení ○ Dekompozice ○ Abstrakce ○ Přístup ● Business modeling ● Práce s daty ● Automatizace ● Porozumění (pseudo)kódu Motivace 2 Ahoj Ondro, spustili jsme nové Garlo.cz před pár měsíci a řeším teď jednu automatizaci, se kterou byste si dost možná věděli rady: Máme pravidelně seznam url obrázků, ve kterých jsou duplicity (obrázky jsou duplicitní, ne textová url). Věděli byste prosím, jak z toho vytáhnout seznam url, jejichž obsah je duplicitní? Příklad takového dokumentu, ale máme to klidně v jsonu: https://docs.google.com/spreadsheets/d/1z0nSMU_tzIWoOGqOHpQwY-T4DUwhmK7MGkCVXHt GiwA/edit?usp=sharing Předem moc děkuji za úvahu odpoved Flow chart Flow chart example ● Granularita ● Vlastnosti algoritmů ● Process vs Input/Output Ukázkový příklad Vytvořte flow chart, který načte postupně dvě čísla a pak vypíše menší z nich. Vyhněte se přitom použití symbolu pro proces. Samostatný příklad Vytvořte flow chart, který načte tři čísla a pak vypíše to největší. Vyhněte se přitom použití symbolu pro proces. Samostatný příklad Vytvořte flow chart, který načte postupně tři čísla a pak vypíše to největší. Vyhněte se přitom použití symbolu pro proces. Jak by vypadal takový flow chart, který by hledal největší číslo mezi tisícovkou načtených hodnot? Stav Lahůdky pro teoretiky ● Teorie automatů ● Chomského hierarchie ● Formální jazyky Scratch https://scratch.mit.edu/