Software design courses can help you learn programming principles, design patterns, user interface design, and system architecture. You can build skills in code refactoring, version control, and creating scalable applications. Many courses introduce tools like Git for version control, Figma for UI/UX design, and various integrated development environments (IDEs) to streamline the coding process. By engaging with these topics and tools, you can enhance your ability to create efficient, user-friendly software solutions.

Skills you'll gain: Data Ethics, Generative AI Agents, Generative AI, Software Design Documents, Software Design, AI Integrations, Software Architecture, Agentic Workflows, Continuous Integration, Software Development, Prompt Patterns, LLM Application, Application Security, Software Engineering, Code Review, Debugging, DevSecOps
Intermediate · Course · 1 - 3 Months

University of Michigan
Skills you'll gain: Unified Modeling Language, JSON, Object Oriented Programming (OOP), File I/O, Software Design, Debugging, Object Oriented Design, Data Processing, Diagram Design, Unit Testing, Programming Principles, Python Programming, Data Import/Export, Data Wrangling, Restful API, Image Analysis, Software Visualization, Data Manipulation, Jupyter, Computer Programming
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, Java, Software Engineering, Java Programming, Computer Programming, User Interface and User Experience (UI/UX) Design, Unit Testing, Software Design, Software Architecture, API Design, Model View Controller, Software Development, Test Driven Development (TDD), Conceptual Design, Databases
Intermediate · Specialization · 3 - 6 Months

University of Minnesota
Skills you'll gain: User Story, Agile Software Development, Software Design Patterns, Design Thinking, Software Development Methodologies, Software Design, Agile Methodology, Agile Project Management, Process Mapping, Software Engineering, Kanban Principles, Kaizen Methodology, Software Development Life Cycle, Software Quality Assurance, Agile Product Development, Application Security, Security Architecture Review, Scrum (Software Development), Object Oriented Design, Software Architecture
Intermediate · Specialization · 3 - 6 Months

Skills you'll gain: Real-Time Operating Systems, Embedded Software, Software Architecture, Code Reusability, Embedded Systems, Memory Management, Systems Architecture, Software Design, Software Design Patterns, Performance Tuning, Safety Assurance, Software Testing, Secure Coding, Scalability, Data Sharing
Intermediate · Course · 1 - 4 Weeks

University of Colorado System
Skills you'll gain: Application Security, Vulnerability Assessments, Software Design, Threat Modeling, Vulnerability Management, Security Engineering, Secure Coding, Software Design Patterns, Software Architecture, Threat Management, Software Visualization, Exploitation techniques, Cryptography, Blockchain, Public Key Cryptography Standards (PKCS)
Intermediate · Course · 1 - 3 Months

Skills you'll gain: Prompt Engineering, Prompt Patterns, ChatGPT, Generative AI, Generative Model Architectures, Data Ethics, Generative AI Agents, Model Deployment, Restful API, Software Design Documents, Software Design, AI Integrations, Application Deployment, AI literacy, Software Architecture, Agentic Workflows, Continuous Integration, Artificial Intelligence and Machine Learning (AI/ML), Software Development, Java Programming
Intermediate · Specialization · 3 - 6 Months

University of California, Santa Cruz
Skills you'll gain: C++ (Programming Language), C and C++, Object Oriented Programming (OOP), Object Oriented Design, Programming Principles, Software Design Patterns, Computer Programming, Algorithms, C (Programming Language), Software Design, Program Development, Graph Theory, Code Reusability, Computational Logic, Artificial Intelligence, Data Structures, Memory Management, File I/O, Simulations
Beginner · Specialization · 3 - 6 Months

University of Colorado System
Skills you'll gain: Unified Modeling Language, Unit Testing, Software Design, Data Flow Diagrams (DFDs), Software Engineering Tools, Software Engineering, Software Development Tools, JUnit, Software Testing, Diagram Design, Design, Data Ethics, Test Automation, Dataflow
Intermediate · Course · 1 - 3 Months

University of Colorado System
Skills you'll gain: Database Design, Software Design, User Experience Design, Database Theory, Usability, UI/UX Research, Usability Testing, User Interface and User Experience (UI/UX) Design, Relational Databases, Software Visualization, Software Architecture, Software Design Patterns, User Interface (UI) Design, Application Security, Design Strategies, Security Software, Servers, Operating Systems
Intermediate · Course · 1 - 3 Months

University of Alberta
Skills you'll gain: Software Architecture, Unified Modeling Language, Systems Architecture, Software Design, Software Design Documents, Software Visualization, Product Family Engineering, Software Development, Software Documentation, Diagram Design, Software Technical Review, Application Deployment, Data Storage
Intermediate · Course · 1 - 4 Weeks

Skills you'll gain: Software Development Life Cycle, Linux Commands, Software Architecture, Bash (Scripting Language), Restful API, Shell Script, Git (Version Control System), GitHub, Full-Stack Web Development, Software Design, Flask (Web Framework), Version Control, File Management, Unix Shell, Web Development, Linux, Application Deployment, Python Programming, NumPy, Data Analysis
Beginner · Specialization · 3 - 6 Months