Úvodní cvičení

  • Dotazník mapující vaši současnou znalost programování.
  • python - základní info o Pythonu včetně instalace.
  • První Python 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 Pythonu Python Tutor/Visualizer. (Jednoduché, názorné IDE https://thonny.org/.)
  • K diskuzím/konzultacím využijte


Dotazník

Prosím vyplňte 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

Herně - teoretický kvíz

Ú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ě.

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.

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 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 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ň 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.

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é.

DÚ, příprava na příště

Čtení

Přečtěte si minimálně kapitoly 1,2,3,8,12, [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.

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. Doporučujeme! 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: 2024/09/25 09:36 by xposik