Information about course

Semester:winter 2018/2019
Lecture:15:40 Mon, S5
 9:00 Tue, S5, this lecture is in English!!!
Practicals:12:20 Mon, SU2
 12:20 Tue, SU2
 12:20 Tue, SU1
 15:40 Tue, SU2
 12:20 Wed, SU1, this practical is in English!!!
Hours/week:2/2 ZK/Z
Lecturer:Petr Hnětynka
email: hnetynka _at_
Previous year:winter semester 2017/2018


  • Practicals start on Tuesday 2nd October.
  • Practicals are in the Unix computer lab
  • Sign yourself to a practical using the information system
    • who is not signed to a practical within first three weeks of the semester will not receive "zápočet"
  • Information for those who repeats the course or does not want to attend the practicals
    • if you repeat the course and you have fulfilled some requirements of the course and you do not want to attend the practicals, then sign yourself to the special "virtual" practical
      • if you repeat the course but you want to attend a "regular" practical, of course you can
    • the requirements you fulfilled previous year can be accepted (but only in the scope of a single study)
      • explicitly write about it to the teacher of the particular practical
      • if you did not write the home project program, the topic is not automatically accepted
        • but it is not necessary to think out a new one; you can propose the original one
    • if you do not repeat the course but do not want to attend practicals, you can also sign yourself to the "virtual" practical
    • for the "virtual" practical, there are the same requirements and deadline as for the "regular" ones
    • "recipe" for the "virtual" practical
      • sign yourself to the "virtual" practical
      • write an email to the teacher of the "virtual" practical (Petr Hnetynka)
        • if you repeat the course, write about already fulfilled requirements
        • if you do not repeat the course, propose a topic of the home project program
      • work on homeworks
  • implementations of exercises from the practicals can be obtained here
    • WARNING: commonly there are incomplete implementations

Exam and "zápočet"

  • Exam is a written test
  • To obtain "zápočet" it is necessary to create home project program and successfully pass the practical programming test
  • Next, in the middle of the semester there will be six mandatory home-works.
    • It is necessary to obtain at least 225 of points from them (out of 450 points).
  • Practicals attendance is mandatory!
    • If you miss more than 3 practicals, you have to obtain at least 315 from the home-works.
  • Topics for the home program project has to be agreed till 11th January 2019
    • the topic is agreed with the teacher of the particular practical you are assigned to.
    • without properly agreed topic you will not obtain "započet"
  • Submitting the home program project
    • till the end of February; the latest deadline is 24th May 2019 12:00 (noon)
    • the project is submitted by email; only if it is necessary the project is shown personally.
    • the project is submitted as a zip archive, which contains:
      • sources,
      • build.xml file for ant (allows compilation, javadoc generation, and execution of the project),
        • Maven can be used too
      • user documentation (as a plain-text or html or pdf) so the project can be launched and tested,
        • developer documentation can be javadoc only (all methods commented, commented packages, basic info on the overview page)
      • explicitly specified version of Java, which is necessary for compilation and execution (ideally specified directly in build.xml
  • Dates for exams and practical tests will be posted in SIS
  • Information about exam
    • duration 45 minut
    • written
    • no need to have "započet" in advance
    • no resources allowed (books, notes, slides,...)
      • (only a pen and your head are allowed :-)
    • there will be one exam during summer exam period and maybe one or two exams during the semester
  • Information about practical tests
    • duration 3 hours
    • in the Unix lab
    • you can use any printed resources (books, notes,...)
      • all electronic resources and network communication is forbidden (the exceptions are API documentation (without tutorials) and the course website, i.e. slides and examples)
    • there will be also two tests during the summer exam period
  • Homeworks will be posted in ReCodEx and announced during the lecture

Slides and examples shown during lecture and practicals

1.Introduction (lecture)1.10.2018CZEN
1.Practical 1 CZEN
1.Hello world, operators, owerflows,... (examples) IntelliJ IDEA module 
2.Classes, interfaces, arrays8.10.2018CZEN
2.Practical 2 CZEN
2.Classes, constructors, ... (examples) IntelliJ IDEA module 
3.String, Exceptions, Inner classes15.10.2018CZEN
3.Practical 3 CZEN
3.String, exceptions (examples) IntelliJ IDEA module 
4.Sources, assert, generics22.10.2018CZEN
4.Practical 4 CZEN
4.Assert, generics (examples) IntelliJ IDEA module 
5.Enum, lambdas, Object29.10.2018CZEN
5.Practical 5 CZEN
5.Enum, lambdas, Object (examples) IntelliJ IDEA module 
6.Practical 6 CZEN
6.Ant example IntelliJ IDEA module 
7.Practical 7 CZEN
7.Input/Output (examples) IntelliJ IDEA module 
8.Practical 8 CZEN
8.Threads (examples) IntelliJ IDEA module 
9.Collections, Data streams26.11.2018CZEN
9.Practical 9 CZEN
9.Collections, Data streams (examples) IntelliJ IDEA module 
10.Functional programming, Serialization, Preferences, Network3.12.2018CZEN
10.Practical 10 CZEN
10.Functional programming, Serialization, Preferences, Network (examples) IntelliJ IDEA module – logging, date, time, regex, localization10.12.2018CZEN
11.Practical 11 CZEN – logging, date, time, regex, localization (examples) IntelliJ IDEA module 
12.Reflection, Modules17.12.2018CZEN
12.Practical 12 CZEN
12.Modules (examples) IntelliJ IDEA module 
13.Unit tests, More about threads, GUI7.1.2019CZEN
13.Practical 13 CZEN
13.Unit tests, etc (examples) IntelliJ IDEA module