Theoretical computer science courses can help you learn algorithms, computational complexity, automata theory, and formal languages. You can build skills in problem-solving, mathematical reasoning, and algorithm analysis, that support tackling complex computational tasks. Many courses introduce tools like Python for algorithm implementation, LaTeX for typesetting mathematical documents, and software for simulating automata, allowing you to apply these concepts in practical scenarios.

University of Michigan
Skills you'll gain: Unified Modeling Language, Software Design, Image Analysis, Python Programming, Jupyter, Software Engineering, Application Programming Interface (API), Object Oriented Programming (OOP), Computer Vision, Integrated Development Environments, Computer Programming
Intermediate · Course · 1 - 4 Weeks

Skills you'll gain: Event-Driven Programming, Payment Systems, User Interface (UI), MySQL, Application Design, Database Application, Python Programming, Transaction Processing, Application Development, User Interface (UI) Design, Database Management, Software Design, Debugging
Mixed · Course · 1 - 4 Weeks
Skills you'll gain: Embedded Software, C (Programming Language), Embedded Systems, Debugging, Peripheral Devices, Integrated Development Environments, Development Environment, Electronic Hardware, System Programming, Electronics, Software Development Tools, Program Development, Hardware Architecture, Data Structures, Microarchitecture, System Configuration, Programming Principles, Performance Tuning, Computer Architecture, Computer Programming
Intermediate · Specialization · 3 - 6 Months

École Polytechnique Fédérale de Lausanne
Skills you'll gain: Object Oriented Programming (OOP), Object Oriented Design, Java Programming, Java, Computer Programming, Software Design
Intermediate · Course · 1 - 3 Months

Skills you'll gain: Experience Design, Design Strategies, Service Design, Customer experience improvement, User Experience Design, Customer Engagement, UI/UX Strategy, User Interface and User Experience (UI/UX) Design, Design Research, Customer Insights, Business Analysis, Process Mapping, Cross-Functional Collaboration, Business Strategy, Stakeholder Engagement, Product Strategy, Prioritization, Ideation
Beginner · Course · 1 - 3 Months

Skills you'll gain: Motion Graphics, UI/UX Strategy, Animations, User Interface and User Experience (UI/UX) Design, Usability, User Experience, Interaction Design, User Interface (UI) Design, Prototyping, Cascading Style Sheets (CSS), Creative Design, Web Content Accessibility Guidelines, Style Guides, Performance Tuning
Intermediate · Course · 1 - 3 Months

Skills you'll gain: JSON, Package and Software Management, Web Scraping, Application Programming Interface (API), File Management, Python Programming, Authentications, Scripting, Data Processing, Performance Testing, Probability & Statistics
Intermediate · Course · 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

EDUCBA
Skills you'll gain: Technical Drawing, Engineering Drawings, Mechanical Drawings, Computer Aided Three-Dimensional Interactive Application (CATIA), Assembly Drawing, 3D Modeling, Mechanical Design, Drafting and Engineering Design, Computer-Aided Design, Visualization (Computer Graphics), File Management, Engineering Design Process, Interoperability
Beginner · Course · 1 - 3 Months
University of California, Santa Cruz
Skills you'll gain: C (Programming Language), C++ (Programming Language), Debugging, Computer Programming, Data Structures, Object Oriented Programming (OOP), Command-Line Interface, File Systems
Intermediate · Course · 1 - 3 Months

Microsoft
Skills you'll gain: Version Control, GitHub, Debugging, Git (Version Control System), Unit Testing, Data Structures, Python Programming, Software Testing, Programming Principles, Scripting, Computer Programming, Web Development, Algorithms, Program Development, Development Environment, Scripting Languages, Integrated Development Environments, Object Oriented Programming (OOP), Jupyter
Beginner · Course · 1 - 3 Months

Skills you'll gain: Linux Commands, Bash (Scripting Language), Shell Script, File Management, Linux, Unix Commands, Linux Servers, Scripting, Command-Line Interface, Ubuntu, Scripting Languages, Unix, Operating Systems, Network Protocols, Automation, Software Installation
Beginner · Course · 1 - 4 Weeks