Warning
This page is located in archive. Go to the latest version of this course pages.

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

courses:a4b36acm2:start [2018/10/03 03:51]
courses:a4b36acm2:start [2018/10/03 03:51] (current)
Line 1: Line 1:
 +====== Seminář ACM pokročilá algoritmizace a programovací techniky I - V (A4B36ACM1-5) ======
 +<fc #​0000FF>​**The whole object is to bite off more than you can chew. (...) It’s the correct way to look at things and the correct place to start, I think.**</​fc> ​
 +\\
 +([[http://​en.wikipedia.org/​wiki/​Eric_Idle| Eric Idle ]]) a  ([[http://​www.indielondon.co.uk/​Film-Review/​not-the-messiah-he-s-a-very-naughty-boy-eric-idle-interview| interview s citátem]])\\
 +
 +=== Kontakt a informace ===
 +**Garant:** :
 +[[mailto:​mannova@fel.cvut.cz| Ing. Božena Mannová, Ph.D. ]]\\
 +**Vyučují:​**: ​
 +[[mailto:​tunystom@gmail.com | Tomáš Tunys ]],   
 +[[mailto:​berezovs@fel.cvut.cz| Marko Genyk-Berezovskyj ]]\\
 +----
 +
 +=== Záměření semináře ===
 +
 +Studenti, kteří chtějí systematicky zlepšovat svoje algoritmizační a programátorské schopnosti, potřebují vhodně navázat na předměty programování/​algoritmizace v prvním ročníku. K dobrému programování je nutné kromě kodérské pohotovosti také disponovat co nejširším arzenálem algoritmů a zkušeností s jejich přizpůsobováním pro různé situace.
 +ACM seminář se snaží poskytnout posluchačům praxi a základ pro další studium pokročilejších algoritmů a datových struktur. ​
 +Kromě toho se seminář inspiruje každoroční programovací soutěží [[http://​contest.felk.cvut.cz/​| ACM Programming Contest]] a klade si za cíl připravit zájemce co nejlépe na tuto soutěž.\\
 +Seminář je otevřen pro posluchače všech studijních programů. ​ \\
 +
 +----
 +
 +=== Struktura semináře ===
 +Čas semináře se dělí mezi teoretickou přípravu a praktické řešení úloh. Teoretické příparavě je věnována 1/3 celkového času semináře a 2/3 času (tj. cca 28 hodin za semestr) jsou věnovány programování ve formě minisoutěží. Teoretická příprava navazuje na algoritmická témata bakalářské etapy, praktické programování tuto přípravu využívá ​
 +a akcentuje efektivní implementaci.  ​
 +
 +
 +----
 +=== Pravidelná minisoutěž === 
 + ​Během jednoho semináře jsou zadány 2-3 úlohy podle úrovně posluchačů,​ které je nutno na místě co nejrychleji a zároveň co nejlépe vyřešit.
 +Vyučující přitom průbežně prochází se studenty jejich jednotlivá řešení, konzultuje jejich kvalitu, použité algoritmy a datové struktury a navrhuje vhodné úpravy. Semestr obsahuje cca 20 úloh k samostatnému programování v minisoutěži. \\ 
 +
 +Úlohy, které posluchači řeší, jsou ve většině případů dobře ohodnoceny jejich relativní náročností podle mezinárodní úspěšnosti řešitelů v předchozích letech. Výsledky posluchačů jsou hodnoceny mezinárodně využívaným automatem [[http://​uva.onlinejudge.org/​| UVA Online Judge]], což představuje dobrý tréninkový model účasti ve skutečné soutěži. Strojové hodnocení zároveň poskytuje vzájemné porovnání pokroku posluchačů a využívá se pro klasifikaci. Doufáme, že forma minisoutěže sama o sobě přispěje k motivaci účastníků podat co nejlepší výkon.\\ ​
 +
 +----
 +===  Teoretické partie ===
 +Teoretické partie jsou pokryty literaturou [[http://​www.amazon.co.uk/​Introduction-Algorithms-T-Cormen/​dp/​0262533057/​ref=sr_1_1?​ie=UTF8&​qid=1327340064&​sr=8-1| [CLRS] ]], [[http://​kix.fsv.cvut.cz/​~demel/​grafy/​| [Demel] ]], [[http://​newwiki.ceske-hry.cz/​Kniha_Algoritmy_v_C,​_%C4%8D%C3%A1sti_1-4 | [Sedgewick 1-4] ]], [[http://​www.prometheus-nakl.cz/​index.php?​zobraz=detail&​id_katalog=228| [Töpfer] ]] aj. 
 +Standardní partie základních algoritmů a datových struktur jsou v nich přehledně a do značné hloubky probírány. ​ Zájemci se během semestru mohou s těmito knihami seznámit, většina z nich je zároveň dobrou referenční příručkou jak během studia tak i po jeho ukončení a má své místo v knihovničce profesionála.\\ ​   ​
 +
 +
 +----
 +
 +=== Úrovně semináře ===
 +
 +Předmět existuje v v pěti úrovních se vzrůstající náročností a má v každé úrovni časovou dotaci 0+3. Úrovně 1.-4. jsou vypisovány v obou semestrech, úroveň 5. jen v zimním semestru jako příprava na soutěž ACM, cvičení pro všechny úrovně jsou společná v jednu dobu.\\
 +
 +Posluchač může začít navštěvovat předmět v kterékoli úrovni, pokud jsou jeho znalosti dostatečné. Po úspěšném absolvování ​ úrovně si může zapsat vyšší úroveň. Přitom, pokud to jeho znalosti umožňují nebo vynucují, může řešit úlohy z ostatních úrovní, podle svých individuálních možností a zájmů. ​ \\
 +
 +{{:​courses:​a4b36acm:​levels.gif| abc}}
 +
 +----
 +
 +=== Zápočet ===
 +Předměty jsou ukončeny klasifikovaným zápočtem.  ​
 +Nutnou podmínkou pro udělení zápočtu je správně vyřešení dostatečného množství zadaných úloh. Podle úrovně semináře a ročníku je předepsán v každém semestru příslušný počet úloh a způsob vyhodnocení jednotlivých řešení. Volbu algoritmů a datových struktur a jejich adekvátní použití v úloze posoudí vyučující. Výsledná klasifikace závisí na počtu správně vyřešených úloh a na programátorské kvalitě řešení.
 +Umístění v první polovině skupiny všech řešitelů regionálního kola ACM programming Contest je vždy postačující podmínkou zápočtu s hodnocením A. \\
 +
 +
 +----
 +
 +==== Odkazy a literatura ====
 +
 +**[ACM Contest]** ​ Soutěžní stránky ACM na FEL: [[http://​contest.felk.cvut.cz/​|ACM International Collegiate Programming Contest]] \\
 +**[KSP]** Korespondenční semináře z programování,​ [[http://​ksp.mff.cuni.cz/​ |MFF UK Praha]], ​ [[http://​www.ksp.sk/​ksp2.0/​news/​|MFF UK Bratislava]],​ [[http://​ganymed.math.muni.cz/​ks/​|MU Brno]]. \\ 
 +**[OLD]** ​ Loňské stránky předmětu [[http://​acm.algoritmy.eu/​|zde]]. \\
 +**[Skiena]** ​ Steven S. Skiena, Miguel A. Revilla: [[http://​www.acmsolver.org/​books/​Programming_Challenges_Miguel_Skiena.pdf|Programming Challenges]] \\
 +**[UVA Judge]** ​ Vyhodnocovací systém na University of Valladolid: [[http://​uva.onlinejudge.org/​| UVA Online Judge]] \\
 +\\
 +
 +**[CLRS]** T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein: Introduction to Algorithms, 3rd ed., MIT Press, 2009, ISBN-13: 978-0262533058,​ [[http://​www.amazon.co.uk/​Introduction-Algorithms-T-Cormen/​dp/​0262533057/​ref=sr_1_1?​ie=UTF8&​qid=1327340064&​sr=8-1| link]]. \\
 +**[Demel]** J. Demel: Grafy a jejich aplikace, Praha, Academia 2002, ISBN 80-200-0990-6,​ [[http://​kix.fsv.cvut.cz/​~demel/​grafy/​| link]]. \\
 +**[Sedgewick 1-4]** Robert Sedgewick: Algoritmy v C, části 1-4, SoftPress, Praha, 2003, ISBN 80-86497-56-9,​ [[http://​newwiki.ceske-hry.cz/​Kniha_Algoritmy_v_C,​_%C4%8D%C3%A1sti_1-4 | link ]] \\
 +**[Sedgewick 5]** Robert Sedgewick: Algorithms in C Part 5: Graph Algorithms (3rd Edition), Addison-Wesley Professional,​ 2002, ISBN-13: 978-0201316636,​ [[http://​www.amazon.co.uk/​Algorithms-C-Graph-Pt-5/​dp/​0201316633/​ref=sr_1_10?​s=books&​ie=UTF8&​qid=1327340310&​sr=1-10| link]] .\\ 
 +**[Töpfer]** Pavel Töpfer: Algoritmy a programovací techniky, Prometheus Praha 1995, 2. vydání 2007, ISBN: 978-80-7196-350-9,​ [[http://​www.prometheus-nakl.cz/​index.php?​zobraz=detail&​id_katalog=228| link]]. \\
 +
 +
  
courses/a4b36acm2/start.txt · Last modified: 2018/10/03 03:51 (external edit)