====== B4B33RPH -- Řešení problémů a hry ====== Předmět prvního semestru bakalářského programu [[http://oi.fel.cvut.cz|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. ([[courses:b4b33rph:prednasky:start|Přednášky]], [[courses:b4b33rph:cviceni:start|Cvičení]], [[courses:b4b33rph:literatura|Literatura, on-line materiály]], [[courses:b4b33rph:sidebar|Mapa stránek]]) Garant: [[http://cmp.felk.cvut.cz/~svoboda|Tomáš Svoboda]] Přednášející: [[http://cmp.felk.cvut.cz/~svoboda|Tomáš Svoboda]], [[http://labe.felk.cvut.cz/~posik/|Petr Pošík]], Cvičící: [[http://cmp.felk.cvut.cz/~kostkj2/|Jana Kostlivá]], [[http://petrposik.github.io|Petr Pošík]], [[http://cmp.felk.cvut.cz/~svoboda|Tomáš Svoboda]], [[zapleka3@fel.cvut.cz|Karolína Zapletalová]], [[kolarj55@fel.cvut.cz|Jakub Kolář]] /* [[https://www.aic.fel.cvut.cz/members/jindriska-deckerova|Jindřiška Deckerová]], [[https://mrs.felk.cvut.cz/members/phdstudents/vaclav-pritzl|Václav Pritzl]], [[https://mrs.felk.cvut.cz/members/phdstudents/jiri-horyna|Jiří Horyna]], [[http://mrs.felk.cvut.cz/people/petr-stibinger|Petr Štibinger]], [[kucerkr1@fel.cvut.cz|Kristýna Kučerová]] [[http://cs.fel.cvut.cz/en/people/mrkosja1|Jan Mrkos]], [[http://cmp.felk.cvut.cz/~svoboda|Tomáš Svoboda]], [[http://cs.felk.cvut.cz/en/people/zilecpav|Pavol Žilecký]], [[https://cyber.felk.cvut.cz/department/people/person/?id=782&lang=cs|Lukáš Koucký]] [[http://cmp.felk.cvut.cz/~sulcmila|Milan Šulc]], [[http://cs.fel.cvut.cz/en/people/novotj94|Jitka Novotná]], [[http://cmp.felk.cvut.cz/~peckama2|Martin Pecka]], [[http://mrs.felk.cvut.cz/people/penicka|Robert Pěnička]], [[http://cmp.felk.cvut.cz/~jasekota/|Ota Jašek]], Michal Hadrava, Tomáš Vintr [[http://mrs.felk.cvut.cz/people/matej-petrlik|Matěj Petrlík]], [[mailto:vaknieri@fel.cvut.cz|Erik Vaknin]] */ ====== Hodnocení předmětu ====== 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 ^ /*Bonus^*/ |Max. body | 23 | 32 | 35 | 10 | /*26+ |*/ * 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í.