Solving Problems and other Games
Code | Completion | Credits | Range | Language |
---|---|---|---|---|
B4B33RPH | KZ | 6 | 2P+3C | Czech |
- Relations:
- It is not possible to register for the course B4B33RPH if the student is concurrently registered for or has already completed the course AE4B99RPH (mutually exclusive courses).
- In order to register for the course B4B33RPH, the student must have registered for the course BEZZ no later than in the same semester.
- It is not possible to register for the course B4B33RPH if the student is concurrently registered for or has previously completed the course AE4B99RPH (mutually exclusive courses).
- Course guarantor:
- Tomáš Svoboda
- Lecturer:
- Petr Pošík, Tomáš Svoboda
- Tutor:
- Barbora Hálová, Jakub Kolář, Patrik Kolář, Jana Kostlivá, Klára Losenická, Daria Mikhaylovskaya, Petr Pošík, Tomáš Svoboda
- Supervisor:
- Department of Cybernetics
- Synopsis:
-
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.
- Requirements:
-
none
- Syllabus of lectures:
-
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
- Syllabus of tutorials:
-
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.
- Study Objective:
-
The main motivation is to let students to deal with real-world
problems properly which includes Thinking about problem, its decomposition, testing, verification, evaluation.
- Study materials:
-
1. Peter Wentworth, Jeffrey Elkner, Allen B. Downey, and Chris Meyers. How to Think Like a Computer Scientist. 3rd edition, 2012, http://openbookproject.net/thinkcs/python/english3e/ český překlad Jaroslav Kubias, http://howto.py.cz
2. Mark Pilgrim. Dive intoPython 3. Český překlad Petr Přikryl, http://diveintopython3.py.cz
3. Doporučená tématická četba k jednotlivým úlohám.
- Note:
- Further information:
- https://cw.fel.cvut.cz/wiki/courses/B4B33RPH
- 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 Fri - Time-table for summer semester 2024/2025:
- Time-table is not available yet
- The course is a part of the following study plans:
-
- Open Informatics - Computer Science 2016 (compulsory course in the program)
- Open Informatics - Internet of Things 2016 (compulsory course in the program)
- Open Informatics - Software 2016 (compulsory course in the program)
- Open Informatics - Computer Games and Graphics 2016 (compulsory course in the program)
- Open Informatics (compulsory course in the program)
- Open Informatics (compulsory course in the program)
- Open Informatics - Artificial Intelligence and Computer Science 2018 (compulsory course in the program)
- Open Informatics - Internet of Things 2018 (compulsory course in the program)
- Open Informatics - Software 2018 (compulsory course in the program)
- Open Informatics - Computer Games and Graphics 2018 (compulsory course in the program)