Learn Software Engineering Online for Free
Some of the best software engineering schools offer undergraduate and graduate-level software engineering classes and class materials online for free, through open courseware programs. The materials you can find in an open course are usually taken from previous course offerings, but they usually may not be taken for credit and can no longer count towards a software engineer degree. However, students and educators alike are free to use these materials to study or use for a software developer training program. These classes are usually self-paced and self-assessed.
Although you may have to purchase books or other supplemental materials, these open courseware classes are a great way to learn software engineering online for free (or a low cost), from the very basics to more advanced concepts in software development. Trying out free college coursework can also be a good way to help you discover if a bachelor of software engineering is right for you, and even which college software development program might be your best fit.
List of Software Engineering Courses: Free or Low-Cost
The following colleges and universities offer free/low-cost online software engineering classes and more:
Massachusetts Institute of Technology (MIT)
Students can access course materials from thousands of previous MIT courses through the university's OpenCourseWare project. All course materials are available for free and cover a variety of undergraduate- and graduate-level subjects. The materials available in each course vary, but usually include a syllabus, lecture notes/videos, suggested readings, and assignments. Students are welcome to take courses in any order, but some have recommended prerequisites. Some courses also require a textbook, which must be purchased separately.
- Introduction to Computer Science and Programming in Python is an undergraduate course that serves as an introduction to computer programming and software development. It focuses on developing algorithms to solve problems, and translating those algorithms into programs. This course uses Python 3.5 and students must download and install this in order to complete the assignments.
- Operating System Engineering is a graduate-level course that offers a study of the design and implementation of operating systems, with lectures, projects and readings in x86 programming, virtual memory, file systems, processes and switching, crash recovery, OS organization and more. Projects are completed in C and x86 assembly.
The Open University
Study online for free and at your own pace with The Open University's OpenLearn website, which offers thousands of downloadable courses in a wide range of subjects and difficulties. Registration is optional, but it is free and allows access to learning forums. OpenLearn courses do not offer college credit, but students can earn a Statement of Participation after completion.
- Approaches to Software Development is an advanced, nine-hour course that presents a holistic look at the development of software systems, their characteristics and development processes, and the attributes that a system must have to be effective and reliable. Also covers the roles of modeling and abstraction in software engineering.
- Software and the Law is an advanced course that introduces students to the important legal aspects of software development from a global perspective. This eight-hour course covers intellectual property laws, patents, contracts, and malicious misuse of software, and includes a helpful glossary of terms.
edX is an educational website developed by MIT and Harvard University that offers free, online access to real Massive Open Online Courses (MOOCs) from the world's top-ranked universities. These courses include all the necessary materials but do not grant college credit. However, students may earn a certificate of completion for an additional fee.
- Software Engineering Essentials is an interactive course offered by Technische Universität München that covers the basics of object-oriented software engineering and agile methods. It includes videos and online programming (Java) exercises in a peer-reviewed environment.
- Data Structures and Software Design is provided by the University of Pennsylvania and covers the fundamentals of software development and data manipulation. Students will learn how to select the most appropriate data structures for the job, as well as how to produce software that is easy to understand, test and adapt. The exercises and projects in this course use Java.
Software Engineer Training Online
There are also websites that are not attached to a specific college or university, but provide practical, focused training in software development and its many subjects, such as programming, artificial intelligence, data manipulation, and more. These training programs are often project-based, meaning that you learn by working on an actual software development project that you may add to a professional portfolio.
- CodeAcademy is a free and interactive website that allows students to develop practical skills by actually building real projects in Python, Java, C/C++, SQL, Ruby, and more. After registering, students can try any of Code Academy's free courses which cover beginning programming to more advanced subjects in software engineering. CodeAcademy also has a selection of paid courses and skill tracks for a more traditional and organized learning experience.