Advanced Java Programming

The course is not on the list Without time-table
Code Completion Credits Range Language
AE4B77JVA Z,ZK 6 2+2c
Department of Cybernetics

The course of Advance JAVA programming provides programming approach for JAVA language. It provides the description of programming languages based on virtual machine execution, memory management with its garbage collector, data structures, exception handling, class loaders and boot class loaders, and the concept of object oriented programming. Beside, it address the program package structures, applications vs. applets, debugging, deadlock detection, tools for programming in team, profiling tools and optimization techniques. The course provides the description of basic modules for graphics user interfaces, threads, synchronization, file and network interfaces.

Syllabus of lectures:

1. virtual machine concept, comparison with other implementations, compilator, decompilator, obfuscators

2. package structures, application and applet

3. data structures - primitives, arrays; memory management and garbage colletor

4. objects - inheritance, methods, modificators, generics; interfaces

5. exception handling

6. streams, input/output operations, network communication

7. threads, syncrhonization, atomic types, non-blocking algorithms

8. modules for graphics user interfaces and its construction

9. interface for accelerated graphics - OpenGL, Java3D

10. classloaders, reflective operation, serialization, externalization

11. remote method invocation (RMI) - architecture, components, relation to CORBA

12. java native interface (JNI), low-level operation

13. tools for programming in team, debugging, testing

14. profiling tools, optimization techniques

Syllabus of tutorials:

1. compilation, JVM parameters - run-time optimization, heap monitoring, just-in-time (JIT)

2. development environments (IDE), application and applet

3. JVM, memory management, internal states

4. assignment of course project parts, 1st part of the project

5. rating of the 1st part of the project, present model solution, 2nd part of the project

6. rating of the 2nd part of the project, present model solution, 3rd part of the project

7. rating of the 3rd part of the project, present model solution, 4th part of the project

8. rating of the 4rd part of the project, present model solution, 5th part of the project

9. rating of the 5rd part of the project, present model solution, 6th part of the project

10. rating of the 6rd part of the project, present model solution, the last part of the project

11. rating of the last part of the project, profiling of complete solution - execution and memory

12. presentation of performed profiling benchmarks, identification of application critical section, optimization of the application

13. presentation of the changes and their implication to the overall performance

14. reserve, receive credit

Study Objective:
Study materials:

- W. C. Richardson, D. Avondolio, S. Schrager, M. W. Mitchell,

J. Scanlon: Professional Java JDK 6 Edition

- A. Silberschatz, P. B. Galvin, G. Gagne: Operating System COncepts

with Java

- C. Austin, M. Pawlan: Advanced Programming for the Java 2 Platform

- K. Beck: Test Driven Development: By Example

Further information:
No time-table has been prepared for this course
The course is a part of the following study plans:
Data valid to 2019-03-24
For updated information see http://bilakniha.cvut.cz/en/predmet12821704.html