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.

View popular schools

Online Programming Courses for Credit

While free courses in programming that let you access materials without worrying about registration or tuition are available online, you won't find free courses offering academic credit. If you're able to pay a relatively low-cost fee, the courses on make for an engaging way of learning while advancing your technical skills. The video and text lessons you'll find here are taught by professional instructors and accompanied by interactive assessments you can use to double-check your understanding.

If you're interested in programming, you might want to look into Java Programming Tutorial & Training Course, which guides you through various aspects of Java. The course includes the following chapters:

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)

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.
  • Introduction to Computer Science and Programming examines 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.
  • 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.

Find schools that offer these popular programs

  • Computer Games and Programming Skills
  • Computer Programming for Applications
  • Computer Programming for Certifications

University of California at Berkeley (UC - Berkeley)

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.

  • Data Structures is an undergraduate course designed to teach the fundamentals of software engineering and introduce students to Java.
  • Efficient Algorithms and Intractable Problems exposes learners to theories and basic methods for creating and analyzing different types of algorithms as well as a variety of computation models.
  • 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.
  • Programming Languages and Compilers provides an overview of how programming languages are designed.
  • Structure and Interpretation of Computer Programs explores 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.

Stanford University

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.

  • 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.
  • Programming Abstractions explores 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.
  • 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.
  • iPhone Application Development is a podcast focused on developing original ways for users to interact with the multi-touch capabilities of iPhones.
  • Programming Massively Parallel Processors with CUDA is designed for students who wish to develop software applications for concurrent processors. Students learn about parallel programming and communication models, among other topics.
Next: View Schools

What is your highest level of education?

Some College
Complete your degree or find the graduate program that's right for you.
High School Diploma
Explore schools that offer bachelor and associate degrees.
Still in High School
Earn your diploma or GED. Plan your undergraduate education.

Schools you may like:

Popular Schools

The schools in the listing below are not free and may include sponsored content but are popular choices among our users. Tuition and costs will vary across programs and locations. Be sure to always request tuition information before starting a program.

Find your perfect school

What is your highest level of education?