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.

Board Infinity
Skills you'll gain: Software Quality Assurance, Software Development Life Cycle, Quality Assurance, Software Quality (SQA/SQC), Software Documentation, Functional Testing, Software Testing, Software Development Methodologies, Acceptance Testing, Test Case, Maintainability, Test Planning, Unit Testing, Software Design, Technical Documentation, Waterfall Methodology, Agile Methodology
Beginner · Course · 1 - 4 Weeks

University of Colorado Boulder
Skills you'll gain: Field-Programmable Gate Array (FPGA), Hardware Design, Software Design, System Design and Implementation, Systems Design, Application Specific Integrated Circuits, Test Script Development, Electronics Engineering, Verification And Validation, Electronic Hardware, Electrical and Computer Engineering, Electronics, Functional Design, Test Tools, Development Testing, Simulation and Simulation Software, Computer Engineering, Programming Principles, Simulations, Functional Testing
Intermediate · Course · 1 - 4 Weeks
Multiple educators
Skills you'll gain: Unit Testing, Data Structures, Event-Driven Programming, File I/O, Interactive Data Visualization, Java, Java Programming, Object Oriented Design, Object Oriented Programming (OOP), User Interface (UI), Debugging, Software Testing, Computer Programming, Cryptography, Software Engineering, Bioinformatics, Algorithms, Data Analysis, Software Design, Problem Solving
Beginner · Specialization · 3 - 6 Months
Universidad de los Andes
Skills you'll gain: User Story, Test Automation, Version Control, Software Testing, Unified Modeling Language, Agile Software Development, Software Architecture, Test Script Development, Git (Version Control System), Maintainability, Software Design Patterns, JavaScript Frameworks, Usability, Cucumber (Software), Agile Methodology, Application Frameworks, Unit Testing, Web Content Accessibility Guidelines, Software Design, Application Design
Credit offered
Mastertrack · 6 - 12 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
Intermediate · Course · 1 - 4 Weeks

University of Michigan
Skills you'll gain: Object Oriented Programming (OOP), Object Oriented Design, Animations, Interactive Data Visualization, Software Design, Program Development, Data Structures, Interactive Design, Programming Principles, Visualization (Computer Graphics), Graphic and Visual Design, Computer Graphic Techniques, Python Programming, Event-Driven Programming, Digital Design, Simulations, Computer Graphics, Design, Game Design, Computational Logic
Beginner · Specialization · 3 - 6 Months

University of Colorado Boulder
Skills you'll gain: Embedded Software, Embedded Systems, Debugging, Data Structures, System Programming, Microarchitecture, C (Programming Language), Memory Management, Hardware Architecture, Computer Architecture, Software Design, Maintainability, Computer Programming Tools, System Configuration, Code Reusability, Peripheral Devices
Intermediate · Course · 1 - 4 Weeks

Skills you'll gain: Memory Management, Go (Programming Language), Code Reusability, Software Design Patterns, Software Architecture, Object Oriented Programming (OOP), Systems Design, Functional Design, Software Design, System Design and Implementation, Maintainability, Object Oriented Design, System Programming, Data Modeling, Programming Principles, Back-End Web Development
Intermediate · Course · 1 - 4 Weeks

University of Alberta
Skills you'll gain: Object Oriented Design, Unified Modeling Language, Software Design, Object Oriented Programming (OOP), Java, Java Programming, Maintainability, Code Reusability, Software Design Documents, Application Design, Conceptual Design, Diagram Design, Design Elements And Principles
Intermediate · Course · 1 - 4 Weeks

Skills you'll gain: Prompt Engineering, Prompt Patterns, ChatGPT, Generative AI, Data Ethics, Generative AI Agents, AI Personalization, Mobile Development, Software Design Documents, Software Design, Generative Model Architectures, Anthropic Claude, Mobile Development Tools, LLM Application, AI literacy, iOS Development, AI Integrations, Personalized Campaigns, Software Development, Artificial Intelligence and Machine Learning (AI/ML)
Advanced · Specialization · 3 - 6 Months

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

Skills you'll gain: Prompt Engineering, Prompt Patterns, ChatGPT, Generative AI, 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, Software Development, LLM Application, Artificial Intelligence and Machine Learning (AI/ML), Java Programming
Intermediate · Specialization · 3 - 6 Months