Back to Object-Oriented Design
University of Alberta

Object-Oriented Design

This course takes Java beginners to the next level by covering object-oriented analysis and design. You will discover how to create modular, flexible, and reusable software, by applying object-oriented design principles and guidelines. And, you will be able to communicate these designs in a visual notation known as Unified Modelling Language (UML). You will be challenged in the Capstone Project to apply your knowledge of object-oriented design by evolving and documenting the Java codebase for an Android application with corresponding UML documentation. After completing this course, you will be able to: • Apply the Class Responsibility Collaborator (CRC) technique to analyze and design the object-oriented model for a problem. • Explain and apply object-oriented modeling principles and their purpose (e.g., abstraction, encapsulation, decomposition, generalization). • Explain and apply different types of inheritance • Explain the difference between association, aggregation, and composition dependencies. • Express object-oriented models as Unified Modeling Language (UML) class diagrams. • Translate between UML class diagrams and equivalent Java code. • Apply design guidelines for modularity, separation of concerns, information hiding, and conceptual integrity to create a flexible, reusable, maintainable design. • Explain the tradeoff between cohesion and coupling.

Status: Object Oriented Programming (OOP)
Status: Application Design
IntermediateCourse17 hours

Featured reviews

LL

5.0Reviewed Jul 26, 2020

This course is brilliant! Through this course, I gradually lay solid foundation in Object-Oriented Design, as well as improve my programming skills. I'd like to recommend it to my peers!

YF

5.0Reviewed Apr 20, 2022

c​ourse introduce prefect content for beignner with good tasks that give you feedback about your progress at last thanks for all who helped me to finish this course

JS

5.0Reviewed Aug 5, 2020

Great course to learn the concepts of Software Designing and how it is used in real business scenarios. This course is indeed very helpful for aspiring product developers who aim to be an architect.

GJ

5.0Reviewed Sep 25, 2022

​I learnt OOD concepts like never before and feel empowered to work on software in a more effective way than before.T​hank you, Coursera and University of Alberta! :)

SK

5.0Reviewed Nov 9, 2019

Really helpful. I give this curs the maximum though I thing that it would be better if there were more assignments to practice. Or more examples even they are not reviewed in the videos.

VV

5.0Reviewed Mar 23, 2023

This course is very useful for me to improve towards programming language and UML intraction diagrams, the professor who taught this course is very intractive

KH

5.0Reviewed Jan 10, 2021

Great course to learn the concepts of Software Designing and how it is used in real business scenarios. This course is indeed very helpful for aspiring product developers who aim to be an architect.

PP

5.0Reviewed Dec 26, 2021

A lot of effort went in to creating this course. It was awesome to participate in and was also fairly challenging. Thank you to the creators! Really great work.

AM

4.0Reviewed Jul 18, 2019

there are some errors in assignment and materialin general the assignments are very labor-intensive and do not seem to add too much value for real-world projects

MB

5.0Reviewed Apr 2, 2022

T​he course is easy to follow and exciting to pass. My special thanks to Sam, she is really nice host of this one) Tasks is pretty easy to complete if you have an software engineering experience

BA

5.0Reviewed Nov 30, 2023

This course is a labour of love, immensely helpful material and excellent delivery. I wish I had discover this course 5 years earlier. It is a must for everyone working in IT.

NN

5.0Reviewed Feb 20, 2019

The course covers the fundamentals of object-oriented design in a clear and systematic way. The homework assignments are defined clearly. The quiz sometimes feels a little overly simplistic.

All reviews

Showing: 20 of 576

Javier Leyba
1.0
Reviewed Oct 16, 2017
Volodymyr Koshkarov
4.0
Reviewed Jan 6, 2019
Jukka Viherpelto
2.0
Reviewed May 25, 2020
Anton Malmygin
3.0
Reviewed Jun 27, 2019
Valerii Tereshchenko
1.0
Reviewed Oct 9, 2017
David Tucker
4.0
Reviewed Oct 29, 2019
Akshit Gupta
3.0
Reviewed Jun 6, 2019
Anastasiia Kolendo
3.0
Reviewed Aug 30, 2019
Nivedhitha
5.0
Reviewed Feb 21, 2019
Mike Diggins
2.0
Reviewed Oct 31, 2017
Michelle
5.0
Reviewed Jul 2, 2019
Artur Parkhisenko
5.0
Reviewed Apr 4, 2019
5.0
Reviewed Apr 8, 2019
KIRUPA VASINI
5.0
Reviewed Jun 28, 2019
pavithra
5.0
Reviewed Jun 22, 2019
Ankur kumar
5.0
Reviewed Apr 8, 2019
Jonathan Mitten
3.0
Reviewed Oct 3, 2018
Jaspreet Singh
5.0
Reviewed Aug 6, 2020
5.0
Reviewed Mar 29, 2020
Silvio Altmann
5.0
Reviewed Oct 13, 2018