Programování v Pythonu


Inspirace pro tento kurz: Cvičení od Martina Mareše 2020/2021 letní semestr
Jak programovat lépe: How to Design Programs.
Jak programovat moderně, ale eticky: doporučení ohledně AI pro studenty
Jaké jsou dobré návyky: A layman's guide to thinking like the self-aware smol brained

Tři podmínky pro zápočet

1. Průběžně odevzdávat domácí úkoly

70 % ze všech domácích úkolů, zadávaných téměř po každém cvičení do ReCodExu, vždy s odevzdáním za 14 dní. Nebo 50-70 % + dodatečný úkol na konci semestru.

2. Vypracovat úlohu na posledním cvičení

Na posledním cvičení zadám úlohu, kterou do konce cvičení samostatně vypracujete. Obtížnost bude odpovídat lehčím až středně těžkým úlohám ze cvičení. Písemku bude možné 2x opakovat a budete moci používat pouze oficiální Python dokumentaci. Nikoli mé Notebooky z hodin, kamarády, ani GPT.

3. Vypracovat zápočtový projekt

Do konce dubna si vymyslete zadání. Můžete se inspirovat i zde, nebo se domluvte se mnou. Při vymýšlení úlohy odhadujte obtížnost na cca den až dva dny práce (velmi zhruba 500-1500 řádků kódu). Zápočtový projekt musí být kompletním řešením nějakého problému s příslušnou dokumentací. Dokumentace bývá 1-2 strany dlouhá a měla by obsahovat 3 části
  • Zadání problému
  • Uživatelskou část: zde popíšete jak se program používá.
  • Programátorskou část: zde zdokumentujete jak je program navržen, a jaké jsou hlavní použité algoritmy a datové struktury. Toto je klíčová část, ve které ukážete co jste se letos naučili.
  • Smetiště myšlenek: textový soubor, či naskenované ručně psané poznámky. Do nich budete v průběhu všech programovacích a přemýšlecích sezení zapisovat vaše myšlenky. Tento nápad je převzat odsud a měl by vám výrazně pomoci. V souboru nic nemažte, neopravujte a klidně nadávejte a pište, co vás frustruje (nevezmu si to osobně, ani je nebudu detailně číst a už vůbec ne hodnotit).
Program můžete odevzdat ve formě složky se soubory, či Github repozitáře. Zápočtový projekt odevzdejte do konce letních prázdnin, abychom měli celé září na opravení chyb.

Používání GPT

Použití GPT je povoleno na 1. úrovni, jak je definováno v 1. lekci 2. GPTs.ipynb níže. Navíc je zde povoleno použít GPT na úrovni 3. nebo 4. pro generování nadstavby, či komplementu (např. grafického rozhraní, či frontendu). O tom se také rozhodnete při zadávání projektu. Tyto části budou jasně vymezeny v reportu, kde kód také řádně okomentujete (tudíž ho musíte i pochopit). Na tuto část nebude brán ohled z hlediska délky kódu, ale věřím že vám pomůže k tomu, aby vás pracování na projektu více bavilo.

Konzultační hodiny

Jsem si vědom toho, že na cvičení vás nestihnu obejít všechny. Pokud tedy něčemu nerozumíte, napište mi email a domluvíme se. Rád cokoli dovysvětlím, od toho učitelé na Matfyzu také jsou.

Cvičení

# Výukové materiály Dodatečné soubory Odkazy Problémy Řešení
Pokud máte zájem zlepšit toto cvičení, zde mi můžete dát zpětnou vazbu. Odkaz bude aktivní do konce semestru.

* Při tvorbě výukových materiálů byl využíván model Claude. Převážně pro vymýšlení okrajových případů, přepis řešení do úhlednější podoby a dalších stylistických úprav.
** Pokud naleznete chybu, nebo máte nápad na zlepšení, neváhejte mě kontaktovat.