Předmět prvního semestru bakalářského programu Otevřená informatika. Předmět si klade za cíl naučit studenty přemýšlet o řešení algoritmických a programovacích problémů inženýrským způsobem. To zahrnuje především rozmyšlení úlohy, dekompozice, definování rozhraní, způsob testování jednotlivých mezikroků, ověření a testování úspěšnosti celé úlohy. Předmět rovněž uvede studenty do objektově orientovaného programování s důrazem na čitelnost a robustnost kódu. Přednášky mají tři hlavní bloky: i) vybraná témata z programovacích technik a návrhu algoritmů - nutný základ pro implementaci úloh, včetně testovacích technik; ii) vysvětlení jednotlivých úloh; iii) motivační přednášky - vybraná témata především z oblasti počítačových věd.
(Přednášky, Cvičení, Literatura, on-line materiály, Mapa stránek)
Garant: Tomáš Svoboda
Přednášející: Tomáš Svoboda, Petr Pošík,
Cvičící:
Jana Kostlivá,
Petr Pošík,
Tomáš Svoboda,
Karolína Zapletalová,
Jakub Kolář
Předmět je hodnocen klasifikovaným zápočtem (není zkouška). Nutnou podmínkou pro zisk zápočtu je úspěšné absolvování krátké rozpravy s učitelem nad vlastním odevzdaným kódem.
V průběhu semestru studenti získávají body. Známka je pak odvozena podle následující tabulky:
| Získaný počet bodů | 90 a více | 89-75 | 74-60 | 59-45 | 44-30 | 29-0 |
| Odpovídající známka | A | B | C | D | E | F |
Body lze získat za řešení tří povinných úloh a za několik malých programovacích testíků na některých cvičeních. Bodové dotace za úlohy a testy jsou následující:
| Úloha | Vězňovo dilema | Reversi | Spam filter | Testy |
| Max. body | 23 | 32 | 35 | 10 |
Z úloh a testíků lze dohromady získat 100 bodů. Díky případným bonusovým bodům za aktivitu na cvičení, za řešení hádanek a nepovinných úloh, za hlášení chyb na webové stránce, nebo za extra výkon na úlohách lze dosáhnout i skóre převyšující 100 bodů.
Na úlohách budete pracovat samostatně, s výjimkou části úlohy Spam filtr, jejíž část bude týmová. U každé úlohy je potřeba získat minimální předepsaný počet bodů. Je nutné odevzdat všechny individuální úlohy alespoň na úrovni splnění formální/minimální funkcionality. Splnění všech tří úloh na minimální akceptovatelné úrovni odpovídá stupni E.
Programovací testíky se budou psát na cvičení. Z každého testíku bude možné získat až 2 body. Testíky nebudou nahrazovány (s výjimkou případů, jako je dlouhodobá nemoc, apod.). Minimální celkový počet bodů z krátkých programovacích testíků pro lepší známku než E je 2. Jinak řečeno, student, který získá v součtu z programovacích testů méně než dva body, získá přinejlepším známku E bez ohledu na celkový součet bodů ze cvičení.
Rozpravy nad odevzdanými kódy budou probíhat na cvičeních. Pokud učitel usoudí, že student svůj kód neumí dostatečně vysvětlit, bude třeba rozpravu opakovat. Za neúspěšnou rozpravu nejsou žádné další penalizace.
Není nastaven maximální počet absencí na cvičení. Na druhou stranu očekáváme, že diskuse a konzultace budou probíhat především v rámci standardních cvičení. Velmi pokročilí programátoři si mohou domluvit individuální program se svým cvičícím.
V úlohách Vězňovo dilema a Reversi je část hodnocení tvořena umístěním studentova hráče v turnaji s hráči ostatních studentů. V obou úlohách se za tuto složku uděluje 0-6 bodů. V celém předmětu je tedy 12 bodů (ze 100), jejichž zisk je ovlivněn i úspěšností ostatních studentů, nejen vlastní prací.