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.
This Foundations of Programming course you have hopefully found a practical introduction on creating an object-oriented design. But as you can tell, there are areas here you could spend years developing. And I wanted to give you a few recommendations when you're interested in diving deeper into a particular part of the process. For the initial stage of determining requirements, it's Software Requirements by Karl Wiegers. Now if you do consulting work and need to be able to step into the world of a client or company who have a business and a business area you know nothing about and still successfully elicit their needs and requirements, this is a great book and provide some great structure for this.
For the world of use cases, it's Alistair Cockburn's Writing Effective Use Cases. This is the book on the subject, terrific examples, common mistakes to watch out for, discussions of style, and even some coverage of use case diagrams. For the more concise user story format, it's Mike Cohn's User Stories Applied. I want to give it its full title User Stories Applied for Agile Software Development, as this is the book you're likely to see recommended if you use a process like Scrum or Extreme Programming.
For more on UML, I highly recommend UML Distilled by Martin Fowler. This is a great book, short book, all the UML that 99.9% of developers on the planet would ever need to know. Now Martin Fowler is also the author of the book Refactoring, which popularized the idea of code smells. Reflectoring is a terrific book on how to improve the design of code you already have. Now the classic book on design patterns is of course, the Gang of Four book, design patterns mentioned in that section, but do be aware that the examples in the book are in C++.
Alternatively, I very much enjoyed the Head First Design Patterns book, extremely accessible, heavily graphical, examples in this book use Java, which I consider a more generic and accessible object-oriented language, even if you are not a Java programmer. But as ever, build software, make mistakes, don't focus on learning at the expense of practice. The more you learn the more you realize there is to learn, there's always something that you want to know. You'll never feel fully prepared for a project. It doesn't matter.
Begin. Begin developing your design.
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.