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

Programming Essentials

Login to KOS for course enrollment Display time-table
Code Completion Credits Range Language
BE5B33PRG Z,ZK 6 2P+2C English
Relations:
In order to register for the course BE5B33PRG, the student must have registered for the required number of courses in the group BEZBM no later than in the same semester.
Course guarantor:
Tomáš Svoboda
Lecturer:
Milan Němý, Petr Pošík, Pavel Šindler
Tutor:
Milan Němý, Pavel Šindler
Supervisor:
Department of Cybernetics
Synopsis:

The course focuses on understanding and mastering basic design principles of algorithms. It develops data abstraction coupled with the essential programming patterns. The emphasis is on creating readable and reusable programs.

Requirements:

None. Only basic computer skills like editing ascii files.

Syllabus of lectures:

Introduction and course organization, evolution of programming languages.

Algorithm design, the way of writing, flowcharts. Structure of a computer program. Problem decomposition.

Variables, expressions, basic data types and their representation. Type conversions.

Functions, pure and modifiers.

Branching and loops, if-then-else, case, for, while.

Data structures, arrays, strings. Pointers.

I/O operations, reading and writing text and binary files.

Programming styles, coding conventions, estimating complexity of the implementation, asymptotic notation.

Advanced data structures - structs, hash arrays.

Debugging and testing.

Making code human readable and programs reusable.

Overview of programming languages variety.

Syllabus of tutorials:

Computer Lab 01, first steps

Computer Lab 02, variables, conditionals

Computer Lab 03, Functions

Computer Lab 04, Iterables

Computer Lab 05, Non-trivial loops

Computer Lab 06, Modules and testing

Computer Lab 07, Files

Computer Lab 08, Automated testing

Computer Lab 09, Spam Filter I

Computer Lab 10, Spam Filter II

Computer Lab 11, Spam Filter III

Computer Lab 12, Spam Filter IV

Computer Lab 13, Spam Filter V

Study Objective:

The course focuses on understanding and mastering basic design principles of algorithms. It develops data abstraction coupled with the essential programming patterns. The emphasis is on creating readable and reusable programs.

Study materials:

Allen Downey. Think Python, How to Think Like a Computer Scientist. Green Tea Press, 2009

http://cw.fel.cvut.cz/wiki/courses/be5b33prg/literature

Note:
Further information:
https://cw.fel.cvut.cz/wiki/courses/BE5B33PRG
Time-table for winter semester 2024/2025:
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
Wed
Thu
roomKN:E-132
Šindler P.
16:15–17:45
(lecture parallel1
parallel nr.102)

Karlovo nám.
Fri
roomKN:E-301
Němý M.
Šindler P.

09:15–10:45
(lecture parallel1)
Karlovo nám.
roomKN:E-230
Šindler P.
11:00–12:30
(lecture parallel1
parallel nr.101)

Karlovo nám.
roomKN:E-230
Šindler P.
16:15–17:45
(lecture parallel1
parallel nr.103)

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