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 is operated by the openHPI team on openSAP, the sister platform of openHPI.

自七月 26, 2018起开始自学
语言: English
Advanced, Beginner, Programming

课程信息

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.

Course Characteristics

  • Starting from: June 13, 2018, 09:00 UTC
  • Duration: 6 weeks
  • 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

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

  • Introduction: 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

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)

去外部课程

External course

This course is not running on openHPI, but on an external learning platform. When following the link to this featured course, you will leave the openHPI website. You might need an dedicated user account on the external platform to be able to enroll to the course.

去外部课程

证书要求

  • 课程证书 授予者需要至少取得课程总分的百分之 50%
  • 参与证明 授予者需要至少学习了所有课程资料的百分之 50%

欲知详情,请访问证书指南.

该课程提供者

Christiane Hagedorn

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, likes to travel the world, and taking pictures while doing some hikes. She also loves playing digital and non-digital games, which is one of the reasons for choosing her research topic. In the past, she worked on several game projects. In addition, she has developed a great passion for teaching.

Ann Katrin Kuessner (openHPI Team)

Ann Katrin Kuessner graduated with a Bachelor of IT-Systems Engineering at the Hasso Plattner Institute and is currently pursuing her masters. She currently works as a software engineer for openWHO.org, the sister platform of openHPI and openSAP. 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.

Dr. Thomas Staubitz

Dr. Thomas Staubitz is a Senior Lecturer 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

Enter full description