This module teaches the fundamental ideas behind the object-oriented approach to programming through the widely used Java programming language. Concentrating on aspects of Java that best demonstrate object-oriented principles and good practice, you'll gain a solid basis for further study of the Java language and object-oriented software development. Some experience in writing computer programs is essential.
You will learn about algorithms and abstraction in this free course, Introduction to computational thinking, and encounter some applications of computational thinking in various disciplines, ranging from biology and physics to economics and sport science.
This free course, Distributed paradigms, looks at some of the architectural and programming paradigms used in distributed system development. You will learn about synchronous and asynchronous message passing, distributed objects technology and event-based bus architecture, before finally moving on to tuple architecture.