Chevron Left
Back to Object-Oriented Design

Learner Reviews & Feedback for Object-Oriented Design by University of Alberta

4.7
stars
2,321 ratings

About the Course

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....

Top reviews

KH

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.

JS

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.

Filter by:

101 - 125 of 553 Reviews for Object-Oriented Design

By Thành N K

•

Jul 8, 2019

very good

By Daniel F

•

Jan 24, 2019

Thanks

By Cesar F C M

•

Sep 22, 2017

Great

By ANNU V N 1

•

Nov 17, 2018

Good

By septa v

•

Oct 16, 2018

good

By Xavier J

•

Jan 31, 2018

Tying the assignments to an Android Studio project was overkill; the same principles could have been demonstrated with a SIMPLE java application.

By omar e

•

May 16, 2018

this is a very nice course, it's kind of primary, i guess it can use much more practical examples rather than using the dog and cat examples.

By Daniel O D V

•

Jun 14, 2020

I don't know why the examples are Android applications. It would have been easier to use python or even java running the virtual machine.

By Frank M

•

Aug 5, 2018

this course taught about different of software design and architecture thank you so much

By Abinesh S

•

Jul 2, 2019

Good introductory course in Object Oriented Programming

By Евгений Ш

•

Mar 30, 2024

The course is not good and not bad. It introduces you to software design principles by describing some concepts. However, it is highly (too) abstract: you usually do not understand how to apply these principles in real software. Moreover, instead of explaining it, the course just provides you some analogies from the real life. So, this course can be considered as a glossary of buzzwords, not more. Also, there are no control of your knowledge or understanding. Instead of some objective control, the assignments are reviewed by different learners, and you do not know: either your assignment is correct or a reviewer does not understand the material in the same way as you or the reviewer just marked your assignment as correct without reviewing. Additionally, this course teaches you that data class is anti-pattern. No comments here.

By Gregory P

•

May 19, 2021

Content was good, but the assignments are not. The final capstone assignment is largely a copy-paste exercise from a line-by-line tutorial, based on an Android app. Those without expertise in Android will find themselves having to learn that first, even though it should be unnecessary given the content. The assignment does not actual demonstrate any of the concepts from the class. Peer discussion forums are almost entirely people asking for reviews rather than any meaningful discussion.

By Vera K

•

Jan 25, 2021

I've expected more from Coursera. This particular course contends more outdated information, weird questions that are not going to help in the real-life daily job. Week 4 which is supposed to be the big project contains a lot of copy-paste and all thinking activity how to use Android studio. Knowledge of UML diagrams was not tested, all code that supposed to be written by a course listener was already provided, no thinking was required. Disappointed

By ammar y

•

Jan 9, 2021

Poorly prepared course very boring material and grading system is awful you must grade three other student tasks and they must grade you so in case you all missed something you all pass from tasks but a fake pass because you are all missing something Coursera peer grading system is the worst I have ever seen

By Manjunath D

•

May 22, 2018

Not happy with the examples are given and not more interactive one .

By FARES F A

•

Dec 27, 2022

__

By Mike B

•

Jun 20, 2024

I am enjoying the lesson until I face the Capstone project where we need to write all properties and methods of each classes. Not to mention, the classes included in the template is not even the main classes, instead it uses the Android built-in libraries which I think is out of context of learning. Additionally, there are students who evaluate project unfair, despite writing my intention. I was going to enrol and pay for the monthly fee but this changed my mind. Let me know if you adjusted this course and remove the peer evaluation.

By María L A

•

Dec 27, 2017

Honestly, this course is very poor and doesnt gives you necessary tools to model a object oriented solution in UML. The exercises need to be more real , what i mean is there isnt any code to help us to understand the real application of UML in POO.

By Pradeep

•

Oct 21, 2020

Please don't take this course. The course assignments and materials except video is completely broken. There are so many things which doesn't make sense with other.

By Manuel H

•

Feb 3, 2021

don't waste your money. Watch talks on youtube, you will gain more from a 1h talk at a conference than 10h from this course

By Stud 2

•

Sep 6, 2022

Lesson: 1+1 = 2

Assignment: find integral e^x secx(1+tanx)dx

By Chen Y

•

Apr 17, 2022

Android developing? No kidding?

By Sanket D P

•

Aug 31, 2020

Plz do unenroll

By Kairat N

•

Oct 18, 2021

gd

By Daniel A

•

Feb 18, 2024

This comprehensive course has significantly elevated my proficiency in Java programming, particularly through an in-depth exploration of object-oriented analysis and design principles. The key takeaways include: Advanced Object-Oriented Design: Mastery of creating modular, flexible, and reusable software through the application of object-oriented design principles and guidelines. Acquisition of skills to analyze and design sophisticated software systems. Unified Modeling Language (UML): Proficiency in communicating complex designs through the use of Unified Modeling Language (UML), a standard visual notation for software modeling. Capstone Project Challenge: Application of acquired knowledge through a challenging Capstone Project involving the evolution and documentation of a Java codebase for an Android application, accompanied by comprehensive UML documentation. Key Achievements: Application of the Class Responsibility Collaborator (CRC) technique for robust problem analysis and object-oriented model design. In-depth understanding and application of object-oriented modeling principles, encompassing abstraction, encapsulation, decomposition, and generalization. Proficient knowledge and application of various types of inheritance. Clear comprehension of association, aggregation, and composition dependencies. Skill in expressing object-oriented models using UML class diagrams. Ability to seamlessly translate between UML class diagrams and equivalent Java code. Application of design guidelines for achieving modularity, separation of concerns, information hiding, and conceptual integrity, resulting in flexible, reusable, and maintainable designs. Insight into the crucial tradeoff between cohesion and coupling in software design. This course has not only enriched my Java skill set but has also empowered me with a robust foundation in object-oriented design principles, setting the stage for building high-quality, scalable software solutions.