Object-Oriented Programming in Java

In this free online course, you’ll learn the key concepts of object-oriented programming (OOP) as well as fundamental programming techniques. You’ll apply your newly acquired knowledge by implementing hands-on programming exercises in the Java programming language. The course will be completed by an exercise to model a small, object-oriented, real-world scenario. After completing this course, you’ll be able to model and implement small programs in Java and apply OOP best practices.

This course was retired in August 2023.

Seit 26. Juli 2018 im Selbststudium
Kurssprache: English
Untertitel (automatisch erzeugt): Deutsch, English, Français, Español


retired image

This course was retired in August 2023.

Course Summary

In this course, you’ll learn the key concepts of object-oriented programming (OOP) as well as fundamental programming techniques. A key concept of OOP is to distribute tasks between several suitable components. Each of these components has its own state and behavior and can communicate with other components. You’ll apply your newly acquired knowledge by implementing hands-on programming exercises in the Java programming language. The course will be completed by an exercise in which you’ll model a small, object-oriented, real-world scenario.

For a better understanding, the programming exercises are combined with a detective story. Help Duke to solve his mysterious new case!

After completing this course, you’ll be able to model and implement small programs in Java and apply OOP best practices.

Here is what some participants are saying about the course:

  • "It was a great course! It has a great content: videos, questioners, practical tasks, game, additional materials "and so on and so forth") I liked this course very much - it was the best course I've ever participated in. Great thanks to all who've made it!" Read the original post

  • "Many, many thanks to a dedicated, and inspiring team - Ann, Christiane, Ralf, Tom, and the openSAP Team - for making this such a smooth, and enjoyable journey, and to both openHPI and openSAP for making such a course available, and accessible to so many." Read the original post

  • "Thank you Ann, Christiane, Ralf, and Tom for the excellent work, support, and dedication with which you have followed our activities over the past weeks. I would also thank you for the lovely, and cool communications." Read the original post

  • "Hi Christiane/Ann/Tom/Ralf, Thank you very much for conducting this course, it was really helpful. I really liked the way you guys covered all the topics in this course (especially with the game, examples and the LED exercise), this made it more interesting. Thanks once again, looking forward for more such courses on OPENSAP." Read the original post

Course Characteristics

  • Starting from: June 13, 2018, 09:00 UTC (What does this mean?)
  • Duration: 6 weeks (including the “Outro” week*)
  • Effort: ~6 hours per week
    • Depending on your level of knowledge, this time may vary
    • If you participate in the bonus assessment, you may need additional time
  • Assignments: Hands-on programming exercises, quizzes, weekly exams, final exam
  • Bonus points: Hands-on modeling in a team (Team Peer Assessment)
  • Course language: English
  • (How is an openSAP course structured?)

Learning Outcomes

Java Basics

  • Get started with a Java program (Main method, Hello World)
  • Read and understand Java Syntax
  • Know and apply basic programming constructs in Java (variables and types)

OOP Basics

  • Basics of UML class diagrams
  • Create classes based on UML diagrams
  • Know and understand terminology of object-oriented programming (class, object, instance)
  • Create classes including methods and attributes

OOP Advanced Topics

  • Know and understand terminology of object-oriented programming (instance, inheritance, composition)
  • Classes and subclasses
  • Polymorphism: overriding (and overwriting) methods

Java Advanced Topics

  • Know and apply further programming constructs in Java (conditions and loops)
  • Understand and apply statements, assignments, operators
  • Implement inheritance relationships in Java
  • Implement aggregations in Java
  • Java collections
  • Error handling

Modeling Basics

  • Inheritance, aggregation, association

IDE Basics

  • Eclipse, Compiler, Interpreter
  • Improving code quality
  • Version Control

Course Content

  • Intro: Programming Basics
  • Week 1: Java Classes and Objects
  • Week 2: Further Programming Concepts
  • Week 3: Object-Oriented Programming
  • Week 4: Modeling
  • Week 5: Advanced Programming Concepts
  • Week 6: Final Exam
  • *Outro: Introduction to a Java IDE and Outlook

How to Gain Points for a Record of Achievement

You can achieve a total of 200 points in this course.
50% of the points will be achieved by solving interactive programming exercises.
You do not need to install any software to work on these exercises, all you need is a modern browser (preferably Firefox, Chrome, or Safari).
The other half of the points will be earned by solving 5 weekly assignments (25% total) and taking the final exam (25%).

The weekly assignments and final exam consist of multiple choice and multiple answer tests and debugging exercises.
In the debugging exercises, we will provide a piece of code and you have to find the hidden bugs.

We will have weekly assignments in weeks 1 to 5. The learning content of these weeks will also be part of the final exam.
There will be no weekly assignments in the Intro, Outro, and Excursus in week 2.
These three sections will also not be part of the final exam.

In week 4, we will offer a team-based modeling exercise. This exercise will be peer graded.
The available bonus points correspond to the weekly assignment points of one and a half weeks.

Course Requirements

To participate in this course, all you need is to be interested in programming. You’ll also need a computer with Internet access and a modern browser.

Previous experience in programming will be helpful but is not necessarily required.

Previous Version of This Course

The previous version of this course (in German) is available here (on openHPI):

Objektorientierte Programmierung in Java (March 27 through May 14, 2017)

Credits: The art for this course and the learning game was created by Lea Gerneth.


  • Course content no longer available

  • Intro:

    General introduction to programming and some basic Java syntax. Information about the course and the platform.
  • Week 1:

    Classes and objects. Variables, attributes, and methods. Boolean logic and control structures.
  • Week 2:

    In the second week, you will learn about arrays and loops. Futhermore, we discuss method signatures, scopes of variables, attributes and methods, constructors. Exceptions and the concept of null. The last concept we will tackle is an important OOP concept: overloading.
  • Excursus Memory Management:

    In this excursus, we learn what references are. and get to know the difference between pass-by-value and pass-by-reference. Additionally, we will have a look at garbage collection in Java.
  • Week 3:

    Access control, encapsulation, inheritance, polymorphism, abstract classes and interfaces.
  • Modeling Task - Peer Assessment:

    Peer assessed hands-on task accompanying Week 4. Model Duke's new office with a team of fellow learners.
  • Week 4:

    Object-oriented modeling. CRC-cards. Introduction to UML. Class and instance relationships: Inheritance, implementation, association, aggregation, composition.
  • Week 5:

    Object data types and collections.
  • Outro:

    Brief introduction to integrated development environments (IDEs) and version control.
  • I Like, I Wish:

    We Love Your Feedback … And Want More
  • Final Exam:

    Good Luck!
  • Cheat Sheets and Additional Material:

    In this section, we provide additional material to help you gain a deeper understanding of several topics and look-up some key facts.

Für diesen Kurs einschreiben

Der Kurs ist kostenlos. Legen Sie sich einfach ein Benutzerkonto auf openSAP an und nehmen Sie am Kurs teil!
Jetzt einschreiben


26. Juli 2018
13. Juni 2018


Der Kurs wurde mit durchschnittlich 4.59 Sternen bei 1320 abgegebenen Stimmen bewertet.

Anforderungen für Leistungsnachweise

  • Den Leistungsnachweis erhält, wer in der Summe aller benoteten Aufgaben mindestens 50% der Höchstpunktzahl erreicht hat.
  • Die Teilnahmebestätigung erhält, wer auf mindestens 50% der Kursunterlagen zugegriffen hat.

Mehr Informationen finden Sie in den Richtlinien für Leistungsnachweise.

Dieser Kurs wird angeboten von

Christiane Hagedorn (openHPI Team)

Christiane Hagedorn hat sowohl ihren Bachelor als auch Master in Medieninformatik an der Beuth Hochschule Berlin absolviert. Jetzt promoviert sie am Hasso-Plattner-Institut und erforscht dabei die Möglichkeiten von spielbasiertem Lernen.

In ihrer Freizeit singt Christiane in einem Chor, spielt Schlagzeug, bereist die Welt und kickert neuerdings mit großer Leidenschaft. Besonders gerne spielt sie außerdem digitale und analoge Spiele, wodurch auch ihr Forschungsinteresse begründet ist. In der Vergangenheit hat sie bereits auf vielseitige Art an mehreren Spiel-Projekten mitgewirkt. Außerdem hat sie große Freude am Unterrichten gefunden.

Ann Katrin Kuessner (openHPI Team)

Ann Katrin Kuessner hat am Hasso-Plattner-Institut IT-Systems Engineering ihren Bachelor absolviert und befindet sich inzwischen im Masterstudium. Sie hat als Softwareentwicklerin bei openWHO.org, der Schwesterplatform von openHPI und openSAP gearbeitet, und wird im im Sommer bei Google als Product Manager Praktikan arbeiten.

Wenn sie gerade nicht im Büro sitzt, findet man sie meist beim (Berg-)Sport. Abseits davon engagiert sie sich ehrenamtlich als Skilehrerin und gibt Workshops und leitet Camps zu MINT-Themen.

Thomas Staubitz (openHPI Team)

Dr. Thomas Staubitz ist Senior Lecturer am Lehrstuhl Internet-Technologien und -Systeme unter der Leitung von Professor Dr. Christoph Meinel am Hasso-Plattner-Institut der Universität Potsdam. Seine Forschungsinteressen liegen im Bereich eLearning und MOOCs. Ein besonderer Schwerpunkt liegt auf der Zusammenarbeit und Interaktion unter den Kursteilnehmern, sowie Tools zur Leistungserfassung jenseits der klassischen Multiple-Choice Aufgaben.

Ralf Teusner

Ralf Teusner is a Senior Researcher at SAP and former postdoctoral researcher in the Enterprise Platform and Integration Concepts research group of Prof. Dr. Hasso Plattner, at the Hasso Plattner Institute for Digital Engineering, University of Potsdam. He is interested in process oriented ERP systems as well as elearning, with a focus on MOOCs. A topic close to his heart is a close connection between industry and academia, resulting in hands-on seminars with real business challenges or this online course.

Follow Ralf on LinkedIn