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 Illinois Urbana-Champaign
Skills you'll gain: C++ (Programming Language), Object Oriented Programming (OOP), Object Oriented Design, Development Environment, Engineering Software, Computer Programming, Data Structures, Debugging, Program Development
Intermediate · Course · 1 - 4 Weeks

Skills you'll gain: Spring Framework, Web Applications, Java Platform Enterprise Edition (J2EE), Java, Object Oriented Design, Back-End Web Development, Authentications, Application Development, Software Design, Database Design, Model View Controller, Databases
Mixed · Course · 1 - 4 Weeks

University of Pennsylvania
Skills you'll gain: Object Oriented Design, Java, Object Oriented Programming (OOP), Unit Testing, Java Programming, Application Development, Data Structures, Software Testing, Programming Principles, Test Driven Development (TDD), Computer Programming
Beginner · Course · 1 - 4 Weeks

Skills you'll gain: C++ (Programming Language), Object Oriented Design, Object Oriented Programming (OOP), Debugging, Data Structures, C (Programming Language), Development Environment, Software Design Patterns, Programming Principles, Computational Thinking, Computer Programming, Integrated Development Environments, File Management, Algorithms, Maintainability, Simulations, Data Validation
Intermediate · Specialization · 1 - 3 Months

Skills you'll gain: Spring Framework, Java, Object Oriented Design, Object Oriented Programming (OOP), Software Design Patterns, Model View Controller, Middleware, Extensible Markup Language (XML), Integration Testing, Dependency Analysis
Mixed · Course · 1 - 4 Weeks

Skills you'll gain: Unity Engine, Event-Driven Programming, Software Development Tools, Game Design, User Interface (UI), Scripting, Software Design, Package and Software Management, Object Oriented Design, C# (Programming Language), Version Control, File Management
Mixed · Course · 1 - 3 Months

University of Colorado System
Skills you'll gain: Object Oriented Design, Unity Engine, Debugging, Object Oriented Programming (OOP), Game Design, Video Game Development, Software Design Patterns, Data Structures, C# (Programming Language), Prototyping, Graph Theory, Computer Programming, Data Management, Event-Driven Programming, Software Architecture, Application Design, Algorithms, Computational Thinking, Data Storage, Application Development
Beginner · Specialization · 3 - 6 Months

Skills you'll gain: Object Oriented Programming (OOP), Object Oriented Design, C# (Programming Language), Programming Principles, .NET Framework
Beginner · Course · 1 - 3 Months

Skills you'll gain: Object Oriented Design, Computer Programming
Intermediate · Course · 1 - 4 Weeks

LearnKartS
Skills you'll gain: JUnit, Java Programming, Object Oriented Programming (OOP), Object Oriented Design, Java, Unit Testing, Debugging, Maintainability, Software Development, Secure Coding, Software Testing, Programming Principles, Computer Programming, Test Case, Application Development, Authentications, Application Security, Android Development, Cryptography, Software Design Patterns
Beginner · Specialization · 1 - 3 Months

University of Colorado Boulder
Skills you'll gain: Object Oriented Design, Object Oriented Programming (OOP), Software Design Patterns, Unified Modeling Language, Software Design, Java Programming, Software Architecture, Application Design, User Interface and User Experience (UI/UX) Design, API Design, Data Modeling, Artificial Intelligence
Build toward a degree
Intermediate · Course · 1 - 3 Months

University of Michigan
Skills you'll gain: Unified Modeling Language, JSON, Object Oriented Programming (OOP), Software Design, Debugging, Object Oriented Design, Data Processing, Web Scraping, Unit Testing, Programming Principles, Python Programming, Data Import/Export, Restful API, Image Analysis, Data Manipulation, Jupyter, Computer Programming, Data Structures, Software Engineering, File Management
Beginner · Specialization · 3 - 6 Months