# Subject description - B3B33ALP

Summary of Study | Summary of Branches | All Subject Groups | All Subjects | List of Roles | Explanatory Notes               Instructions
B3B33ALP Algorithms and programming
Roles:PV, P Extent of teaching:2P+2C
Department:13133 Language of teaching:CS
Guarantors:Kybic J., Vonásek V. Completion:Z,ZK
Lecturers:Kybic J., Vonásek V. Credits:6
Tutors:Petráček P., Řimnáč M., Štěpán P., Vonásek V. Semester:Z

Web page:

https://cw.fel.cvut.cz/wiki/courses/B3B33ALP

Anotation:

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.

Study targets:

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.

Course outlines:

 1 Introduction. Basis programming structures and techniques (loops, conditional statements). Python programming language. 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.

Exercises outline:

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.

Literature:

• 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.

Requirements:

None.

Keywords:

basic programming and algorithms, programming language Python

Subject is included into these academic programs:

 Program Branch Role Recommended semester BPKYR_2021 Common courses P 1 BPBIO_2018 Common courses PV 1 BPKYR_2016 Common courses P 1

 Page updated 23.4.2024 17:51:08, semester: Z/2024-5, Z,L/2023-4, Send comments about the content to the Administrators of the Academic Programs Proposal and Realization: I. Halaška (K336), J. Novák (K336)