Learn software design for developing robust applications. Understand design patterns, object-oriented principles, and user-centered design.

Skills you'll gain: Software Development Life Cycle, z/OS, COBOL (Programming Language), Unit Testing, Systems Analysis, Systems Development, Pseudocode, Software Development Methodologies, Agile Methodology, Software Development, Software Design, Systems Architecture, Mainframe Computing, Programming Principles, Test Planning, Scrum (Software Development)
Beginner · Course · 1 - 3 Months

University of Michigan
Skills you'll gain: Unified Modeling Language, Software Design, Object Oriented Design, Image Analysis, Python Programming, Jupyter, Software Engineering, Application Programming Interface (API), Computer Vision, Integrated Development Environments, Computer Programming
Intermediate · Course · 1 - 4 Weeks
École Polytechnique Fédérale de Lausanne
Skills you'll gain: Scala Programming, Software Design, Software Design Patterns, Functional Design, Java, Programming Principles, Performance Tuning, Data Structures, Algorithms
Intermediate · Course · 1 - 3 Months

Skills you'll gain: Systems Analysis, Communication Systems, Verification And Validation, Systems Design, Data Modeling, Programming Principles, Software Design, Software Architecture, Network Protocols, Algorithms
Advanced · Course · 1 - 4 Weeks
Instituto Tecnológico de Aeronáutica
Skills you'll gain: JUnit, Object Oriented Programming (OOP), Java, Java Programming, Object Oriented Design, Unified Modeling Language, Unit Testing, Software Engineering, Agile Software Development, Software Design, Software Development, Programming Principles, Eclipse (Software)
Intermediate · Course · 1 - 3 Months

University of California, Santa Cruz
Skills you'll gain: C++ (Programming Language), Go (Programming Language), Data Structures, C and C++, Object Oriented Programming (OOP), Software Design Patterns, Debugging, Object Oriented Design, Computer Programming, Unit Testing, Algorithms, C (Programming Language), Programming Principles, Integrated Development Environments, Graph Theory, Computer Science, File Systems, Artificial Intelligence, Integration Testing, Software Design
Intermediate · Specialization · 3 - 6 Months

University of California, Irvine
Skills you'll gain: Go (Programming Language), Back-End Web Development, Object Oriented Programming (OOP), System Programming, Debugging, Algorithms, OS Process Management, Functional Design, Computer Programming Tools, Data Access, Data Structures, Software Design, Operating Systems, Computer Architecture
Intermediate · Specialization · 3 - 6 Months

Peking University
Skills you'll gain: Object Oriented Design, Unified Modeling Language, Object Oriented Programming (OOP), Software Development, Software Architecture, Software Engineering, Software Design, Software Development Methodologies, System Design and Implementation, Systems Analysis, Technical Design, Requirements Analysis
Beginner · Course · 3 - 6 Months

Universidade de São Paulo
Skills you'll gain: Model View Controller, Unified Modeling Language, Object Oriented Programming (OOP), Software Design Patterns, Software Design, Java Programming, Computer Programming, Debugging, Software Architecture, Programming Principles, Other Programming Languages, Prototyping
Intermediate · Course · 1 - 3 Months

Skills you'll gain: Package and Software Management, Software Design
Beginner · Course · 3 - 6 Months

Skills you'll gain: Version Control, GitHub, User Accounts, Role-Based Access Control (RBAC), Git (Version Control System), .NET Framework, Identity and Access Management, Database Management, Object-Relational Mapping, Authorization (Computing), Microsoft Windows, Database Application, Microsoft Development Tools, Application Design, Application Development, C# (Programming Language), Software Design, Authentications, User Interface (UI)
Intermediate · Course · 1 - 4 Weeks

Skills you'll gain: Embedded Software, Embedded Systems, System Programming, Cross Platform Development, Hardware Architecture, Peripheral Devices, Serial Peripheral Interface, Performance Tuning, Software Design, Real Time Data, Technical Design, C (Programming Language), Debugging, System Configuration, Maintainability, Scalability, Data Mapping
Advanced · Course · 1 - 4 Weeks