Some of the most relevant code produced while taking the Java programming MOOC (I and II) by the University of Helsinki.
All content uploaded to this repository comes from https://java-programming.mooc.fi/, however solutions to all problems are my own, and any solutions from the University of Helsinki have been adequately labelled as either 'Suggested answer' or 'Model answer'.
This course was heavily focused on the programming paradigm Object-Oriented Programming. Which is explained in the Java MOOC I as follows:
"In object-oriented programming, information is represented as classes that describe the concepts of the problem domain and the logic of the application. Classes define the methods that determine how information is handled. During program execution, objects are instantiated from classes that contain runtime information and that also have an effect on program execution: program execution typically proceeds through a series of method calls related to the objects. As mentioned a few weeks ago, 'the program is built from small, clear, and cooperative entities.'
The basic ideas of object-oriented programming, i.e., the representation of information and its processing methods with he help of classes and objects, first appeared in Simula 67, which was designed for developing simulations and the Smalltalk programming language. Its breakthrough came in the 1980s through the C++ programming language and Java has made it one of the most widely used programming paradigms in the world.
One of the major benefits of object-oriented programming is how problem-domain concepts are modeled through classes and objects, which makes programs easier to understand. In addition, structuring the problem domain into classes facilitates the construction and maintenance of programs."
After doing my own research I came across several websites that helped me understand concepts linked to Java and OOP:
https://www.geeksforgeeks.org/java/four-main-object-oriented-programming-concepts-of-java/
https://www.freecodecamp.org/news/solid-principles-explained-in-plain-english/
https://www.geeksforgeeks.org/java/object-oriented-programming-oops-concept-in-java/
https://java-design-patterns.com/
https://www.baeldung.com/java-tutorial
https://www.baeldung.com/courses/rest-with-spring-boot-course

