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