Logo ČVUT
CZECH TECHNICAL UNIVERSITY IN PRAGUE
STUDY PLANS
2021/2022

Algorithms and programming

Login to KOS for course enrollment Display time-table
Code Completion Credits Range Language
B3B33ALP Z,ZK 6 2P+2C Czech
Corequisite:
The course is a substitute for:
Programming Essentials (BAB37ZPR)
Lecturer:
Jan Kybic (guarantor)
Tutor:
Jan Kybic (guarantor), Denis Baručić, 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. Basis programming structures and techniques (loops, conditional

statements). Python programming langyage.

2. Functions, strings, modules. Principles of functional programming.

3.Data types. Arrays.

4. Assymptotic complexity. Searching and sorting.

5. Recursion. Quick sorting.

6. Records. Principles of object oriented programming. Queue and stack.

7. Finite automaton. Regular expressions.

8. Linked lists. Trees.

9. Priority queue, heap, heapsort.

10. Sets and association maps. Hash tables.

11. State space search.

12. Constraint satisfaction. Dynamic programming.

13. Graphs and graph algorithms.

14. Numerical calculations and visualization.

Syllabus of tutorials:

Python programming language.

Students will independently solve a number of short practical programming exercises.

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: O’Reilly 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 2021/2022:
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
Kybic J.
09:15–10:45
(lecture parallel1)
Karlovo nám.
Zengerova posluchárna K1
roomKN:E-230
Vonásek V.
11:00–12:30
(lecture parallel1
parallel nr.101)

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

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

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

Karlovo nám.
Laboratoř PC
roomKN:E-230
Řimnáč M.
14:30–16:00
(lecture parallel1
parallel nr.103)

Karlovo nám.
Laboratoř PC
roomKN:E-327

16:15–17:45
(lecture parallel1
parallel nr.108)

Karlovo nám.
Solarium K327
roomKN:E-132

12:45–14:15
(lecture parallel1
parallel nr.109)

Karlovo nám.
Laboratoř PC
Tue
roomKN:E-132
Štěpán P.
09:15–10:45
(lecture parallel1
parallel nr.107)

Karlovo nám.
Laboratoř PC
roomKN:E-230
Baručić D.
11:00–12:30
(lecture parallel1
parallel nr.106)

Karlovo nám.
Laboratoř PC
Wed
Thu
Fri
Time-table for summer semester 2021/2022:
Time-table is not available yet
The course is a part of the following study plans:
Data valid to 2022-08-14
For updated information see http://bilakniha.cvut.cz/en/predmet4673906.html