## Semester organization

Practices attendance
Attending practices is mandatory. A student who cannot attend practices for important personal/health/study reasons has to negotiate their situation with PGE teacher(s) in advance, to establish a plan of appropriate replacement learning activities. Apart from these rules, at most two (or similar low number) unexplained absences at practices are acceptable.

Individual work
All code a student turns in during the course has to be written individually by him/her. However, students are encouraged to discuss the solution ideas with other students and teachers before coding. It is the code which has to be produced strictly individually, not the idea of the solution. Plagiarism is not supported at CTU, see the plagiarism dealing rules.

Programming homeworks
There are 8 programming homeworks in the semester. The total value of the homeworks is 32 points, the maximum value of each one homework is 4 points. To obtain the assessment it is necessary to solve successfully a number of problems which yields at least 20 points. The homeworks are assigned and the solutions are evaluated in the upload system BRUTE.

The deadlines of the homeworks are fixed. Solutions submitted after the deadline are not graded. Individual submission plan can be agreed upon in case of prolonged sickness, foreign trip or other important causes.

assignment --  deadline
1.  24.2. -- 11.3. ( Arrays processing )
2.   3.3. -- 18.3. ( Arrays processing )
3.  10.3. --  1.4. ( text/string processing )
4.  24.3. -- 15.4. ( text/string processing )
5.  31.3  -- 22.4. ( Recursion )
6.  14.4. --  6.5. ( Combined )
7.  21.4. -- 13.5. ( Graph search )
8.  28.4. -- 20.5. ( Graph search )

Correct 10 of given 10 test cases   ...  4 pts
Correct  9 of given 10 test cases   ...  3 pts
Correct  8 of given 10 test cases   ...  2 pts
Correct  7 of given 10 test cases   ...  1 pt
Correct  6 or less of given 10 test cases   ...  0 pts

Assessment

• It is necessary to obtain at least 20 of maximum 32 points for solving the programming homeworks.
• It is vitally important to avoid plagiarism in the homeworks, read carefully the rules of Plagiarism. Consult the teacher in advance if there is anything unclear to you in this regard.

Consultations
The preferred time for consultations is Tuesday afternoon and Wednesday not colliding with PGE lessons.
Other days/hours, depending on the circumstances are also possible.
The exact time/venue of particular consultations should be agreed upon in advance, e.g. by e-mail or personally during the lessons.

# Practices 1-14

Follow the assignments at the end of the code and calculate results or modify the code accordingly.

1. Understanding efficiency of code fragments and entire program

2. 1D array and list processing, Python built-in functions
1D array problems, solve them all

3. 2D arrays training problems
If the problems are too trivial for you, prove it by solving the last one in the problem list and show your solution to the teacher. After that you will be not obliged to solve the other problems. Otherwise, work through the problems one by one according to your capacity.

4. Text files processing, text search

The list of exercises is available at Exercises page.

5. Effectivity of search and sort methods on various datasets

The list of exercises is available at Exercises page.

6. stack, queue, tree – and their implementation

The (small) list of exercises is available at Exercises page

7 and 8. Recursive functions and procedures. Recursive generation of data/objects
The list of exercises is available at exercises page.

9. Basics of User Interface, TKinter

10. Data processing libraries numpy, matplotlib
The exercise is available at exercises page

11. Programming repetitions II & III

12. Debugging, testing, writing clean code

14. Python application libraries SageMath, NetworkX