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