What it is about
You learn the fundamental concepts of programming (imperative, object-oriented, functional) as well as fundamental data structures, recursion, syntax/semantics of programming languages, GUI and concurrent programming. In the end you will be able to solve simple algorithmic problems and independently implement small applications in Java or a similar object-oriented language.