Course: Programming Techniques

» List of faculties » FAV » KIV
Course title Programming Techniques
Course code KIV/PT
Organizational form of instruction Lecture + Tutorial
Level of course Bachelor
Year of study not specified
Semester Winter
Number of ECTS credits 5
Language of instruction Czech, English
Status of course unspecified
Form of instruction Face-to-face
Work placements This is not an internship
Recommended optional programme components None
Lecturer(s)
  • Adámek Adam, Ing.
  • Klika Zdeněk, Ing. Ph.D.
Course content
1. Complexity of algorithms - revision and extension of knowledge. Abstract data types 2. Searching and sorting algorithm - medians, quantils, bucket sort, radix sort, comparison of sorting algorithms 3. Data structures I - stack, queue, list, dictionary, inverted list 4. Data structures II - balanced searching trees (AVL, Red-Black, B), hash tables, graphs, sets 5. Graph algorithms - shortest path (Dijkstra, Floyd-Warshall), minimum spanning tree (Prim-Jarnik, Kruskal), bipartite graphs 6. Sets algorithms - generating of permutations and subsets 7. Text algorithms - string agreement, aproximate agreement, shortest and longest common subsequence 8. Data compression I - lossless algorithms (RLE, LZW, Huffman, arithmetic coding) 9. Data compression II - lossy methods (JPEG, wavelet compression, fractal compression 10. Cryptography - introduction, basic algorithms. 11. Programmer practice - using suitable data structures,effect of cache on program running, effect of floating point implementation of real numbers on calculation

Learning activities and teaching methods
Seminar classes, Lecture
  • Contact hours - 65 hours per semester
  • Undergraduate study programme term essay (20-40) - 30 hours per semester
  • Preparation for an examination (30-60) - 40 hours per semester
prerequisite
Knowledge
algoritmizovat jednoduché problémy
programovat v některém ze základních programovacích jazyků (Java, C, Pascal)
Skills
analyzovat zadání jednoduché úlohy
vytvořit jednoduchý program v základním programovacím jazyce
napsat a odladit jednoduchý program ve vývojovém prostředí pro daný jazyk
vytvořit uživatelskou a programátorskou dokumentaci pro vytvořený program
Competences
N/A
learning outcomes
Knowledge
vyjmenovat a použít a implementovat základní datové struktury používané v informatice (zásobník, fronta, speciální vyhledávací stromy, slovníky, hashovací tabulky, množiny, grafy)
používat a implementovat základní algoritmy řazení a vyhledávání, grafové algoritmy (nejkratší cesta, minimální kostra grafu, toky v sítích)
používat a implementovat algoritmy zpracování textů, kombinatorické algoritmy a algoritmy komprese dat
vyjmenovat a vysvětlit základní algoritmy používané v kryptografii
Skills
analyzovat problém a zvolit vhodné datové struktury a algoritmy
vytvořit program v některém ze základních programovacích jazyků
vytvořit uživatelskou a programátorskou dokumentaci pro řešený problém
zhodnotit řešení problému, popř. navrhnout možné modifikace řešeného problému, které se nepodařilo realizovat
teaching methods
Knowledge
Lecture
Practicum
Skills
Practicum
Individual study
Competences
Practicum
Individual study
assessment methods
Knowledge
Written exam
Seminar work
Skills
Written exam
Skills demonstration during practicum
Seminar work
Competences
Skills demonstration during practicum
Seminar work
Individual presentation at a seminar
Recommended literature
  • Cormen, Thomas H. Introduction to algorithms. MIT Press, 2009. ISBN 978-0262033848.
  • Goodrich, Michael T.; Tamassia, Roberto. Data structures and algorithms in Java. John Wiley & Sons, 2005. ISBN 0-471-73884-0.
  • McConnell, Steve. Dokonalý kód : umění programování a techniky tvorby software. Vyd. 1. Brno : Computer Press, 2005. ISBN 80-251-0849-X.
  • Sedgewick, Robert. Algorithms in Java. Pts. 1-4, Fundamentals, data structures, sorting, searching. 3rd ed. Boston : Addison-Wesley, 2003. ISBN 0-201-36120-5.
  • Skiena, Steven S. The algorithm design manual. 2nd ed. New York : Springer, 2008. ISBN 978-1-848-00-069-.
  • Töpfer, Pavel. Algoritmy a programovací techniky. 1. vyd. Praha : Prometheus, 1995. ISBN 80-85849-83-6.


Study plans that include the course
Faculty Study plan (Version) Category of Branch/Specialization Recommended year of study Recommended semester