Differences

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

Link to this comparison view

courses:a4b36acm1:start [2018/10/03 03:51]
courses:a4b36acm1:start [2020/09/23 22:21] (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/a4b36acm1/start.txt · Last modified: 2020/09/23 22:21 by berezovs