Logo ČVUT
CZECH TECHNICAL UNIVERSITY IN PRAGUE
STUDY PLANS
2025/2026

Algorithms and Programming

Display time-table
Code Completion Credits (ECTS) Range Language
B3B33ALP Z,ZK 6 2P+2C Czech
Relations:
In order to register for the course B3B33ALP, the student must have registered for the required number of courses in the group BEZBM no later than in the same semester.
During a review of study plans, the course BAB37ZPR can be substituted for the course B3B33ALP.
It is not possible to register for the course B3B33ALP if the student is concurrently registered for or has previously completed the course BAB37ZPR (mutually exclusive courses).
Course guarantor:
Vojtěch Vonásek
Lecturer:
Vojtěch Vonásek
Tutor:
Matej Novosad, Ondřej Procházka, Martin Řimnáč, Petr Štěpán, Vojtěch Vonásek
Supervisor:
Department of Cybernetics
Synopsis:

This subject will give students a basic understanding of algorithms and programming and teach them to design, implement and test algorithms for simple tasks. The students will understand the notion of computational complexity. They will learn about basic program building blocks such as loops, conditional statements, variables, functions and recursion. We will introduce the most often used data structures (queue, stack, list, array etc) and operations on them. We will show the basic algorithms, for example for searching and sorting. Students will learn to write simple programs in Python.

Requirements:

None.

Syllabus of lectures:

1. Introduction, basic program structures and techniques, the Python language.

2. Strings, files.

3. Functions, principles of functional programming.

4. Data types, the array type, multidimensional arrays.

5. Searching and sorting algorithms.

6. Abstract data types. Queue, stack, record. Fundamentals of object-oriented programming.

7. Associative arrays, hash tables.

8. Linked lists, trees.

9. Analysis of algorithm complexity.

10. Recursion and quicksort, sorting algorithms.

11. Graphs, representations, graph algorithms.

12. State-space search, minimax.

13. Priority queue, heap.

14. Modules, error and exception handling, regular expressions.

Syllabus of tutorials:

Exercises in computer labs will help the students to internalize the content from lectures; they will get used to programming habits and will experimentaly verify the features of algorithms. Programming at home is an important part of the study.

Study Objective:

The goal of the course is to give students elementary knowledge of programming and algorithmization and teach them to design, implement and test programms for solving simple tasks.

Study materials:

Wentworth, Peter, Elkner, Jeffrey and Downey, Allen B. and Meyers, Chris. 2012. How To Think Like a Computer Scientist - Learning with Python 3 (RLE), 3. vyd. Available online: http://openbookproject.net/thinkcs/python/english3e/.

Downey, Allen B. 2016. Think Python: How to Think Like a Computer Scientist. 2. vyd. Sebastopol, CA: OReilly Media. Available online: https://greenteapress.com/thinkpython2/html/index.html

Zelle, John. 2016. Python Programming: An Introduction to Computer Science. 3. vyd. Portland, Oregon: Franklin, Beedle & Associates. Materials at https://mcsp.wartburg.edu/zelle/python/.

Sedgewick, Robert, Kevin Wayne, a Robert Dondero. 2015. Introduction to Programming in Python: An Interdisciplinary Approach. New York: Addison-Wesley Professional.

Note:
Further information:
https://cw.fel.cvut.cz/wiki/courses/B3B33ALP
Time-table for winter semester 2025/2026:
06:00–08:0008:00–10:0010:00–12:0012:00–14:0014:00–16:0016:00–18:0018:00–20:0020:00–22:0022:00–24:00
Mon
roomKN:E-107
Vonásek V.
09:15–10:45
(lecture parallel1)
Karlovo nám.
roomKN:E-230
Řimnáč M.
11:00–12:30
(lecture parallel1
parallel nr.101)

Karlovo nám.
roomKN:E-132
Vonásek V.
14:30–16:00
(lecture parallel1
parallel nr.102)

Karlovo nám.
roomKN:E-132
Vonásek V.
16:15–17:45
(lecture parallel1
parallel nr.105)

Karlovo nám.
roomKN:E-132

11:00–12:30
(lecture parallel1
parallel nr.111)

Karlovo nám.
roomKN:E-230
Novosad M.
14:30–16:00
(lecture parallel1
parallel nr.103)

Karlovo nám.
roomKN:E-230
Novosad M.
16:15–17:45
(lecture parallel1
parallel nr.108)

Karlovo nám.
roomKN:E-230
Řimnáč M.
12:45–14:15
(lecture parallel1
parallel nr.104)

Karlovo nám.
Tue
roomKN:E-132
Procházka O.
09:15–10:45
(lecture parallel1
parallel nr.107)

Karlovo nám.
roomKN:E-230
Procházka O.
11:00–12:30
(lecture parallel1
parallel nr.106)

Karlovo nám.
Wed
Thu
roomKN:E-132

14:30–16:00
(lecture parallel1
parallel nr.109)

Karlovo nám.
Fri
Time-table for summer semester 2025/2026:
Time-table is not available yet
The course is a part of the following study plans:
Data valid to 2026-09-16
For updated information see http://bilakniha.cvut.cz/en/predmet4673906.html