Information about course

Semester:summer 2018/2019
Lecture:9:00 Mo, S3
 10:40 Tu, S3 (in English)
Practicals:12:20 Mo, SU1
 15:40 Tu, SU2
 10:40 Th, SU2 odd week (in English)
Hours/week:2/2 Zk/Z
Lecturer:Petr Hnětynka
email: hnetynka _at_
Previous year:summer semester 2017/2018


  • 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 do not want to attend the practicals
    • if you 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
  • if you repeat the course 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 (within first three weeks of the semester)
    • 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

Exam and "zápočet"

  • Exam is a written test
  • To obtain "zápočet" it is necessary to create a home project program and successfully pass the practical programming test
  • Next, there will be three home-works
    • It is necessary to obtain at least 150 of points from them
  • Practicals attendance is mandatory! If you miss more than 3 practicals, you have to obtain at least 210 from the home-works
  • The home project has to non-trivially exploiting a covered technology.
  • The project has to be appropriately complex.
    • The topic of the project has to be agreed (by email) with the lecturer till Friday 24th May 2019. "Agreed" means that the topic is suggested by a student and confirmed by the lecturer.
    • The project should be submitted till the end of June; the latest deadline is Friday 20th September 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 or Gradle can be used too
        • user documentation (as a plain-text or html or pdf) so the project can be launched and tested,
        • explicitly specified version of Java, which is necessary for compilation and execution (ideally specified directly in build.xml)

Course synopsis

  • GUI
  • In-depth view of the Java language
    • Reflection API
    • Generics, annotations
    • ClassLoaders, Security
  • Distributed technologies: RMI,...
  • Component model JavaBeans
  • Java Enterprise Edition: Servlets, EJB, Spring,...
  • Java Micro Edition: Java for mobile and embedded systems, CLDC, MIDP, MEEP
  • RTSJ
  • Other Java technologies: Java APIs for XML, JDBC, JMX,...
  • Other languages compiled to Java bytecode (Kotlin,...)
  • Android


  • Homeworks will be posted here and announced during the lecture

Slides and examples

Introduction, Reflection API18.2.2019CZEN
Reflection API (lecture 1) ZIP 
Plugins (lecture 1) ZIP 
Proxies (lecture 1) ZIP 
Practicals 1 CZEN
Generics, Annotations25.2.2019CZEN
Annotations - unit testing example (lecture 2) ZIP 
Annotations - compiler processing (lecture 2) ZIP 
Practicals 2 CZEN