Object-Oriented Design

Product type

Object-Oriented Design

Coursera (CC)
Logo Coursera (CC)
Provider rating: starstarstarstar_halfstar_border 7.2 Coursera (CC) has an average rating of 7.2 (out of 6 reviews)

Need more information? Get more details on the site of the provider.

Description

When you enroll for courses through Coursera you get to choose for a paid plan or for a free plan

  • Free plan: No certicification and/or audit only. You will have access to all course materials except graded items.
  • Paid plan: Commit to earning a Certificate—it's a trusted, shareable way to showcase your new skills.

About this course: Welcome to Object-Oriented Design. This is the first course in Software Design and Architecture, a specialization with four courses provided by University of Alberta in partnership with Coursera. Whether you are here for only this course or for the whole specialization, welcome! You are joining thousands of other intrepid learners who love to push the boundaries of their knowledge and better themselves. 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 communica…

Read the complete description

Frequently asked questions

There are no frequently asked questions yet. If you have any more questions or need help, contact our customer service.

When you enroll for courses through Coursera you get to choose for a paid plan or for a free plan

  • Free plan: No certicification and/or audit only. You will have access to all course materials except graded items.
  • Paid plan: Commit to earning a Certificate—it's a trusted, shareable way to showcase your new skills.

About this course: Welcome to Object-Oriented Design. This is the first course in Software Design and Architecture, a specialization with four courses provided by University of Alberta in partnership with Coursera. Whether you are here for only this course or for the whole specialization, welcome! You are joining thousands of other intrepid learners who love to push the boundaries of their knowledge and better themselves. 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 a Java codebase with corresponding UML documentation. After completing this course, a learner will be able to: • Apply the CRC (Class Responsibility Collaborator) technique to analyze and design the object-oriented model for a problem. • Construct an object-oriented model to represent the information structure of a real world problem. • Explain object-oriented modeling constructs and their purpose (e.g., abstraction, encapsulation, decomposition, generalization). • Explain the difference between association, aggregation, and composition dependencies. • Distinguish different types of inheritance • Express object-oriented models as UML (Unified Modeling Language) class diagrams. • Translate UML class diagrams to equivalent Java code. • Translate Java code to UML class diagrams. • 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. • Apply inheritance appropriately.

Who is this class for: This course is primarily for learners with beginner level of object-oriented programming experience in Java, that are interested in software engineering through the application of design principles, patterns, and architectures, to create reusable, flexible and testable software applications and systems.

Created by:  University of Alberta
  • Taught by:  Kenny Wong, Associate Professor

    Computing Science, Faculty of Science
Basic Info Course 1 of 4 in the Software Design and Architecture Specialization Level Intermediate Commitment Four weeks of study, 5-8 hours/week Language English How To Pass Pass all graded assignments to complete the course. Coursework

Each course is like an interactive textbook, featuring pre-recorded videos, quizzes and projects.

Help from your peers

Connect with thousands of other learners and debate ideas, discuss course material, and get help mastering concepts.

Certificates

Earn official recognition for your work, and share your success with friends, colleagues, and employers.

University of Alberta UAlberta is considered among the world’s leading public research- and teaching-intensive universities. As one of Canada’s top universities, we’re known for excellence across the humanities, sciences, creative arts, business, engineering and health sciences.

Syllabus


WEEK 1


Object-Oriented Analysis and Design



Good software design begins before coding. After establishing the initial software requirements, design practices involve two main activities: conceptual design and technical design. In this module, you will realize the importance of design and object-oriented thinking, and learn how to design software using techniques like CRC cards.


6 videos, 7 readings, 3 practice quizzes expand


  1. Reading: Meet Your Presenter – Sam Jeffery
  2. Reading: Meet Your Facilitator – Christopher Djuric
  3. Video: 1.1.1 – Welcome to Software Design and Architecture
  4. Video: 1.1.2 – Software Architect and Design Roles in Industry
  5. Reading: Java Knowledge
  6. Practice Quiz: Java Proficiency Quiz 1
  7. Practice Quiz: Java Proficiency Quiz 2
  8. Practice Quiz: Java Proficiency Quiz 3
  9. Reading: Object Oriented Design Course Notes
  10. Reading: Course Glossary
  11. Video: 1.1.3 – Object-Oriented Modeling
  12. Discussion Prompt: Introduce yourself
  13. Video: 1.1.4 – Software Requirements, Conceptual and Technical Designs
  14. Reading: Expressing Requirements with User Stories
  15. Reading: Categories of Objects in Design
  16. Video: 1.1.5 – Competing Qualities and Trade-offs
  17. Video: 1.1.6 – Record, Organize, and Refine Components
  18. Discussion Prompt: Modeling CRC

Graded: Module 1 Review

WEEK 2


Object-Oriented Modeling



Best software design practices have evolved alongside programming languages. Today, all developers should be familiar with abstraction, encapsulation, decomposition, and generalization, which are fundamental principles in object-oriented design. You will learn all of these principles and how they are expressed in Java and communicated visually in Unified Modelling Language.


11 videos, 2 readings expand


  1. Video: 1.2.1 – Models: Bridging Concepts and Solutions
  2. Video: 1.2.2 – Languages Evolution
  3. Discussion Prompt: Design Principles and Language Evolution
  4. Video: 1.2.3 – Abstraction
  5. Video: 1.2.4 – Encapsulation
  6. Video: 1.2.5 – Decomposition
  7. Video: 1.2.6 – Generalization
  8. Video: 1.2.7 – Abstraction in Java and UML
  9. Video: 1.2.8 – Encapsulation in Java and UML
  10. Video: 1.2.9 – Decomposition in Java and UML
  11. Video: 1.2.10 – Generalization with Inheritance in Java and UML
  12. Video: 1.2.11 – Generalization with Interfaces in Java and UML
  13. Peer Review: Ungraded Assignment - UML Class Diagram
  14. Reading: Ungraded Assignment - UML Class Diagram (Solution)
  15. Reading: Capstone Assignment 1.1 - UML Class Diagram (Solution)

Graded: Capstone Assignment 1.1 – UML Class Diagram
Graded: Module 2 Review

WEEK 3


Design Principles



Additional design principles will help you to create code that is flexible, reusable, and maintainable. In this module you will learn about coupling and cohesion, separation of concerns, information hiding, and conceptual integrity. You will also learn to avoid common pitfalls with inheritance, and ways to express software behavior in UML.


8 videos, 4 readings expand


  1. Video: 1.3.1 – Coupling and Cohesion
  2. Discussion Prompt: Coupling and Cohesion
  3. Video: 1.3.2 – Separation of Concerns
  4. Video: 1.3.3 – Information Hiding
  5. Video: 1.3.4 – Conceptual Integrity
  6. Discussion Prompt: Design Principles
  7. Video: 1.3.5 – Inheritance Issues
  8. Video: 1.3.6 – UML Sequence Diagram
  9. Peer Review: Ungraded Assignment – UML Sequence Diagram
  10. Reading: Ungraded Assignment - UML Sequence Diagram (Solution)
  11. Reading: Capstone Assignment 1.2 - UML Sequence Diagram (Solution)
  12. Video: 1.3.7 – UML State Diagram
  13. Peer Review: Ungraded Assignment – UML State Diagram
  14. Reading: Ungraded Assignment - UML State Diagram (Solution)
  15. Reading: Capstone Assignment 1.3 - UML State Diagram (Solution)
  16. Video: 1.3.8 – Model Checking

Graded: Capstone Assignment 1.2 – UML Sequence Diagram
Graded: Capstone Assignment 1.3 – UML State Diagram
Graded: Module 3 Review

WEEK 4


Capstone Challenge



In the previous modules you were introduced to object-oriented analysis and design, object-oriented modeling, and design principles. To cement your understanding of this material, you created a UML class diagram from an example Android code base, and used your understanding of the code base to make sequence and state diagrams to model its behavior. Now, in the final module of the course, given a description of new functionality and an updated UML class diagram, you will implement the updated design into the Android code base. After completing this development task, you will be ready to complete the final exam.


3 readings expand


  1. Reading: Capstone Assignment 1.4 - Update the Application (Solution)
  2. Discussion Prompt: Last Word – Object-Oriented Design
  3. Reading: Acknowledgements
  4. Reading: Credits

Graded: Capstone Assignment 1.4 – Update the Application
Graded: Final Exam
There are no reviews yet.

Share your review

Do you have experience with this course? Submit your review and help other people make the right choice. As a thank you for your effort we will donate $1.- to Stichting Edukans.

There are no frequently asked questions yet. If you have any more questions or need help, contact our customer service.