Information about course

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


  • Practicals start on Wednesday 4th 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 12th January 2018
    • 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 25th May 2018 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)3.10.2017CZEN
1.Practical 1 CZEN
1.Hello world, operators, owerflows,... (examples)  
2.Classes, interfaces, arrays10.10.2017CZEN
2.Practical 2 CZEN
2.Constructors, finalize, ... (examples) IntelliJ IDEA module 
3.String, Exceptions, Inner classes17.10.2017CZEN
3.Practical 3 CZEN
3.String, exceptions (examples) IntelliJ IDEA module 
4.Sources, assert, generics24.10.2017CZEN
4.Practical 4 CZEN
4.Assert, generics (examples) IntelliJ IDEA module 
5.Enum, lambdas, Object31.10.2017CZEN
5.Practical 5 CZEN
5.Enum, lambdas, Object (examples) IntelliJ IDEA module 
6.Practical 6 CZEN
7.Practical 7 CZEN
7.Input/Output (examples) IntelliJ IDEA module 
8.Practical 8 CZEN
8.Threads (examples) IntelliJ IDEA module 
9.Collections, Data streams28.11.2017CZEN
9.Practical 9 CZEN
9.Collections, Data streams (examples) IntelliJ IDEA module 
10.Functional programming, Serialization, Preferences, Network5.12.2017CZEN
10.Practical 10 CZEN
10.Functional programming, Serialization, Preferences, Network (examples) IntelliJ IDEA module – logging, date, time, regex, localization12.12.2017CZEN
11.Practical 11 CZEN – logging, date, time, regex, localization (examples) IntelliJ IDEA module 
12.Reflection, Modules19.12.2017CZEN
12.Practical 12 CZEN
12.Modules (examples) IntelliJ IDEA module 
13.Unit tests, More about threads9.1.2018CZEN
13.Practical 13 CZEN
13.Unit tests, etc (examples) IntelliJ IDEA module