Subject description - B4B33RPH

Summary of Study | Summary of Branches | All Subject Groups | All Subjects | List of Roles | Explanatory Notes               Instructions
B4B33RPH Solving Problems and other Games
Roles:P Extent of teaching:2P+3C
Department:13133 Language of teaching:CS
Guarantors:Svoboda T. Completion:KZ
Lecturers:Pošík P., Svoboda T. Credits:6
Tutors:Too many persons Semester:Z


The main motivation is to let students to deal with real-world problems properly. When working on real problems the student shall learn how to decompose the big problem, how to define interfaces, how to test and validate individual steps and so on. Many problems will actually be beyond the first-year-student skills. And many problem will not be solved in the optimal way. The unsolved parts should motivate the students to study difficult theoretical subjects. They should generate the important questions. Ideally, at the end of the subject, the student should be eager to study deeper about informatics. The course also explains the basis of the object oriented design, software testing, ways for writing readable and robust codes.

Study targets:

The main motivation is to let students to deal with real-world problems properly which includes Thinking about problem, its decomposition, testing, verification, evaluation.

Course outlines:

1. Introducting course basis.
2. How to write a computer program, variables, execution.
3. Objects as the main building blocks.
4. Functions.
5. Conditionals.
6. Compound data types, iterators.
7. Iterators.
8. Exceptions, making programs robust
9. Testing and evaluating programs.
10. How to write a clean code
11. Motivation lecture I 12. Motivation lecture II
13. Motivation lecture III
14. Closing

Exercises outline:

Students will work independently on several programming assignments. They will regularly submit intermediate results and discuss the progress with teaching assistants. The list of assignements may change over time span of the course: Spam filter. How to represent frequency of bad words. Reversi (Othello). A two player game. Playing in tournaments against each other. Zip code optical character recognition. Finding the optimal path for a mobile robot through the labyrinth. Iterative prisoner's dilemma. Cooperate or not, all student players will play againts each other.


1. Peter Wentworth, Jeffrey Elkner, Allen B. Downey, and Chris Meyers. How to Think Like a Computer Scientist. 3rd edition, 2012, český překlad Jaroslav Kubias,
2. Mark Pilgrim. Dive intoPython 3. Český překlad Petr Přikryl,
3. Doporučená tématická četba k jednotlivým úlohám.






Problem solving, problem decomposition, testing, programming, Python, Java.

Subject is included into these academic programs:

Program Branch Role Recommended semester
BPOI_BO_2018 Common courses P 1
BPOI4_2018 Computer Games and Graphics P 1
BPOI3_2018 Software P 1
BPOI2_2018 Internet things P 1
BPOI1_2018 Artificial Intelligence and Computer Science P 1
BPOI1_2016 Computer and Information Science P 1
BPOI_BO_2016 Common courses P 1
BPOI4_2016 Computer Games and Graphics P 1
BPOI3_2016 Software P 1
BPOI2_2016 Internet things P 1

Page updated 21.9.2020 14:52:06, semester: Z,L/2020-1, L/2019-20, Z/2021-2, Send comments about the content to the Administrators of the Academic Programs Proposal and Realization: I. Halaška (K336), J. Novák (K336)