Naleznete zde infromace pro jednotlivé cvičení z předmětu SPJA. Veškeré další informace naleznete zde.

Úvodní znělka

Sound of Cylons

Studijní opora a materiály

K dispozici je studijní text.

Dokumentace k jazyku Python

Zajímavý online interaktivní kurz nalezneta na Codeacademy.

Pro základy programování můžete využít knihu Think Python, kterou si můžete stáhnout zdarma.

Velice pěkný tutoriál k Pythonu se jmenuje Dive into Python, který se dá použít i pro rychlé vyhledávání programovacích technik v Pythonu.

Přečtěte si také výukový text z MIT, který vřele doporučuji.

Jako doplňkovou literaturu můžete použít oficiální Python Tutoriál.

Sada přednášek z MIT, které vysvětlují použití Pythonu na různých úlohách.

Část našich cvičení se zabývá vývojem webových aplikací pomocí Django frameworku. Existují i české stránky, kde naleznete dokumentaci k verzi 1.0 v češtině.

Pro zájemce o další informace z oblasti použití Django, doporučuji knihu The Django Book.

Výuka

Úkoly na cvičení jsou pro Python 3.

Cvičení 1

Nebodované cvičení.
Co je to dynamické a silné typování?
Vytváříme funkce, proměnné (string, int, float), seznamy (list, tuple), slovníky.
Jak na komentáře, podmínky a cykly
Základy interpretru IPython (%run, %rerun, %hist, In, Out a další).
Společně si doprogramujeme: cv1_labs.py.

Cvičení 2

Bodované cvíčení na témata probraná na 1. přednášce + obsah 1. cvičení, kde se používalo jednoduché volání funkcí. Jednotlivé úkoly:

Byl záskok.

Cvičení 3

Bodované cvíčení na témata probraná na 2. přednášce: Funkce, list comprehension, funkcionální prvky programování, čtení ze souboru. Studijním materiálem je text uvedený v úvodu stránky. Výjimky a čtení ze souboru je vysvětleno v prezentaci.

  1. [1 b] Napište funkci my_avg, která vrátí aritmetický průměr všech zadaných argumentů. Argumenty budou čísla a jejich počet je proměnlivý. V implementaci nepoužívejte vestavěné matematické funkce. Je nutné ověření vstupů zda jsou skutečně všechny hodnoty čísla.
    Hint: Vytváření funkcí
  2. [1 b] Vytvořte funkci divide, která bude přijímat 2 argumenty. První je číslo, druhým pak list. Pomocí funkce map vraťte list, který bude obsahovat původní prvky listu vydělené celočíselně prvním argumentem funkce.
  3. [1 b] Vytvořte funkci my_map, která bude stejně jako funkce map přijímat dva parametry. Prvním parametrem je funkce, druhým pak list. Výstup bude stejný jako u funkce map. Při implementaci použijte list comprehension [:list komprihenšn:] (generátorovou notací seznamů). Zde stačí naimplementovat použití pouze jednoparametrové funkce jako arumentu pro mapování
    Hint: když s = sum, pak lze provést s([1, 2, 10, 5]).
  4. [2 b] Soubor calls.txt obsahuje seznam hovorů uskutečněných z firemních telefonů. Formát souboru je následující: tel_č_volaného,tel_č_volajícího,cena_hovoru
    Napište funkci nebo funkce, které budou umět provést následjící operace:
    • Ze souboru calls.txt načtěte všechny hovory.
    • Vypište pro každě číslo volajícího cenu hovorů z daného čísla na firemní čísla a cenu hovorů na ostatní čísla.
    Hint: použijte slovníky. Na rozdělení stringu použijte metodu split z instance stringu.

Cvičení 4

OOP v Pythonu. Úkoly budou na vytvoření třídy Učebna, která bude mít instance třídy Student. Zde naleznete zadání a předlohu.
Hint: kontrola zda je objekt instanci dané třídy slouží funkce: isinstance(instance, třída). K odstranění prvku ve slovníku slouží buď metoda pop(klíč), která i zároveň vrací odstraňovaný prvek, nebo lze využit: del slovnik[klíč]
Jako zajímavost se určitě hodí nastudovat speciální metody třídy.

Cvičení 5

OOP v Pythonu. Rozpohybování atomů. zadání a předloha.

Excercise 6 (erasmus)

The task for excercise is here.

Cvičení 6

OOP (dědění) v Pythonu. Rozpohybování atomů s gravitací. zadání a předloha.

Cvičení 7

Bodované cvičení na témá RSS. Klientský skript přijíma XML ze serveru a je potřeba doprogramovat rozparzování XML. Šablona cvičeni: cv7.zip Případné informace můžete čerpat na docs.python.org.

Cvičení 8

Bodované cvičení na témá XML-RPC. Doprogramujte server, tak aby komunikoval s klientem. Jednotlivé kroky jsou uvedeny v šabloně.

Cvičení 9

Bodované cvičení na témá XML-RPC a PyGame. Doprogramujte klienta, tak aby komunikoval se serverem a následně probíhala multiplayerová hra. Pro toto cvičení je potřeba PyGame, který lze na linux (pokud již není nainstalován) nainstalovat pomocí příkazu (nefunguje na školních PC):
sudo apt-get install python3-pip
sudo pip3 install pygame
nebo je možné vytvořit virtuální prostředí (tento postup je potřeba na školních PC) a až následně nainstalovat PyGame pomocí Pip:
python3 -m venv spja
. spja/bin/activate
pip3 install pygame

Cvičení 10

Nebodované cvičení. Django základy. Prezentace.

Připravte si prosím témata pro vypracování úkolu.

Cvičení 11

Nebodované cvičení. Django základy.

Připravte si prosím témata pro vypracování úkolu.