Master object-oriented design for software development. Learn to design systems using principles like encapsulation, inheritance, and polymorphism.
The language used throughout the course, in both instruction and assessments.

University of Alberta
Skills you'll gain: Object Oriented Design, Unified Modeling Language, Software Design, Object Oriented Programming (OOP), Java, Software Architecture, Technical Design, Conceptual Design
Intermediate · Course · 1 - 4 Weeks

University of Alberta
Skills you'll gain: Software Architecture, Model View Controller, Unified Modeling Language, Object Oriented Design, Service Oriented Architecture, API Design, Systems Architecture, Web Services, Software Design Patterns, Software Design, Simple Object Access Protocol (SOAP), Microservices, Restful API, Software Design Documents, Software Visualization, Code Review, Solution Architecture, Object Oriented Programming (OOP), Software Development, Java
Beginner · Specialization · 3 - 6 Months

University of Colorado Boulder
Skills you'll gain: Object Oriented Design, JUnit, Object Oriented Programming (OOP), Unified Modeling Language, Software Design Patterns, Software Testing, Software Engineering, Java, Java Programming, Application Design, User Interface and User Experience (UI/UX) Design, Unit Testing, Software Design, Software Architecture, API Design, Model View Controller, Program Development, Software Development, Test Driven Development (TDD), Databases
Intermediate · Specialization · 3 - 6 Months

University of Colorado Boulder
Skills you'll gain: Object Oriented Design, Object Oriented Programming (OOP), Unified Modeling Language, JUnit, Software Testing, Software Engineering, Java, Java Programming, Unit Testing, Program Development, Software Design, Application Design, Test Driven Development (TDD)
Build toward a degree
Intermediate · Course · 1 - 3 Months

LearnQuest
Skills you'll gain: Unified Modeling Language, Object Oriented Programming (OOP), Object Oriented Design, Test Driven Development (TDD), Software Design Patterns, Software Design, Programming Principles, Program Development, Computer Programming, Software Development Methodologies, Distributed Computing
Beginner · Course · 1 - 4 Weeks

University of Alberta
Skills you'll gain: Model View Controller, Software Design Patterns, Software Design, Unified Modeling Language, Object Oriented Design, Code Review, Software Architecture, Programming Principles, Maintainability, Java, Application Design
Intermediate · Course · 1 - 4 Weeks

LearnKartS
Skills you'll gain: Java Programming
Intermediate · Course · 1 - 4 Weeks

Coursera
Skills you'll gain: Object Oriented Programming (OOP), Java, Object Oriented Design, Java Programming
Intermediate · Guided Project · Less Than 2 Hours

Skills you'll gain: Object Oriented Programming (OOP), Basic Electrical Systems, Wireless Networks, C++ (Programming Language), Object Oriented Design, Computer Programming, Control Systems, Interactive Design, Software Installation, Electronic Components, C and C++, Hardware Design, Electronics, Programming Principles, Display Devices, Embedded Software, Integrated Development Environments, Product Development, Electronic Systems, Embedded Systems
Intermediate · Specialization · 3 - 6 Months
Multiple educators
Skills you'll gain: Unit Testing, Data Structures, Event-Driven Programming, Interactive Data Visualization, Java, Java Programming, User Interface (UI), Object Oriented Programming (OOP), Debugging, Object Oriented Design, Computer Programming, Cryptography, Software Engineering, Performance Tuning, Encryption, Algorithms, Programming Principles, Data Analysis, Software Design, Problem Solving
Beginner · Specialization · 3 - 6 Months

University of California San Diego
Skills you'll gain: Unit Testing, Growth Mindedness, Data Structures, Graph Theory, Event-Driven Programming, Social Network Analysis, Interactive Data Visualization, Java, Java Programming, Network Analysis, Object Oriented Programming (OOP), Technical Communication, User Interface (UI), Object Oriented Design, Computer Programming, Willingness To Learn, Adaptability, Performance Tuning, Algorithms, Problem Solving
Intermediate · Specialization · 3 - 6 Months

Birla Institute of Technology & Science, Pilani
Skills you'll gain: Object Oriented Design, Software Architecture, Software Design, Software Design Patterns, Software Development Life Cycle, Software Development, Software Engineering, Maintainability, Systems Architecture, Service Oriented Architecture, Technical Design, Web Services, Model View Controller, Event-Driven Programming
Intermediate · Course · 1 - 3 Months