COURSE OUTLINE

Session 5

Git and GitHub

Session 6

Input-Output, access to the file system:
Access to the file system, Byte streams, Streams of characters, Advanced features

Session 1  

Introduction in Java:
What is Java, Hello World, Getting to know IDE, Hello World using Maven

Session 3

Objects, classes, and packages in Java:
Fundamentals of OOP, Packages and access modifiers, Package declaration, Class declaration, Inheritance, Class Object, Abstract classes and interfaces

Session 2

Basic syntax of Java:
Primitive types, Type Casting, Arrays and Strings, Control statements: conditional operators and loops

Session 4

Error handling, exceptions, debugging:
Getting to know the exceptions mechanism, Exception handling, Try-catch, Logging

Session 10

Midterm test

Session 9

Testing of Java programs:
Main ideas, Module testing: JUnit & Mockito, Profiling: JProfiler, Performance testing: JMH

Session 8

Streams:
Functional interfaces, Stream API

Session 7  

Generics, Collections

Session 12

Multithreading in Java - basics:
General information about multithreading, Managing Threads, Synchronisation of the Threads, Memory model

Session 11

Under the hood of Java classes:
Reflection API, Java bytecode, Garbage collection

Session 13

Multithreading in Java - tools of standard library:
Atomic types, Synchronisation primitives, Collections, Executors, Parallel Streams

Session 14

Developing networking applications with Java:
How do computers communicate with each other, Writing your own HTTP-server

Session 15

Final exam