Chevron Left
Back to Object-Oriented Design

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

4.7
stars
2,268 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

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.

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.

Filter by:

101 - 125 of 537 Reviews for Object-Oriented Design

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 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 Luis A S S

•

Aug 13, 2020

software tools were not clearly specified before take this course, after they have talked about java as prerrequisite for this course and finally final exams are using android platform wich is not the best option for windows since this software is hanging almost all the system

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.

By C S

•

Jun 30, 2022

As an introductory course I found this fair. It introduced concepts at a good pace, the material was well constructed and delivered, and the content was on topic with an emphasis on software design and not coding.

After completing this course you have an idea of how to go about solving your software problems visually and can communicate the state of the issue well with others. The terminology and UML are valuable tools that I will continue to practice going forward.

I did have some issues with Android studio, but the emphasis of this course was on software design, not code/frameworks.

By Jitto J T

•

Feb 18, 2021

The course helped bring all the concepts together. The concept of "Conceptual integrity" is the biggest takeaway for me - "Implementing software in a consistent manner as if it were written by one person". Over time, as multiple people work on the code base, it loses consistency and hinders readability and maintainability. That's why it is so important for teams to follow design principles, communicate frequently and effectively, and perform proper code review.Overall, a great course. I would recommend it to every one part of a software development team.

By Riccardo G

•

Mar 3, 2021

A very good introduction to software architecture and OOP. Much more serious than other courses and with practical experience in Android which is useful to apply theoretical concept in real programming.

For someone not used to Java programming or Android development this is both a challenge and an opportunity to learn, but for sure requires some time more.

Finally, I really appreciated the peer-to-peer review of assignment, it was the first time for me for this kind of evaluation and I really enjoyed it.