====== Literatura ====== V podstatě cokoliv o programování pro začátečníky, nejlépe v Pythonu a nejlépe rovnou ve verzi 3. * [[http://openbookproject.net/thinkcs/python/english3e/|Learning with Python]] - dobře napsaná kniha, k dispozici zdarma, existuje i papírová podoba: Wentworth, Peter, Elkner, Jeffrey and Downey, Allen B. and Meyers, Chris, //How To Think Like a Computer Scientist - Learning with Python 3 (RLE)//, 2012, 3rd edition, [[ http://howto.py.cz/index.htm | český překlad ]]. * Možná ještě lepší je [[http://greenteapress.com/thinkpython2/html/index.html|Think Python: How to Think Like a Computer Scientist]], která má s předchozí knihou stejné kořeny a je též k dispozici zdarma (byť ne česky). * Kniha: Zelle, John M., //Python Programming: An Introduction to Computer Science//, Franklin, Beedle & Associates, 2010, 2nd edition je též vhodná pro začátečníky, včetně [[http://mcsp.wartburg.edu/zelle/python/|materiálů na webu]] * Vřele doporučujeme i knihu [[http://introcs.cs.princeton.edu/python/home/|Sedgewick et al.:Introduction to Programming in Python]], byť jsou v ní témata seřazená trochu jinak, než je budeme brát my. Následující knihy jsou dobré, ale postupují možná pro začátečníky trochu rychle, doporučujeme je tedy těm pokročilejším z vás: * Kniha [[http://www.diveintopython.net/|Dive into Python]] vás rychle naučí Python a i k ní existuje [[http://diveintopython3.py.cz/|český překlad]]. * [[http://interactivepython.org/runestone/static/pythonds/index.html|Problem solving with Algorithms and Data Structures]] klade velký důraz na algoritmy a jejich složitost. Mnoho odkazů na dokumentaci, návody a tutoriály naleznete na [[http://www.python.org|domovské stránce Pythonu]] a stránce předmětu [[courses:be5b33prg:tutorials:start|BE5B33PRG]] (anglicky). Existuje i řada dalších výborných knih o programování a algoritmizaci, které ale nepoužívají Python, takže je nutné si je "překládat". Klasické jsou * [[https://mitpress.mit.edu/sicp/full-text/book/book.html|Structure and Interpretation of Computer Programs]], která klade důraz na funkcionální programování. Vřele doporučujeme těm, kteří hledají "pohled z jiné strany". * [[http://www.ethoberon.ethz.ch/WirthPubl/AD.pdf|Algorithms+Data structures]] byla jedna z prvních knih o programování, původně v jazyce Pascal, volně dostupná verze je pro jazyk Oberon. Ti, kteří už programovat (v Pythonu i obecně) umějí, mohou číst rovnou knihy o algoritmizaci, jako třeba: * [[ http://algs4.cs.princeton.edu/home/|Sedgewick,Wayne:Algorithms]] obsahuje téměř všechny důležité základní algoritmy a datové struktury, o kterých by programátor měl vědet. Kniha existuje v několika edicích a pro různé programovací jazyky, tahle je pro Javu. * [[https://ebookcentral.proquest.com/lib/cvut/detail.action?docID=3339142&query=%22Introduction+to+Algorithms%22|Cormen,Leiserson,Rivest,Stein:Introduction to Algorithms]] je rozsáhlá kniha, které zejména v oblasti matematické analýzy algoritmů jde nad rámec toho, co budeme vyžadovat v našem předmětu. Doporučujeme těm, které neodrazuje matematika a kteří se chtějí naučit něco navíc. Elektronická verze je volně dostupná v rámci ČVUT. ====== Online kurzy ====== V online kurzech se programuje přímo ve webovém prohlížeci a program se hned vyhodnotí. Takové služby jsou nabízeny i pro jiné programovací jazyky. Součástí kurzů býva vysvětlení probíraného tématu a úkoly, které je třeba splnit. * Pro začátečníky v Pythonu lze dopoučit: [[https://www.learnpython.org]] * Též [[https://www.hackerrank.com|Hackerrank]] ====== Sbírky příkladů ====== (z [[https://cw.fel.cvut.cz/old/courses/a4m33pal/literatura_odkazy|předmětu A4M33PAL]]) * Programátorské kuchařky z MFF UK[[http://ksp.mff.cuni.cz/study/cooks/cookbook.html| kuchařky.]] * Korespondenční semináře z programování (KSP), [[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]]. * Úlohy ze [[http://mo.mff.cuni.cz/p/|středoškolských programovacích olympiád ]]. * Steven S. Skiena, Miguel A. Revilla: [[http://acm.cs.buap.mx/downloads/Programming_Challenges.pdf]] -- vyborný úvod a komentář k vybraným úlohám z UVA Online Judge\\ * Vyhodnocovací systém na University of Valladolid: [[http://uva.onlinejudge.org/| UVA Online Judge]] Pomůcka: UVA Toolkit [[http://uvatoolkit.com/problemssolve.php|Tématické členění vybraných úloh z UVA ]] * Soutěžní stránky ACM na FEL: [[http://contest.felk.cvut.cz/|ACM International Collegiate Programming Contest]] * [[http://projecteuler.net/problems| Project Euler]]\\ * [[http://www.spoj.pl/problems/classical/|Sphere Online Judge]]\\