Table of Contents

Programování I - cvičení

Informace

Přednášející

Konzultace

Máte-li nějaké dotazy k obsahu cvičení, zápočťákům a podobně, můžete mi poslat maila nebo si se mnou přímo domluvit konzultaci. Dostupný jsem mailem i po ICQ nebo na Jabberu, viz kontakt. Další možností je osobní konzultace například v počítačové laboratoři, v zimním semestru 2009/10 nejlépe ve čtvrtek, kdy nemám přednášky, nebo podle domluvy.

Praktika

Praktikum z programování I (NPRM047)

Nepovinný předmět pro studenty I.ročníku matematiky, který má pomoci těm, kteří se dosud s programováním vůbec nesetkali.

“Zápis na praktika bude uzavřen v pátek 13. listopadu.”

Požadavky na zápočet

Ve výjimečných případech je možno stanovit individuální podmínky pro získání zápočtu, např. při kombinovaném studiu. Takže bude místo účasti možno získat body např. za další domácí úkoly nebo písemky.

Důležitá informace: Zápočet budou zapisovat do indexu přednášející, cvičící jej mohou zapsat pouze do IS. Proto je třeba, abyste podmínky pro zápočet splnili dostatečně včas, aby se nestalo, že sice budete mít zápočet v IS, ale všichni, kdo jsou oprávněni jej zapsat do indexu, budou odlétlí na konferencích.

Zápočtové programy

Jednou z podmínek zápočtu je vypracování a úspěšné obhájení zápočtového programu.

Téma a krátkou specifikaci mi pošlete mailem do 30.11.2009. Čím dřív, tím líp, ale nějak si to rozumně rozmyslete. Témata pro inspiraci u Martina Mareše. Tabulka, kdo si vybral jaké téma zápočťáku.

Rozsah: mělo by to být něco netriviáního, ale ne příliš velké sousto. Orientačně, pokud budou mít zdrojáky řádově desítky kB, je to ok. Téma si snažte vybrat tak, aby vás bavilo, ale hlavně, abyste jej zvládli. Je lepší mít včas a pěkně zpracovanou nějakou středně složitou úlohu, než se mořit geniálním řešením velice složitého problému a nestihnout to.

Zápočťák by to chtělo obhájit, dokud přednášející zapisují zápočty, nebo raději ještě dřív. Nejdřív mi ale balíček pošlete mailem.

Je potřeba, aby zápočťák při předvádění fungovat, dělal to, co má, a nepadal (ani na nekorektních vstupech). Balíček se zápočťákem bude obsahovat okomentované zdrojáky a dokumentaci.

Dokumentace bude jednak programátorská (co jednotlivé části programu dělají, proč a jak; popis použitých algoritmů) a uživatelská (co má program dělat, jak se spouští a ovládá). Formát: nejlépe textový dokument, možno i PDF, nebo cokoliv standardního. Zajímavé informace o tom, jak psát dokumentaci k zápočtovému programu, napsal RNDr. Rudolf Kryl. Balíček by to chtělo zabalit do jednoho souboru (ZIP, TAR, TAR/GZ, RAR, …). Zdrojáky by měly být pokud možno členěny do několika souborů podle jednotlivých logických částí programu.

Jazyk programu: preferovaně Pascal (bude se vám hodit u testu v labu), možno i něco jiného (máte-li s tím zkušenosti) - Java/C#/Python/C++.

Vypracování by mělo být vaší samostatnou prací. Rozhodně tedy nevydávejte hotová cízí řešení za vlastní. Není to ani etické, ani akademicky přípustné, ani se v tom nevyznáte tak, jako když si to napíšete sami. Ale hlavně tak nezískáte zkušenosti z vlastní práce. Diskuse nad technickými a algoritmickými problémy samozřejmě přípustná je. Není-li něco jasné, ptejte se.

Smyslem zápočťáku je, abyste si v klidu domova vyzkoušeli programování, připravili se mimo jiné na test v labu, a získali základní přehled o tom, co obnáší programování kromě samotného vymýšlení algoritmů a psaní kódu. Tedy vyjednávání specifikace, dokumentaci programu, předvedení a obhajobu výsledku, práci v termínu. Takže zápočťák nepodceňujte. Není to nic těžkého, ale chce to tomu věnovat určitý čas a práci. Ale myslím, že za zkušenosti to stojí.

Někdo platí za software penězi, někdo zápočty. Aspoň tak nějak nám to říkali :)

Anotace předmětu

Obsahem kursu jsou základy programování v jazyce Pascal a základní otázky z oblasti návrhu algoritmů a tvorby programů.

Sylabus

  1. Práce na PC v Borland Pascalu
    • integrované prostředí Turbo Pascalu, ladící prostředky
  2. Jazyk Pascal
    • algoritmus, správnost, vstupní a výstupní data, efektivita
    • program, programovací jazyk, chyby v programu, ladění
    • proměnná, konstanta
    • číselné typy, char, boolean, výčtový typ, interval
    • stavba výrazu a jeho vyhodnocení
    • základní příkazy v Pascalu (:=, if, while, repeat, složený)
    • hierarchická stavba příkazů, struktura programu
    • pole, for-cyklus, záznam, with, množina
    • znakový řetězec v Turbo Pascalu
    • procedury a funkce, parametry, lokalita, rekurze
    • práce se soubory v Turbo Pascalu
    • unity, návrh programu shora dolů
    • unit Crt v Turbo Pascalu
  3. Algoritmy a programování
    • Eukleidův algoritmus
    • Eratosthenovo síto
    • Hornerovo schéma
    • reprezentace dlouhých čísel v poli
    • vyhledávání v poli (sekvenční, binární, zarážka)
    • operace s maticemi
    • rekurze a možnosti jejího využití
    • metoda “rozděl a panuj”
    • prohledávání do hloubky (backtracking)
    • prohledávání do šířky (algoritmus “vlny”)
    • časová a paměťová složitost a algoritmů, programů a problémů

Uživatelské účty

Je třeba účet v systému pro vyhodnocování domácích úkolů CodEx. Jak se CodEx používá?

Pro přihlášení v učebně K11 je třeba mít uživatelský účet v karlínském labu.