Algorithms and programming
Code  Completion  Credits  Range  Language 

B3B33ALP  Z,ZK  6  2P+2C  Czech 
 Corequisite:
 Safety in Electrical Engineering for a bachelor´s degree (BEZB)
Basic health and occupational safety regulations (BEZZ)  The course is a substitute for:
 Programming Essentials (BAB37ZPR)
 Lecturer:
 Jan Kybic (guarantor)
 Tutor:
 Jan Kybic (guarantor), Jan Hering, Tomáš Pivoňka, 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. Finally, we will briefly cover the main programming
paradigms.
 Requirements:

None.
 Syllabus of lectures:

1. What is an algorithm, why to study algorithms, my first algortihm,
Python, organizational remarks.
2. Basis programming structures and techniques (loops, conditional
statements). Asymptotic complexity.
3. Arrays, insertion sort. Debugging.
4. Queue and stack. Finite automaton.
5. List. Merge sort.
6. Recursion. Quick sort. Functions.
7. Numerical algorithms, numerical accuracy.
8. Priority queue, heap, heapsort.
9. Hash tables.
10. Trees.
11. Sets and association maps.
12. Graphs and graph operations. State space search. Backtracking.
13. Strings, searching and sorting.
14. Programming paradigms.
 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:

Sedgewick, Wayne: Algorithms (4th Edition), 2011, ISBN 9780321573513
Sedgewick, Wayne, Dondero: Introduction to Programming with Python: An Interdisciplinary Approach.
2015, ISBN 9780134076430
 Note:
 Further information:
 http://cw.fel.cvut.cz/wiki/courses/b3b33alp/start
 Timetable for winter semester 2019/2020:

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 Tue Fri Thu Fri  Timetable for summer semester 2019/2020:
 Timetable is not available yet
 The course is a part of the following study plans:

 Cybernetics and Robotics 2016 (compulsory course in the program)