Perfect School Search
List of Free Online Programming Courses and Classes
See our list of the top free online programming courses. Learn about what courses are available and what topics they cover to find the course that's right for you.
Free Online Programming Course Information
Some major universities offer open access to course materials used in their computer programming courses. Introductory and advanced topics are available. Registration isn't required to use these materials, which vary by institution and course. Students don't receive the benefit of interaction with instructors, grades or academic credit.
Massachusetts Institute of Technology (MIT)
- A Gentle Introduction to Programming Using Python
- Introduction to Computer Science and Programming
- Introduction to C Memory Management and C++ Object-Oriented Programming
- Introduction to Programming in Java
- Structure and Interpretation of Computer Programs
MIT offers a wide variety of OpenCourseWare (OCW) programming courses, several at the introductory level. A Gentle Introduction to Programming Using Python was designed as a 3-week course for undergraduates with little or no experience in programming. Course materials available to OCW users include a downloadable text, which introduces learners to basic concepts in computer science and programming through the Python programming language. Lecture notes, assignments, handouts, exams and links to outside Python resources are also provided. Through a study group link on the course webpage, students can interact with peers and ask questions.
Through Introduction to Computer Science and Programming, OCW users can likewise learn to solve basic programming problems using Python. Some of the recommended texts on learning Python are available online for free as well as the required software. Video lectures, handouts, assignments, supplemental links, access to an online study group and quizzes are some of the additional resources available for this course. Introduction to C Memory Management and C++ Object-Oriented Programming is a brief course for undergraduates with previous programming experience in another language. Learners move from basic to advanced topics in writing C/C++ code within six sessions, for which lecture notes and assignments are available.
Introduction to Programming in Java is another short course designed for undergraduates interested in software engineering. Lecture notes for the seven class sessions, assignments and links to several free resources for learning the fundamentals of Java are available. Links are provided to download the Java Development Kit and a source code editor. A required course for all undergraduates in the Department of Electrical Engineering and Computer Science, Structure and Interpretation of Computer Programs is programming intensive and designed to familiarize students with basic computer science concepts. OCW learners have access to video lectures, transcripts, lecture notes, the online textbook, project assignment descriptions and exams.
University of California at Berkeley (UC - Berkeley)
- Data Structures
- Efficient Algorithms and Intractable Problems
- Operating Systems and System Programming
- Programming Languages and Compilers
- Structure and Interpretation of Computer Programs
Learners can view video lectures for several courses from UC - Berkeley's Computer Science Division on the university's website, YouTube and iTunes U; audio podcasts are available through iTunes, as well. No other course materials are provided. Data Structures is an undergraduate course designed to teach the fundamentals of software engineering and introduce students to Java. Learners following the lectures in Efficient Algorithms and Intractable Problems are exposed to theories and basic methods for creating and analyzing different types of algorithms as well as a variety of computation models.
The introductory course Operating Systems and System Programming familiarizes learners with a wide variety of topics in its 23 lectures, including segmentation, storage devices, security and utility programs. The 21 lectures in Programming Languages and Compilers provide an overview of how programming languages are designed. In Structure and Interpretation of Computer Programs, learners explore a variety of programming concepts through learning Python. The focus is on learning the essentials of programming rather than picking up a particular language. Previous programming experience isn't required.
- Introduction to Computer Science: Programming Methodology
- Introduction to Computer Science: Programming Abstractions
- Introduction to Computer Science: Programming Paradigms
- iPhone Application Development
- Programming Massively Parallel Processors
Through the initiative Stanford Engineering Everywhere, students can access free online courses from the School of Engineering, including computer programming courses. Among these are three introductory computer science courses. While all the original course materials may not be available online, course materials typically include video lectures, readings and assignments. Lectures, which include transcripts, are available through YouTube, iTunes, WMV Torrent and MP4 Torrent.
The three Introduction to Computer Science courses follow a sequence. The first, Programming Methodology, is directed toward both humanities- and technology-oriented students, requiring no previous programming experience. Learners study basic concepts of computer application engineering while learning Java and may download for free all required software for the course.
Through the C++ programming language, students in the next course in the sequence, Programming Abstractions, explore advanced topics, like data abstraction and algorithmic analysis. Instructions for programming assignments, linked to various lectures, are provided in addition to problem sets and solutions. Building on the first two courses in the series, Programming Paradigms introduces students to advanced features of C/C++ and, through an overview of other contemporary languages, explores the differences between different approaches to programming. Course materials include links to several online tutorials and additional resources.
The remaining School of Engineering programming courses aren't part of the Stanford Engineering Everywhere project, and their course materials primarily consist of video lectures available on iTunes. Prerequisites and recommendations for iPhone Application Development include experience in C language and object-oriented programming. The course focuses on developing original ways for users to interact with the multi-touch capabilities of iPhones. The 16 lectures for Programming Massively Parallel Processors are designed for students who wish to develop software applications for concurrent processors. Students learn about parallel programming and communication models, among other topics.