Start learning with our library of video tutorials taught by experts. Get started
Viewers: in countries Watching now:
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.
The most popular programming languages developed in the last 30 years are all Object-Oriented languages, but this wasn't always the way. My first programming job was writing assembly language Cobol and Fortran on mainframes. Now these were not object-oriented languages. They were straight procedural languages where the program is written as a long procedure. Now it might contain named functions and subroutines to make it more modular and maintainable, but it's really a long piece of code, often with all the data, all the variables defined in one place and all the logic in another.
But as programs got bigger and bigger, this proved to be difficult to manage, difficult to plan. And Object-Oriented languages started to gain popularity in the '80s. Now in an Object-Oriented language, this one large program will instead be split apart into self contained objects, almost like having several mini-programs, each object representing a different part of the application. Now each object contains its own data and its own logic, and they communicate between themselves.
Now the idea here is that these objects aren't random. They represent the way you would talk and think about the problem you are trying to solve. They represent things like employees, images, bank accounts, player objects, spaceships, asteroids, video segment, audio files, whatever exists in your program. So object-orientation is what's referred to as a programming paradigm. It's not a language itself but a set of ideas that is supported by many languages.
But is there an alternative to Object-oriented programming? Well, yes and no. There are other approaches to programming. Not just procedural languages like straight C, but if you go through a university computer science course, you might work with logic programming languages like Prolog. Well, functional programming languages like Haskell, but these do tend to be more popular in the academic world or with very specialized uses like computational linguistics. But if you are working or want to work in the practical pragmatic world of creating web applications, mobile apps, desktop applications, game development, you will be using Object- Oriented programming languages.
And your only real choice is do you know what that means or not? So the first question: if everything we do in these languages is Object-Oriented--meaning, we are oriented or focused around objects --exactly what is an object anyway?
There are currently no FAQs about Foundations of Programming: Object-Oriented Design.
Access exercise files from a button right under the course name.
Search within course videos and transcripts, and jump right to the results.
Remove icons showing you already watched videos if you want to start over.
Make the video wide, narrow, full-screen, or pop the player out of the page into its own window.
Click on text in the transcript to jump to that spot in the video. As the video plays, the relevant spot in the transcript will be highlighted.