Moodle FEL ČVUT
ACM pokročilá algoritmizace a programovací techniky I.
B242 - Letní 2024/2025
ACM pokročilá algoritmizace a programovací techniky I. - A4B36ACM1
Kredity | 4 |
Semestry | oba |
Zakončení | Klasifikovaný zápočet |
Jazyk výuky | čeština |
Rozsah výuky | 0P+3C |
Anotace
Předmět rozšířuje schopnost studentů řešit algoritmické problémy z různých oblastí informatiky. Studenti se seznámí s novými algoritmy nad rámec standardní výuky, naučí se rozpoznávat instance abstraktních problémů v prakticky formulovaných úlohách, dozví se, jak maximalizovat efektivitu a minimalizovat počet chyb ve svém kódu, a vyzkouší si práci pod časovým tlakem. Předmět je zároveň přípravou studentů na mezinárodní programátorské soutěže ACM International Collegiate Programming Contest (http://contest.felk.cvut.cz/). Studenti jsou proto vedeni ke spolupráci na řešení úloh a k práci v týmu. Předmět existuje v pěti na sebe navazujících úrovních. \\Výsledek studentské ankety předmětu je zde: http://www.fel.cvut.cz/anketa/aktualni/courses/A4B36ACM1
Cíle studia
Zvýšení programátorské pohotovosti, znalost efektivních programovacích obratů, rychlé ladění. Schopnost modifikace algoritmů pro různé požadavky.
Osnovy přednášek
None
Osnovy cvičení
Elementární datové struktury, zásobník, halda, strom, graf, hash table a jejich vlastnosti. Rekurze.
Určování efektivity jednotlivých řešení algoritmu i kódu, kromě asymptotické složitosti také vhodnost volby reprezentací struktur, efektivita knihovních funkcí.
Určování efektivity jednotlivých řešení algoritmu i kódu, kromě asymptotické složitosti také vhodnost volby reprezentací struktur, efektivita knihovních funkcí.
Literatura
Soutěžní stránky ACM na FEL: http://contest.felk.cvut.cz
Korespondenční semináře z programování: http://ksp.mff.cuni.cz, http://www.ksp.sk/ksp2.0/news, http://ganymed.math.muni.cz/ks/
Steven S. Skiena, Miguel A. Revilla: Programming Challenges http://www.acmsolver.org/books/Programming_Challenges_Miguel_Skiena.pdf
Vyhodnocovací systém na University of Valladolid: http://uva.onlinejudge.org/
*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
Jiří Demel: Grafy a jejich aplikace, Praha, Academia 2002, ISBN 80-200-0990-6, [[http://kix.fsv.cvut.cz/~demel/grafy/
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
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
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
Korespondenční semináře z programování: http://ksp.mff.cuni.cz, http://www.ksp.sk/ksp2.0/news, http://ganymed.math.muni.cz/ks/
Steven S. Skiena, Miguel A. Revilla: Programming Challenges http://www.acmsolver.org/books/Programming_Challenges_Miguel_Skiena.pdf
Vyhodnocovací systém na University of Valladolid: http://uva.onlinejudge.org/
*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
Jiří Demel: Grafy a jejich aplikace, Praha, Academia 2002, ISBN 80-200-0990-6, [[http://kix.fsv.cvut.cz/~demel/grafy/
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
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
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
Požadavky
None