Free Online Computer Courses
Are you interested in learning the basics of computer programming or brushing up on your skills? Maybe you're considering pursuing a bachelor's or associate's degree in computer programming but you're not yet sure if it's the right major for you. Check out this list of free computer training resources for a step in the right direction.
1. Massachusetts Institute of Technology (MIT)
Students and educators can access thousands of previously taught MIT courses through MIT's OpenCourseWare (OCW) project. Materials may vary, but usually include a syllabus, readings and assignments, lecture notes, learning activities and exams. These self-paced courses are free to browse, download, and share with friends. However, they are not moderated and do not award credit for completion. Courses like the following might be a good way to preview college-level programming coursework:
- Introduction to Computer Science and Programming in Python: Designed as an introduction to the conceptual and practical basics of programming, students of this course can write their own small programs with Python 3.5. Resources include in-class questions and video solutions to accompany each lecture.
- Introduction to Computational Thinking and Data Science: This offering is the follow-up to the above course and builds on the concept of using computer programming to help solve problems. It includes assignments plus additional Python resources.
edX was developed by MIT and Harvard University as a collection of Massive Open Online Courses (MOOCs) from over 140 colleges and universities all over the world. Courses are self-paced and include all required materials, though students may pay an additional fee for extras like graded coursework and a certificate of completion. Course availability varies, but can include offerings like:
- CS50's Introduction to Game Development: Offered by HarvardX, this 12-week course takes a comprehensive look at how video games are created and covers the use of common programming languages like Lua and C#.
- Introduction to C++: Provided by Microsoft, this four-week course contains four modules designed to introduce students to programming in C++. It includes instruction in syntax and language fundamentals, as well as working with functions.
- Java Fundamentals for Android Development: Offered by Universidad Galileo (GalileoX), students can learn basic Java application development skills. In addition to receiving an overview of Java programming, students learn how to work with the Android SDK and prepare for the Google Associate Android Developer Certification Exam.
3. The Open University - OpenLearn
Students can access thousands of free educational materials through OpenLearn, the free learning platform by The Open University (OU). Courses are available in a range of subjects and difficulty levels and are self-paced. Registration is optional, but it allows students to access a record of any completed courses. A sample of free online computer courses available on OpenLearn include:
- Learn to Code for Data Analysis (Introductory)
- Simple Coding (Introductory)
- Modelling Object-Oriented Software - An Introduction (Intermediate)
- An Introduction to Software Development (Advanced)
- Software and the Law (Advanced)
4. Carnegie Mellon University - Open Learning Initiative
Carnegie Mellon University is one of the top schools for computer programming in the United States and has made some free online computer courses available for independent learners on its Open Learning Initiative (OLI) website. OLI courses are free and contain all necessary materials (such as activities, lectures, and learning objectives), but they are entirely self-guided and not eligible for college credit. Students may complete coursework in topics like:
- Introduction to Programming in Java
- Principles of Computation with Python
- Media Programming
- Logic & Proofs
5. Programming Video Tutorials Online
6. Introduction to Programming Using Java
Students may freely access or download the online version of this textbook written by David J. Eck, currently on its eighth edition (as of July, 2019). Geared towards beginning Java programmers, this book begins with an introduction to how computers work, moving into the functions of object-oriented programming and the Java Virtual Machine. Students can then learn how to write, compile and run their own Java programs, starting with very simple exercises to more complex applications. Each chapter has its own quiz and activities (with solutions), and source codes are provided for all examples appearing in the book.
LandofCode.com is a free computer training resource that features tutorials in Java, plus web programming languages like HTML, CSS and PHP. These tutorials are self-paced and divided into chapters that focus on a specific subject, like variables, loops, strings, object-oriented programming, and creating interactive events. Each chapter includes example code and explanations, while quizzes are also available for self-assessment. Absolute newbies can get started with the website's own Introduction to Computer Programming, a course that explains the more basic concepts, terms, and how-tos of writing code.
8. Google Developers - Google's Python Class
Students who already have some programming knowledge can deepen their understanding of Python with this free online course from Google Developers. It includes a mix of text and video lectures, plus coding exercises so students can hone their programming skills while learning the language. Beginning with a chapter on installing Python and course materials, students can learn about Python syntax, operators, classes, iteration, regular expressions, and more.
- Responsive Web Design (300 hours, 5 projects): Includes courses in basic HTML, CSS, design and accessibility, and responsive web design principles
- Front End Libraries (300 hours, 5 projects): Includes lessons and activities in Bootstrap, jQuery, React, Sass, and Redux
- Coding Interview Prep (Thousands of hours): Includes practice for common algorithms one may be required to know for a job interview, plus programming challenges designed to hone one's skills, such as Rosetta Code and Project Euler problems.
Students looking for an interactive coding experience they can take anywhere might want to give CodeAcademy a try. It allows students to develop practical programming skills by building projects with Java, C++, Python, and more, right on the website; no need to download a separate development environment. While CodeAcademy has a number of optional paid courses and projects, students may also choose from a wide variety of free courses, including:
- Learn Java
- Learn C#
- Learn Ruby
- Learn Statistics with Python
- Learn the Command Line
- Learn Git