456-0551/01 – Algorithms II (ALG II)
Gurantor department | Department of Computer Science | Credits | 6 |
Subject guarantor | doc. Mgr. Jiří Dvorský, Ph.D. | Subject version guarantor | doc. Mgr. Jiří Dvorský, Ph.D. |
Study level | undergraduate or graduate | Requirement | Compulsory |
Year | 1 | Semester | summer |
| | Study language | Czech |
Year of introduction | 2009/2010 | Year of cancellation | 2009/2010 |
Intended for the faculties | FEI | Intended for study types | Bachelor |
Subject aims expressed by acquired skills and competences
The aim of the course is to acquaint students with object-oriented programming and to develop skills of students in the area of data structures. After completing the course, students will be able to:
Analyze the problem from the position given the OOP.
Develop and debug C++ program using OOP.
Use of binary trees and hash tables.
Assess the effectiveness of the solution of the problem.
Teaching methods
Lectures
Tutorials
Summary
This subject is a continuation of the course Algorithms I. In this course will be combined with the interpretation of object-oriented programming with the introduction of other frequently used data structures - binary trees and hash tables. OOP is seen rather to manage the implementation of a variety of tables, lists of operations to insert, search and subsequent deleting of elements than the proposal to more complex systems. This objective will be met in courses dealing with software engineering.
Compulsory literature:
Cormen, Leiserson, Rievest: Introduction to Algorithms, The MIT Press; 3rd edition, 2009, ISBN-13: 978-0262033848
Sedgewick: Algorithms in C++, Parts 1-4: Fundamentals, Data Structure, Sorting, Searching, Addison-Wesley Professional; 3rd edition, 1998, ISBN-13: 978-0201350883
Schildt: Teach Yourself C++, McGraw-Hill Companies; 3rd edition, 1997, ISBN-13: 978-0078823923
Recommended literature:
Cormen, Leiserson, Rievest: Introduction to Algorithms, MIT Press, 2001.
Way of continuous check of knowledge in the course of semester
Realizace a obhajoba projektu.
Programování jednoduchých aplikací na cvičeních.
E-learning
Other requirements
Prerequisities
Subject has no prerequisities.
Co-requisities
Subject has no co-requisities.
Subject syllabus:
Náplň přednášek
Úvodní přednáška, organizační záležitosti, souhrn nutných znalostí z předmětu Algoritmy I
Objektově orientované paradigma, objekt, třída, atribut, metoda
OOP v C++, dynamická alokace paměti
Dědičnost
Polymorfismus, virtuální metody
Abstraktní datové typy, využití OOP
Graf jako datrová struktura, průchody do hloubky a do šířky
Binární stromy, definice, vyhledávání
Binární stromy, vkládání, rušení vrcholů, průchody stromem
Přehled vyvážených binárních stromů, B-stromy
Hašování
Vyhledávání v textu
Náplň počítačových cvičení
Opakování z předmětu Algoritmy I
Implementace třídy v C++
Konstruktory a destruktory
Dynamická alokace paměti
Dědičnost, ukázka hierarchie tříd
Polymorfismus, čistě virtuální metody
Grafy, možnosti implementace grafů
Průchody grafem
Binární stromy
Využití hašovacích tabulek
Vyhledávání v textu
Náplň projektů
Zadání projektů budou směřovat ke zvládnutí OOP.
Conditions for subject completion
Occurrence in study plans
Occurrence in special blocks
Assessment of instruction