Foundations of Programming: Object-Oriented Design

with Simon Allardice
please wait ...
Foundations of Programming: Object-Oriented Design
Video duration: 0s 3h 1m Intermediate


Most modern programming languages, such as Java, C#, Ruby, and Python, are object-oriented languages, which help group individual bits of code into a complex and coherent application. However, object-orientation itself is not a language; it's simply a set of ideas and concepts.

Let Simon Allardice introduce you to the terms—words like abstraction, inheritance, polymorphism, subclass—and guide you through defining your requirements and identifying use cases for your program. The course also covers creating conceptual models of your program with design patterns, class and sequence diagrams, and unified modeling language (UML) tools, and then shows how to convert the diagrams into code.

Topics include:
  • Why use object-oriented design (OOD)?
  • Pinpointing use cases, actors, and scenarios
  • Identifying class responsibilities and relationships
  • Creating class diagrams
  • Using abstract classes
  • Working with inheritance
  • Creating advanced UML diagrams
  • Understanding object-oriented design principles


- Hi. I'm Simon Allardice, and welcome to Foundations of Programming: Object-Oriented Design. This course exists because everyone who learns to program hits the same wall. First, you get the through the fundamentals, the basic syntax of a programming language. You learn how to write some code. But soon you realize there's a huge difference between being able to write a few lines of code, and being able to design, understand, and create a more complex application. And often it's difficult to even know where to start. Well, this is where object-oriented design can help.

But to discuss these ideas, we're going to need a vocabulary, the jargon, the terminology, the words we use, so that when we talk about this, we know exactly what we're talking about. And we'll see the process of taking an initial idea for an application, something you'd write on the back of a napkin and understanding how to break it apart into the right pieces, so that we end up knowing exactly what code to go and write. And we'll also see the basics of UML, or the Unified Modeling Language. This is one useful way of diagramming, of sketching visual models of an object-oriented system.

Now we won't be writing any code in this course. And you'll see, we won't have to. But you will see examples of how the most popular languages put these ideas into practice. So we've got a lot to cover. Let's get started.

please wait ...