OOP with Java
Object-oriented programming with Java, as it is taught at the Technical University of Sofia: from your first program to threads, patterns and databases.
How you learn here
Section titled "How you learn here"The course is split into modules, and each module into short lessons. A lesson is a series of cards, one idea per card: a real problem, what actually happens (often with an animation next to the code), a small task, then the next idea. At the end there is an exercise for your editor and a short test.
Every module uses only what the earlier ones have shown. Your progress is kept in your browser: a lesson picks up from the card you reached.
The course map
Section titled "The course map"Module 0
Welcome
3 lessons · the language, where it is used, setup
Module 1
Language basics
9 lessons · variables, conditions, loops, arrays
Module 2
Methods
4 lessons · code you write once and call many times
Module 3
Classes and objects
5 lessons · your own types
Module 4
Inheritance and polymorphism
5 lessons · what is shared, in one place
Module 5
Errors and exceptions
3 lessons · when something goes wrong
Module 6
Text and files
5 lessons · strings, regex, files
Module 7
Collections
5 lessons · lists, stack, queue, HashMap
Module 8
Modern Java
4 lessons · lambdas, data pipelines, patterns
Module 9
Real-world programs
5 lessons · tests, threads, network, databases, reflection
Let's make a game
three games from scratch
8 lessons
Project
a whole program, step by step
1 lesson
More
1 page · videos for the course