24 August 2018
Programming systems software requires managing complexity. Among the myriad of software programming languages which are used to build systems, Java has gained prominence recently, as evidenced by projects such as JBoss, Tomcat, Lucene, and Hadoop. In this course, we take a look at Java and the available programming techniques and paradigms which make it an excellent tool to develop concurrent, distributed systems. This is not a beginner Java course and is intended for students with basic understanding in structured and object-oriented Java programming.
Advanced Java concurrency and communication constructs and libraries
Advanced Java generics and reflection constructs.
Design and implement unit tests.
Implement multi-threaded Java programs.
Build distributed programs with network communication as the primary form of communication.
Make effective use of Java generics in elegant system design.
Use Reflection for runtime code generation and introspection.
Analyze and tune the performance of an application running on the Java Virtual Machine.
Use database adaptors to connect to databases.
Use the Java platform as a tool to build distributed concurrent systems and reason about their behavior.
DKK 2125: EU/EEA citizens
DKK 4475: Non-EU/EEA citizens