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.

The Hong Kong University of Science and Technology
Skills you'll gain: Requirements Analysis, Unified Modeling Language, Object Oriented Design, Functional Requirement, Data Modeling, Object Oriented Programming (OOP), Systems Development Life Cycle, System Requirements, Software Development, Software Engineering, Software Systems, Project Planning, Project Management
Intermediate · Course · 1 - 3 Months

University of California San Diego
Skills you'll gain: Graph Theory, Data Structures, Java Programming, Java, Object Oriented Design, Software Design, Algorithms, Object Oriented Programming (OOP), Network Routing, Computational Thinking, Application Development, Debugging
Intermediate · Course · 1 - 3 Months

École Polytechnique Fédérale de Lausanne
Skills you'll gain: Software Design Patterns, Object Oriented Programming (OOP), Software Design, Object Oriented Design, Java, Program Development, Graphical Tools, Simulations, Integrated Development Environments, Algorithms
Intermediate · Course · 1 - 3 Months

Skills you'll gain: Object Oriented Design, Microsoft Copilot, Game Design, Software Design, Application Design, Unit Testing, Python Programming, GitHub, Development Environment, Debugging, Artificial Intelligence and Machine Learning (AI/ML)
Intermediate · Guided Project · Less Than 2 Hours

University of Illinois Urbana-Champaign
Skills you'll gain: C++ (Programming Language), Data Structures, Object Oriented Programming (OOP), Object Oriented Design, Graph Theory, Development Environment, Data Storage, Engineering Software, Unstructured Data, Computer Programming, Algorithms, Data Storage Technologies, Debugging, Program Development, Database Systems, Database Theory, Network Routing, Theoretical Computer Science
Intermediate · Specialization · 1 - 3 Months

University of Pennsylvania
Skills you'll gain: Matplotlib, Object Oriented Design, Java, Object Oriented Programming (OOP), Data Analysis, Unit Testing, Pandas (Python Package), Java Programming, Eclipse (Software), Application Development, Data Visualization, Data Structures, Data Science, Data Cleansing, Debugging, Pivot Tables And Charts, Data Visualization Software, Programming Principles, Python Programming, Computer Programming
Beginner · Specialization · 3 - 6 Months

Skills you'll gain: Object Oriented Programming (OOP), Java, Java Programming, Eclipse (Software), Object Oriented Design, Program Development, Computer Programming, Software Design
Intermediate · Guided Project · Less Than 2 Hours

University of London
Skills you'll gain: C++ (Programming Language), Object Oriented Programming (OOP), C and C++, Object Oriented Design, Programming Principles, Data Structures, Data Modeling, Data Management
Build toward a degree
Intermediate · Course · 1 - 4 Weeks

Skills you'll gain: Java Programming, Java, Object Oriented Programming (OOP), Object Oriented Design, Eclipse (Software), Computer Programming, Development Environment, Integrated Development Environments, Data Structures, Software Installation
Beginner · Course · 1 - 3 Months

LearnQuest
Skills you'll gain: Java Programming, Java, Object Oriented Programming (OOP), Object Oriented Design, Software Design
Intermediate · Course · 1 - 3 Months

Northeastern University
Skills you'll gain: Systems Thinking, Software Visualization, Object Oriented Design, Case Studies, Data Modeling, Software Engineering, Object Oriented Programming (OOP), Software Design, Program Development, Systems Design, Business Modeling, Technical Design, Complex Problem Solving
Mixed · Course · 1 - 4 Weeks

Instituto Tecnológico de Aeronáutica
Skills you'll gain: Object Oriented Programming (OOP), Software Design Patterns, Object Oriented Design, Java, Software Design, Application Design, Test Driven Development (TDD)
Intermediate · Course · 1 - 4 Weeks