Master Object Oriented Design in Java - Homework + Solutions
4.6 (1,469 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
10,863 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Master Object Oriented Design in Java - Homework + Solutions to your Wishlist.

Add to Wishlist

Master Object Oriented Design in Java - Homework + Solutions

Don't just learn Java! Learn to write practical industry standard object oriented software and super charge your career!
4.6 (1,469 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
10,863 students enrolled
Created by Imtiaz Ahmad
Last updated 7/2017
Current price: $10 Original price: $200 Discount: 95% off
5 hours left at this price!
30-Day Money-Back Guarantee
  • 5.5 hours on-demand video
  • 7 Articles
  • 6 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Advance your programming skills from a junior level newbie to a competent intermediate level object oriented software developer
  • Design and develop software using best practices in Object oriented programming
  • Apply the 5 crucial object oriented design principles using Java
  • Apply design patterns such as Strategy, Observer, Template Method, Factory, and Builder
  • Make the leap into professional software craftsmanship and take your career to the next level!
View Curriculum
  • You should have a java editor installed. We'll be using Eclipse. You can download that from
  • Install Jdk from oracle website

LATEST: Course Updated for Feb 2016

Now you can get the "Master Programmer Certification in OOP" from Eliminate Code Fear after completing the course. You must email the instructor once you complete the course and pass an online OOP test from their website.

SUPER CHARGE OF YOUR PROGRAMMING CAREER and acquire some seriously marketable skills!

Just because you learned how to use a hammer doesn't mean you are ready to construct a building. Similarly, It's not enough to just understand a programming language. That's just a tool that can be used to develop various programs. The real craftsmanship is in software DESIGN.

This course is designed to take a junior level programmer with limited knowledge about object orientation to a competent level object oriented software designer! I expect you to understand the basics of loops, methods and conditionals in Java. You'll be completing hands-on HOMEWORK Exercises through out the course! I have provided detailed video solutions to the exercises so that you can check your answers and get step by step instructions of how to tackle the object oriented design assignments.

You can find plenty of resources online for solving a programming puzzle or practicing algorithms. But… when it comes to object oriented design, admittedly, there is limited material out there for you to practice. So in this course, we use a LEARN-BY-DOING approach to explore a series of progressively challenging exercises to discover the 5 core object oriented design PRINCIPLES summarized by an acronym called SOLID:

(S). Single Responsibility

(O). Open/Closed

(L). Liskov Substitution

(l ). Interface Segregation

(D). Dependency Inversion

During this journey you'll get practice applying some of the most important DESIGN PATTERNS that competent developers must have under their belt. There are so many design patterns out there, but we'll be thoroughly covering only the most important ones. Save yourself the time from learning all the design patterns and going on a design frenzy. Focus on the 20% that covers 80% of the scenarios and add miles to your programming efficiency.

These cover 80% of patterns used out there in professional software development.

1). Strategy Pattern

2). Observer Pattern

3). Builder pattern

4). Factory method pattern

5). Template Method Pattern

6). Singleton Pattern

The topics can be applied to pretty much any object oriented language. But, we'll be using Java, so I expect you to be familiar with the basic language constructs such as classes, methods and interfaces. But don't worry if you don't know about these, I've taken the time to create 6 comprehensive prerequisite lessons on introduction to object orientation. In these lessons, new comers can learn about the basics of object orientation such as:

1). Classes and objects

2). Inheritance and polymorphism,

3). Interfaces and abstract classes.

I'm certain that, by practicing the concepts covered, you'll make a substantial leap forward in your programming career. I hope to see you in the coming lessons.

This course is from This site offers lectures on practical software development topics to immediately impact your programming skills. Things you can take to your interview and feel confident in your abilities!

Who is the target audience?
  • If you've had trouble creating java programs that contain more than 1 or 2 classes, this course is for you
  • I expect you to know the basics of Java loops and conditionals
Compare to Other Java Courses
Curriculum For This Course
40 Lectures
How to make the most of this course
2 Lectures 01:32

Download Source Code for Lectures
Introductory Principles in Object Orientation (Optional Prerequisite)
8 Lectures 01:40:56

Program Flow and Using Constructor (Optional Prerequisite)

Object and Class
5 questions

Application Runtime (Optional Prerequisite)

Class Inheritance (Optional Prerequisite)

Application Runtime Quiz
4 questions

Interfaces and Abstractions (Optional Prerequisite)

Abstract Classes (Optional Prerequisite)

This quiz will test your knowledge on Abstract Classes and Interfaces

Interfaces and Abstract Classes
5 questions

Message From The Instructor
Object Oriented Design Principles (SOLID)
15 Lectures 02:07:41

Before starting this section of the course, I encourage you to watch the videos in the prerequisite section if you are not familiar with the basics of Object Oriented Programming in Java. There are 6 lectures there that cover difference between what an object is, and a class, the basics of Inheritance, Polymorphism, Interfaces and Abstract Classes.

Objects, Messages and Dependencies

Forming Associations Between Objects

Overview of Software Design

Make sure to watch the entire video and try the exercise before watching the next video that contains the solution.

Preview 14:03

UML Diagram - Single Responsibility
1 page

Single Responsibility - Homework

This quiz will test your understanding on the single responsibility principle

Quiz on Single Responsibility Principle
3 questions

Open Closed Principle & STRATEGY Pattern

Open Closed Principle - Homework

This quiz will test your understand of the open closed principle

Quiz on the Open Closed Principle
2 questions

I wanted to cover this design principle next because I think it is more fitting to learning path we are following even though it's the last letter of the SOLID acronym. We also learn about the Template Method Design Pattern in the lecture. Make sure to watch the entire video and try the exercise before watching the next video containing the solution.

Visual Representation of Dependency Inversion: Click Here

Preview 07:08

Dependency Inversion & Template pattern - Homework Solution

UML Diagram - Dependency Inversion
1 page

This will test your knowledge of the Dependency Inversion Principle

Quiz on Dependency Inversion principle
3 questions

Liskov Substitution Principle

Liskov Substitution Principle UML
1 page

This quiz will test your understanding of the Liskov Substitution principle

Quiz on Liskov Substitution Principle
3 questions

Interface Segregation Principle

UML Diagram - Interface Segregation
1 page

This quiz will test your knowledge of the interface segregation Principle

Quiz on Interface Segregation Principle
1 question
Object Oriented Design Patterns in Practice
11 Lectures 01:35:38
Dependency Injection Part 1

Dependency Injection Part 2 (Using Spring)

Make sure to watch the entire video and try the exercise before watching the solution video

Observer Pattern

Observer Pattern - Homework Solution

UML Diagram - Observer Pattern
1 page

Coffee Shop Assignment (another application of the observer pattern)

Builder Pattern

Factory Design Pattern

UML Diagram - Factory Pattern
1 page

Singleton Design Pattern (Newly Added)

Real world Project - Create an API
Course Extras!
4 Lectures 06:02

Final Comments from Instructor

Bonus Lecture: Lifetime Access to All My Courses

1-on-1 Skype Session with Mr. Imtiaz Ahmad
About the Instructor
Imtiaz Ahmad
4.6 Average rating
8,312 Reviews
53,987 Students
8 Courses
Senior Software Engineer & Trainer @ Job Ready Programmer

Imtiaz Ahmad is a highly experienced and passionate software consultant working on big data technologies and enterprise software architectures. He's spent a considerable amount of time building financial software on Wall St. and worked with companies like S&P, Goldman Sachs, AOL and JP Morgan along with helping various startups solve mission critical software problems. In his 13+ years of experience, Imtiaz has developed software in programming languages such as Java, C++, Python, PL/SQL and Ruby. He's also the founder of Job Ready Programmer - an online programming school that prepares students of all backgrounds to become professional job-ready software developers through real-world programming courses filled with practical software development projects.