Skip to main content
Skip header

Algorithms I

* Exchange students do not have to consider this information when selecting suitable courses for an exchange stay.

Course Unit Code460-2001/05
Number of ECTS Credits Allocated4 ECTS credits
Type of Course Unit *Compulsory
Level of Course Unit *First Cycle
Year of Study *First Year
Semester when the Course Unit is deliveredSummer Semester
Mode of DeliveryFace-to-face
Language of InstructionCzech
Prerequisites and Co-Requisites
PrerequisitiesCourse Unit CodeCourse Unit Title
460-2052Introduction to Programming
460-2054Functional Programming
Name of Lecturer(s)Personal IDName
DVO26doc. Mgr. Jiří Dvorský, Ph.D.
Summary
This course is one of the introductory programming courses. The course aims to introduce students to problem solving techniques, strategies, using algorithms. The algorithms and data structures discussed will be demonstrated in C++. Students are encouraged to analyze algorithmic problems and to synthesize solutions from smaller units.
Learning Outcomes of the Course Unit
To introduce students to problem solving techniques using algorithms. Upon completion of the course, the student will be able to:
define and describe selected problem solving algortihmic techniques using,
demonstrate these techniques on sample problems
use these techniques to solve other problems,
work with combinations of several techniques together.
Course Contents
Algorithm. Algorithmic problem solving strategies. Important problem types.
Analysis of complexity of algorithms.
Brute force strategy. SelectSort. BubbleSort. Sequential search. Convex hull problem. Closest pair problem.
Complete search strategy. Traveling salesman problem. Knapsack problem. Graph traversal.
Decrease and conquer strategy. InsertSort. Generate permutations and subsets. Binary search algorithm. Finding the median. Interpolation search. Searching and insertion in a binary search tree.
Divide and conquer strategy. QuickSort. MergeSort. Convex hull problem. Closest pair problem.

Computer seminars
Iterative algorithms complexity analysis.
Recursive algorithms complexity analysis.
Implementation of convex hull problem, closest pair problem.
Traveling salesman problem - experiments with complete search solution.
Graph traversal algorithms usage.
Generate permutations and subsets.
Implementation of binary search algorithm, interpolation search algorithm and median finding.
Binary search tree implementation.
Implementation of divide and conquer strategy solutions.
Recommended or Required Reading
Required Reading:
LEVITIN, Anany. Introduction to the design. 3rd ed. Boston: Pearson, 2012. ISBN 978-0-13-231681-1.
CORMEN, Thomas H. Introduction to algorithms. 2nd ed. Cambridge, Mass.: MIT Press, 2001. ISBN 02-620-3293-7.
SEDGEWICK, Robert. Algorithms in C. 3rd ed. Reading, Mass: Addison-Wesley, 1998. ISBN 978-020-1350-883.









LEVITIN, Anany. Introduction to the Design and Analysis of Algorithms. 3rd ed. Boston: Pearson, 2012. ISBN 978-0-13-231681-1.
CORMEN, Thomas H. Introduction to algorithms. 2nd ed. Cambridge, Mass.: MIT Press, 2001. ISBN 02-620-3293-7.
SEDGEWICK, Robert. Algoritmy v C. Praha: SoftPress, 2003. ISBN 80-864-9756-9.
WRÓBLEWSKI, Piotr. Algoritmy. Brno: Computer Press, 2015. ISBN 978-80-251-4126-7.
WIRTH, N. Algoritmy a štruktúry údajov, Alfa, Bratislava 1989.
Studijní opora (skripta), dostupné na stránkách garanta předmětu, www.cs.vsb.cz/dvorsky
Recommended Reading:
STROUSTRUP, Bjarne. The C++ programming language. Fourth edition. Upper Saddle River, NJ: Addison-Wesley, 2013. ISBN 978-0321563842.
SCHILDT, Herbert. Teach yourself C++. 3rd ed. Berkeley: Osborne McGraw-Hill, 1998. ISBN 978-0078823923.
STROUSTRUP, Bjarne. C++ programovací jazyk. Praha: Softwarové Aplikace a Systémy, 1997. ISBN 80-901-5072-1.
VIRIUS, Miroslav. Pasti a propasti jazyka C++. 2., aktualiz. a rozš. vyd. Brno: CP Books, 2005. ISBN 80-251-0509-1.
SCHILDT, Herbert. Nauč se sám C++: [poznej, vyzkoušej, používej]. Praha: SoftPress, 2001. ISBN 80-864-9713-5.
ECKEL, Bruce. Myslíme v jazyku C++. Praha: Grada, 2000. Knihovna programátora (Grada). ISBN 80-247-9009-2.
Planned learning activities and teaching methods
Lectures, Tutorials
Assesment methods and criteria
Task TitleTask TypeMaximum Number of Points
(Act. for Subtasks)
Minimum Number of Points for Task Passing
Graded creditGraded credit100 (100)51
        Průběžná aktivitaOther task type30 15
        Obhajoba projektuProject30 15
        Závěrečná písemná práceWritten test40 21