Information about course

Semester:summer 2016/2017
Lecture:14:00 Mo, S3
Practicals:12:20 We, SU2, odd/even week
 14:00 We, SU2 odd week (in English)
Hours/week:2/1 Zk/Z
Lecturer:Petr Hnětynka
email: hnetynka _at_
Previous year:summer semester 2015/2016


  • 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 2 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 26th May 2017. "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 22nd September 2017 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,
        • explicitly specified version of Java, which is necessary for compilation and execution (ideally specified directly in build.xml)

Course synopsis

  • In-depth view of the Java language
    • Overview and history of the Java platform. Tips and tricks with the Java type system.
    • Reflection API
    • Generics, annotations
    • ClassLoaders, Security
  • Distributed technologies: RMI,...
  • Component model JavaBeans
  • Java Enterprise Edition: EJB, Servlets, Java Server Pages, Spring,...
  • Java Micro Edition: Java for mobile and embedded systems, CLDC, MIDP, MEEP
  • RTSJ
  • Other Java technologies: Java APIs for XML, JDBC, JMX,...
  • Android


Slides and examples

Reflection API20.2.2017CZEN
Reflection API (lecture 1)22.2.2017ZIP 
Plugins (lecture 1)22.2.2017ZIPNetbeans project
Proxies (lecture 1)22.2.2017ZIPNetbeans project
Practicals 122.2.2017CZEN
History and future, Generics, Annotations27.2.2017CZEN
Annotations - unit testing example (lecture 2)27.2.2017ZIPNetbeans project
Annotations - compiler processing (lecture 2)27.2.2017ZIPNetbeans project
ClassLoaders, Bytecode, JNI, JNA6.3.2017CZEN
Classloaders example (lecture 3)6.3.2017ZIPNetbeans project
Service loader example (lecture 3)6.3.2017ZIPNetbeans project
JNI example (lecture 3)6.3.2017ZIP 
JNA example (lecture 3)6.3.2017ZIPNetbeans project
Practicals 26.3.2017CZEN
RMI, Security13.3.2017CZEN
RMI examples (lecture 4)13.3.2017ZIP 
Security examples (lecture 4)13.3.2017ZIPNetbeans project
Practicals 320.3.2017CZEN
JDBC, Hibernate, XML API, Scripting API27.3.2017CZEN
JMX examples (lecture 7)3.4.2017ZIPNetBeans ZIP
Practicals 43.4.2017CZEN
Servlets, JSP, JSF10.4.2017CZEN
Practicals 519.4.2017CZEN
AspectJ, EJB, Spring24.4.2017CZEN
Practicals 63.5.2017CZEN
RTSJ, LeJOS, Android22.5.2017CZEN