Courses from 1000+ universities
Discover an easier way to explore affordable, credit-worthy online courses with our expanded community college catalog.
600 Free Google Certifications
Computer Science
Python
Graphic Design
Exploring English: Language and Culture
Machine Learning for Musicians and Artists
Information Systems Auditing, Controls and Assurance
Organize and share your learning with Class Central Lists.
View our Lists Showcase
Learn Software Design, earn certificates with free online courses from Stanford, University of Pennsylvania, Johns Hopkins, UC Berkeley and other top universities around the world. Read reviews to decide if a class is right for you.
Master essential C++ refactoring techniques to transform complex code into clean, maintainable solutions while improving efficiency and leveraging object-oriented principles for better code quality.
Master essential software design patterns in TypeScript, from encapsulation and abstraction to polymorphism, while learning to create flexible and maintainable code using object-oriented principles.
Master essential TypeScript refactoring techniques to transform complex code into clean, maintainable solutions while improving code quality and implementing modern development practices.
Explore functional programming concepts using ML, Racket, and Ruby. Learn language design principles to write elegant, reusable code and gain a deeper understanding of programming paradigms.
Learn to create flexible software applications using design principles, patterns, and architectures. Develop practical skills in object-oriented design, design patterns, software architecture, and service-oriented architecture.
Learn software design principles, architectural patterns, and project management techniques for effective development lifecycle planning, from analysis to maintenance.
Explore object-oriented analysis and design fundamentals, UML modeling, and testing strategies for complex software systems. Apply concepts in hands-on projects using Java and JUnit.
Explore software design's crucial role in development lifecycles, from translating requirements to addressing security issues, enhancing your ability to create effective software solutions.
Learn software design tools and techniques, including UML modeling, unit testing, and ethical considerations for developers. Enhance your design skills and professional responsibilities.
Learn software design principles, focusing on abstraction, user-centric approaches, database design, design patterns, and language choices. Gain practical insights for effective software development and architecture.
Explore software design threats, vulnerabilities, and mitigation strategies. Learn to use CVE and CWE databases, integrate security, and analyze real-world examples like Bitcoin and common exploits.
Comprehensive exploration of software engineering principles, from process models to emerging technologies, with practical assignments for hands-on learning and skill development.
Officially created in collaboration with the Google Flutter team.
Synthesize your knowledge of algorithms and biology to build your own software for solving a biological challenge.
Gain mastery over SOLID Principles and write clean and well-designed code in Object Oriented Languages like Java etc.
Get personalized course recommendations, track subjects and courses with reminders, and more.