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.

Course information

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

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):

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

Course contents

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.

This course is offered by

Christiane Hagedorn did both her bachelor's and master's degree in Media Informatics at the Beuth University of Applied Sciences in Berlin. Now she is a PhD candidate at the Hasso Plattner Institute and explores the potential of game-based learning in e-learning contexts.

In her leisure time, Christiane is singing in a choir, playing the drums, travelling the world and recently evolved a great passion for playing foosball. She also loves playing digital and non-digital games, which is one of the reasons for chosing her research topic. In the past, she worked on several game projects in different ways. In addition, she wants to become a professor and has a great passion for teaching.

Ann Katrin Kuessner graduated with a Bachelor of IT-Systems Engineering at the Hasso Plattner Institute and is currently pursuing her masters. She worked as a software engineer for openWHO.org, the sister platform of openHPI and openSAP and will intern this summer at Google as a Product Manager.

In her free-time, you can mostly find her outside doing sports, preferably in the mountains. Additionally, she works voluntarily as a ski instructor for her skiing club and gives workshops and supervises camps for STEM topics.

Thomas Staubitz is a research associate and Ph.D. candidate at the Internet Technologies and Systems group of Prof. Dr. Christoph Meinel at the Hasso Plattner Institute at the University of Potsdam. His general research topics are in the area of eLearning and MOOCs. A particular focus is on collaboration and interaction among course participants and assessment strategies beyond multiple-choice quizzes.

Ralf Teusner is a Research Assistant at the Enterprise Platform and Integration Concepts research group of Professor Dr. h.c. Hasso Plattner, located at the Hasso Plattner Institute at the University of Potsdam. His research area is centered around eLearning and MOOCs. Especially the adoption of programming languages and concepts as well as the potential and influence of social interaction are in his focus.

Help

Follow us

About openSAP

openSAP provides free Massive Open Online Courses (MOOCs) to everyone interested in learning about SAP’s latest innovations and how to survive in the digital economy. openSAP Enterprise MOOCs leverage tried and trusted classroom concepts, including gamification, and discussion forums to interact with peers and experts.