====== Úvodní cvičení ====== * [[https://forms.gle/SAHft9k4yN576Cdq9|Dotazník]] mapující vaši současnou znalost programování. * [[courses:b4b33rph:tutorialy:python:start|]] - základní info o Pythonu včetně instalace. * První Python Hello world aplikace. První volání funkce, import. * Seznámení se systémem [[https://cw.felk.cvut.cz/brute|BRUTE]] pro odevzdávání prací. Zalogování, odevzdání skriptu odpovídajícího na otázku položenou na přednášce. * Dotazy a odpovědi, aneb co vás zajímá a co byste chtěli vědět. * Vizualizace Pythonu [[http://www.pythontutor.com/|Python Tutor/Visualizer]]. (Jednoduché, názorné IDE [[https://thonny.org/]].) * K diskuzím/konzultacím využijte * cvičení, * [[https://cw.felk.cvut.cz/forum/forum-1837.html|fórum]] předmětu, * [[https://discord.com/channels/690919691404967977/754324647281033287|kanál na Discordu]], * [[https://cw.fel.cvut.cz/wiki/courses/b4b33rph/cviceni/start#dodatecna_cviceni_pro_novacky_v_programovani|extra konzultační cvičení]] pro úplné nováčky, * email (pro důležité zprávy, či dotazy, které se týkají jen vás). > {{page>courses:b4b33rph:internal:cviceni:program_po_tydnech:tyden_01:cviceni#uvod}} > {{page>courses:b4b33rph:internal:cviceni:program_po_tydnech:tyden_01:cviceni#info_na_uvodni_cviceni}} ===== Dotazník ===== Prosím vyplňte [[https://forms.gle/SAHft9k4yN576Cdq9| dotazník]]. Vaše id ani ip se nikde nezaznamenává, dotazník je čistě pro statistiku. Pomůžete tím velmi. Díky. V případě, že nejde uložit odpověď, vteřinu či dvě počkejte a zkuste znovu, díky za pochopení. ===== Hádanka ====== /* [[https://forms.gle/buHQmLeTtfjJKPvD6|101]] [[https://forms.gle/4irTc9zGh159ivfk9|102]] [[https://forms.gle/89mVEaCKTpDfBWoDA|103]] [[https://forms.gle/S5L3pHN9UV9eJqDy5|104]] [[https://forms.gle/8hD5Z5DiAzr6vECz8|105]] [[https://forms.gle/EXHmcQcJjuUU1MdJ9|106]] [[https://forms.gle/Aebn38CgqaeLBvJD6|107]] [[https://forms.gle/degRY2YKcYxLjhgu7|108]] [[https://forms.gle/q6VMjyuFwofsPpbo9|109]] */ > {{page>courses:b4b33rph:internal:puzzles#cviceni_1}} ===== Herně - teoretický kvíz ====== /* [[https://forms.gle/r56bqrsKwJgFkk1AA|101]] [[https://forms.gle/icZr8kqGbMRpNJL27|102]] [[https://forms.gle/4GJzWMEiXKHRhaDv8|103]] [[https://forms.gle/jwEfD7C82mchxXZX8|104]] [[https://forms.gle/o7SeYeGJiLYUWkv39|105]] [[https://forms.gle/nahauAvncbjja7HH9|106]] [[https://forms.gle/NuUKZRR1ncLj5NvC6|107]] [[https://forms.gle/Vb1GbfermDyaExRs7|108]] [[https://forms.gle/sNrR5peB4yEdiiXi6|109]] */ > {{page>courses:b4b33rph:internal:cviceni:program_po_tydnech:tyden_01:cviceni#kviz}} ===== Úkoly pro cvičení ===== Ptejte se cvičícího, pokud něco nepůjde. Na konci cvičení by vám mělo fungovat a měli byste rozumět použitým konstrukcím. Nebojte se vhodně používat google, či jiný váš oblíbený hledač. 1. Spusťe VS Code (nebo jiné IDE) vyzkoušejte si Python shell interaktivně. > {{section>courses:b4b33rph:internal:cviceni:python#repl&noheader}} 2. Vytvořte jednoduchý program, ve kterém vytisknete řetězec ''ahoj'' na standardní výstup. Program uložte do svého pracovního adresáře a spusťte. > {{section>courses:b4b33rph:internal:cviceni:python#hello_world&noheader}} 3. Vytvořte jednoduchou knihovnu-modul pro funkce konvertující různé fyzikální jednotky, např. teplotu. Importujte do hlavního programu a vhodně otestujte. (převod Celsia na Fahrenheita $t_F = 1.8 \cdot t_C + 32$) ===== První odevzdání do upload systému ===== * zalogujte (username i heslo stejné jako do KOSu) se do [[https://cw.felk.cvut.cz/brute|brute]] * pokud se vám postup nedaří, zkontrolujte, zda jste zapsán v rozvrhu a pak kontaktujte cvičícího. ==== Úloha Lenka - odpověď ==== První programovací úlohou je nahrát do odevzdávacího systému [[https://cw.felk.cvut.cz/brute|BRUTE]] python skript, který odpoví na [[https://cw.fel.cvut.cz/wiki/_media/courses/b4b33rph/prednasky/intro.pdf#Outline0.6|otázku o Lence z přednášky]]; úloha ''01_DU_abc''. V přednášce byly uvedeny 3 možné odpovědi (a, b, c) a vaším úkolem bylo seřadit je od nejpravděpodobnější k nejméně pravděpodobné. Vytvořte soubor **answer.py** se skriptem, který na svém výstupu vygeneruje odpověď, která je podle vás nejsprávnější. Úkol má 3 aspekty, které musíte vzít v úvahu: - Výstup skriptu musí být syntakticky správně. Výstupem by měly být 3 řádky, na každém řádku jedno z písmen A, B, C nebo a, b, c (tj. buď všechna malá nebo všechna velká, žádné by se nemělo opakovat nebo chybět). Zda skript generuje syntakticky správný výstup vám BRUTE sdělí ihned. Za syntakticky správnou odpověď získáte 0.5 bodu. - Výstup skriptu by měl být i sémanticky (významově) správně. Za správné pořadí písmen můžete získat dalších 0.5 bodu. Správné pořadí se dozvíte na jedné z dalších přednášek. - Další body navíc můžete získat podle toho, zda pro odpověď použijete velká nebo malá písmena: * Pokud použijete malá písmena, dostanete 0.5 bodu navíc. * Pokud použijete velká písmena: * bude-li takových řešení alespoň 95 %, dostanou všechna tato řešení 1 bod navíc, ale * bude-li takových řešení méně než 95 %, nedostanou tato řešení navíc nic. Volby jednotlivců nebudou zveřejněny. Výsledek se dozvíte také na jedné z dalších přednášek. ===== Problém výběru dveří ===== Dostali jste se do finále televizní soutěže. Jsou před vámi troje dveře. Za jedněmi z nich se skrývá hlavní cena - auto. Vy si jedny z dveří vyberete. Moderátor následně jedny dveře otevře a ukáže vám, že za nimi nic není (otevře jen ty dveře, které jste si nevybrali a za nimiž není výhra). A v tuto chvíli vám dá moderátor na výběr: Chcete * zůstat u těch dveří, které jste si vybrali původně, nebo * změníte svou volbu na druhé zavřené dveře? Která z těchto dvou možností má vyšší pravděpodobnost výhry? Nebo je to jedno? Zkusíme naprogramovat simulátor, který ukáže, jak často dojte k výhře při použití jedné nebo druhé strategie. > {{section>courses:b4b33rph:internal:cviceni:python#monty&noheader}} ===== Samostatná práce ===== Využijte k tomu případné volné chvilky ve cvičení. * Přečtěte si [[help:common:plagiaty_opisovani]] (plagiáty, opisování, co se považuje za samostatnou práci) a případně se zeptejte na cokoli, co vám přijde nejasné. ====== DÚ, příprava na příště ====== ===== Čtení ===== Přečtěte si minimálně [[https://howto.py.cz/|kapitoly 1,2,3,8,12]], {[b4b33rph:Kubias2008]}. A nahlédněte i do ostatních kapitol. Vyzkoušejte si co nejvíce příkladu, poznamenávejte si problémy, čemu nerozumíte, a pod. Ptejte se na diskusním fóru předmětu. Kapitolu 12 stačí povrchně, o třídách a objektech budeme více povídat na 2. až 4. přednášce.\\ Pro naši první úlohu budeme potřebovat ještě znalosti z kapitol 9, 13. Pokud zvládnete nahlédnout, bude jedině dobře. Nemusíte hned rozumět všemu. Budeme tomu přicházet na kloub postupně. ===== Videa od kolegů z ALP ===== Kolegové z předmětu ALP (Algoritmy a programování) vytvářejí pro studenty krátká videa o programování v Pythonu. Třeba se vám také mohou hodit. * [[https://cw.fel.cvut.cz/wiki/courses/b3b33alp/cviceni/kratka_videa/start|Videa o Pythonu na stránkách předmětu ALP]] * [[https://www.youtube.com/playlist?list=PLQL6z4JeTTQnekjVfzM-q3hvWjO49GEJ2|YouTube playlist]] ===== Interaktivní cvičení ===== Vyzkoušejte některý z online kurzů Pythonu, které nabízejí jednoduché úlohy na procvičení jednotlivých konceptů. Pokuste se v nich dostat, kam až to půjde. **Obzvláště ti, co nikdy neprogramovali, nebo programovali jen málo**, by měli zkusit, co zvládnou, co je jim jasné a co ne, a **připravit si otázky** na příště, příp. se rovnou ptát na diskusním fóru. * [[https://www.codecademy.com/learn/learn-python|Kurz Pythonu na Codecademy]]. **Doporučujeme!** Používá Python 2, ale to nijak zvlášť nevadí. Je tam i obdobný [[https://www.codecademy.com/learn/learn-python-3|kurz využívající Python 3]], ale ten není zdarma. Zkuste projít části //Python syntax//, //Tip calculator//, //Strings & Console output//, //Date and time//, //Conditionals and control flow//, //Pig Latin//. Bohužel nelze jednotlivé části přeskakovat, témata kurzu musíte absolvovat v daném pořadí. Když se zaseknete a nepomůže vám ani "Hint", pište na fórum! * [[https://www.learnpython.org/|Kurz Pythonu na LearnPython.org]]. Používá Python 3. Jednotlivé části na sebe částečně tématicky navazují, ale lze je absolvovat v libovolném pořadí. Pokud se v jedné části zaseknete, zapište si dotaz, a pokračujte další částí. Další možnosti: * [[https://exercism.io/tracks/python]] - zdarma, trénink Pythonu na drobných problémech, code-review od zkušenějších uživatelů * [[https://www.jetbrains.com/academy]] - pro studenty ČVUT zdarma, výuka Pythonu při práci na postupně komplexnejších projektech. * [[https://www.codewars.com]] - interaktivní trénink Pythonu pomocí drobných programovacích hádanek. * [[https://www.codingame.com/]] - online "hry", kde je potřeba doprogramovat nějakou část logiky aby to začalo fungovat. Je možné si tam vybrat libovolný programovací jazyk, a úlohy jsou dostupné od velmi jednoduchých až po skutečně náročné. V některých úlohách jde i soutěžit s ostatními. Zdarma. Pokuste se dostat co nejdál v co nejvíce částech. Když se ztratíte a nebude vědět jak dál, nevadí - pokud na základě toho zformulujete dotazy, na něž se chcete zeptat. Na fóru, či na dalších cvičeních na ně odpovíme. Tato cvičení vám mají především pomoci **identifikovat věci, kterým nerozumíte**.