Úvodní cvičení

Výsledky učení

Po tomto cvičení student

  • ví, za co a jak bude v předmětu hodnocen,
  • ví, kde si může říct o radu (kontakty, konzultace, diskusní fórum, …),
  • chápe rozdíl mezi diskusí nad problémem (resp. nad jeho implementací) a samostatným řešením/programováním,
  • ví, jaká pravidla platí pro plagiátorství a využití AI při práci a jaké jsou postihy za nedodržení pravidel,
  • umí se přihlásit do odevzdávacího systému BRUTE a odeslat soubor jako řešení úlohy,
  • spustí VS Code podle návodu a napíše “HelloWorld” program v Pythonu.

Program

  • Úvodní info k předmětu
  • Dotazník mapující vaši současnou znalost programování
  • Python a jeho instalace.
  • První “Hello, world” aplikace. První volání funkce, import.
  • Seznámení se systémem 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 běhu programu v Python Tutor/Visualizer a v začátečnickém IDE https://thonny.org/.

Úvodní informace

  • Hodnocení předmětu: Seznamte se s pravidly.
  • Docházka: Zaznamenáváme, ale není součástí hodnocení. Cvičení je čas k diskusím, který nebude poskytnut extra (vyjma nemocí apod.)
  • Domácí příprava: Předmět předpokládá, že věnujete 6(!) hodin týdně samostatné domácí přípravě.
  • Školní email:
    • Všichni máte školní účet a emailovou adresu.
    • Máte povinnost emaily na tomto účtu číst! Je to oficiální kanál pro komunikaci s vámi.
    • Při komunikaci s učiteli, studijním oddělením, atd. máte povinnost používat školní email. (Zaměstnanci by správně na emaily zaslané z jiných adres neměli ani reagovat.)

Kde získat pomoc

  1. Stránky předmětu. Zkuste stránky důkladně projít, možná je tam váš dotaz zodpovězen.
  2. Cvičení. Cvičení jsou primárním místem, kde by měly probíhat diskuse mezi učiteli a studenty.
  3. RPH kanál na Discordu/Diskusní fórum (odkazy také v levém navigační menu). Dotazy, které mohou pálit i vaše kolegy, nebo když potřebujete získat odpovědi dříve než na cvičení. Učitelé nepravidelně odpovídají, ale mnohdy vám mnohem dříve odpoví/poradí vaši kolegové studenti.
  4. Email učiteli. Důležité zprávy, či dotazy, které se týkají jen vás.

Odevzdávání úloh

  • Do systému BRUTE. (Viz odkaz v levém navigačním menu. Dnes si ukážeme, jak na to.)
  • Používaná verze pythonu.
  • Striktní termíny odevzdání. Pozdní odevzdání za bodovou penalizaci.
  • Před termínem je možné odevzdávat opakovaně, ale nepoužívejte BRUTE jako debugger. Odevzdávejte jen kódy, které jste na svém počítači dokázali spustit a fungovaly.

Plagiátorství

  • Co je plagiát?
  • Můžete se inspirovat na internetu, u spolužáků či požádat ChatGPT/Copilot, ale cílem je se z toho poučit. Podíváte-li se na cizí řešení, počkejte alespoň do druhého dne než se pokusíte implementovat vlastní řešení. Rozhodně neodevzdávejte přímo řešení od spolužáka, nalezené na internetu, nebo vygenerované AI.
  • Pokud zaznamenáme opisování/plagiátorství:
    • Když se nepovede snadno určit, kdo je zdroj a kdo plagiátor, budou postiženi oba.
    • Prohřešky ze všech předmětů se zaznamenávají do databáze. Při opakovaném prohřešku jsou postihy přísnější (až po neukončení předmětu a podnět disciplinární komisi FEL).

Puzzles / Hádanky

  • Na každém cvičení je zařazena hádanka. Měli byste si zvyknout soustředit se na danou úlohu a pokusit se postoupit v řešení, jak nejdál se vám podaří. Nejde zde ani tak o vyřešení dané hádanky, jako spíš o proces přemýšlení o úloze. Bonusové body za hádanky jsou míněny jako mírná motivace, abyste se o řešení pokusili.
  • Na řešení hádanky budete mít vyhrazenou dobu, 10-15 minut. Za správné řešení dostanete obvykle 1 bod, u některých hádanek oceňujeme i částečné řešení.
  • Po každé hádance by měla následovat diskuse. Pokud budete ochotni demonstrovat své řešení a vysvětlit jej ostatním u tabule, můžete získat další bonusový bod.

Dotazník

Prosím vyplňte dotazník. Dotazník je anonymní, č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

Zadání hádanky se dozvíte na cvičení.

Herně - teoretický kvíz

Zajímavá úloha pro odlehčení. Info na cvičení.

Úkoly na cvičení

Ptejte se cvičícího, pokud něco nepůjde. Na konci cvičení byste měli rozumět použitým konstrukcím. Nebojte se vhodně používat dokumentaci, Google, AI, či jiný váš oblíbený .

  1. Spusťe VS Code (nebo jiné IDE) vyzkoušejte si Python shell interaktivně. Pokud vás výsledek nějakého výrazu překvapí, ptejte se.
    >>> 3 * 3
    >>> 3 * 'kolac'
    >>> 'prosim' + 3 * 'kolac'
    >>> a = 'retezec'
    >>> a[1:]
    >>> a[0:5]
    >>> a[-1]
    >>> a[0:-2]
    >>> a[-5:-2]
    >>> a[1] = 'X'
    Proč nastala chyba? Jaký je rozdíl mezi následujícími částmi kódu, resp. proměnnými a a b?
    >>> a = ['R','P','S']
    >>> a[1] = 'X'
    >>> b = 'RPS'
    >>> b[1] = 'X'
  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 ho z příkazové řádky.
  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 teploty ze stupňů Celsia na stupně Fahrenheita: $t_F = 1.8 \cdot t_C + 32$.)

První odevzdání do BRUTE

  • Zalogujte (username i heslo stejné jako do KOSu) se do BRUTE.
  • Pokud se vám postup nedaří, zkontrolujte, zda jste zapsán v rozvrhu, a pak kontaktujte cvičícího.

Lenka - úloha z přednášky

První programovací úlohou je nahrát do odevzdávacího systému BRUTE python skript, který odpoví na 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:

  1. 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.
  2. 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.
  3. 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ň 85 %, dostanou všechna tato řešení 1 bod navíc, ale
      • bude-li takových řešení méně než 85 %, 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. Nemusíte odevzdávat hned, termín je v neděli. Můžete o správném řešení mezi sebou diskutovat. Můžete se dohodnout, zda odpovíte velkými nebo malými písmeny.

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.

Samostatná práce

Využijte k tomu případné volné chvilky ve cvičení.

  • Přečtěte si 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é.

Domácí úkol

Čtení

Nahlédněte i do ostatních kapitol. Vyzkoušejte si co nejvíce příkladů, poznamenávejte si problémy, čemu nerozumíte, a pod. Ptejte se na discordu, diskusním fóru, na cvičení. 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.

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.

  • Kurz Pythonu na Codecademy. Používá Python 2, ale to nijak zvlášť nevadí. Je tam i obdobný 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!
  • 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.

courses/b4b33rph/cviceni/program_po_tydnech/tyden_01.txt · Last modified: 2025/09/26 09:30 by xposik