be5b33prg -- Programming Essentials

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 in Python.

( labs | tutorials | resources BE5B33PRG TIME SCHEDULE (EN))



Where and when: PRG Conference room, Friday 09:15-10:45

Teaching: Tomas Jenicek

PDF slides and other lecture materials will be made available during the semester. The lectures, however, will also include blackboard sessions as well as live coding demonstrations. Active participation in lectures is strongly recommended based on our experience from previous years. Two tests will be written during the lectures (06.11. and 11.12.); attending those lectures is required.

week date topic materials
1. 25.09.2020 Introduction. Variables, expressions. Lecture 1
2. 02.10.2020 Primitive data types, program flow
3. 09.10.2020 Program structure, functions
4. 16.10.2020 Compound data types, traversals
5. 23.10.2020 Collections (sets, dictionaries), iterators
6. 30.10.2020 Modules, namespaces, conventions
7. 06.11.2020 Mid-term test
8. 13.11.2020 Filesystem, file reading and writing
9. 20.11.2020 Debugging, code testing, exceptions
10. 27.11.2020 Objects, classes I
11. 04.12.2020 Objects, classes II
12. 11.12.2020 End-of-term test
13. 18.12.2020 Advanced concepts
14. 08.01.2020 Revision for the exam

Individual Consultations

After agreement. Specific problems will be discussed hence come with open problems you are struggling with. You may consider studying one of the recommended online resources first.

Exams and Tests

There will be two tests during the semester (mid-term and end-of-term) and a final exam during the exam period. The format of both the exam and the mid-term/end-of-term tests will be specified during the semester.

The content of the exam / test will be based on the content of:

  1. Lectures before the date of the exam / test (not limited but including the slides released after each lecture)
  2. Exercises and home-works practiced before the date of the exam / test
  3. Relevant chapters of the Wentworth2012 book
  4. Collection of Python multiple-choice question to practice for the exam related to the content of the lectures


Points: 50 homework (mostly coding), 20 tests during the term (2 tests, 10 points each), 30 final exam.

At least 30 points (out of 70) and regular lab attendance are needed before going to the final exam (in order to obtain “zapocet”). At least 10 points (out of 30) are needed to pass the final exam. To pass the course and get a grade, “zapocet” must be obtained, exam passed and at least 51 points gained in total (see the table below). It is possible to get additional up to 20 points for extra activity during the semester, such as completing a bonus homework.

100-91 90-81 80-71 70-61 60-51 50-0

F means fail.

courses/be5b33prg/start.txt · Last modified: 2020/09/24 22:15 by jenicto2