370 Free Online Programming & Computer Science Courses You Can Start This Month
370 Free Online Programming & Computer Science Courses You Can Start This Month
There‘s never been a better time to learn programming and computer science for free, thanks to the rise of massive open online courses (MOOCs) from top universities and institutions around the world. In just the past decade, platforms like Coursera, edX and Udacity have unlocked access to high-quality education in computer science and programming that was previously only available to students paying high tuitions.
Whether you‘re completely new to coding or a seasoned developer looking to expand your skills, there‘s an online course for you. Many are even self-paced and available year-round so you can start learning anytime. To help you get started, we‘ve compiled this list of 370 free online programming and computer science courses you can begin this month. For each, we‘ve included key details like the instructor, estimated timeline, topics covered and course ratings to help you find the best fit.
We‘ve grouped the courses into three main categories based on difficulty:
- Beginner
- Intermediate
- Advanced
Within each category, you‘ll find courses covering foundational computer science topics like algorithms and data structures, as well as specific programming languages and technologies for web development, data science, artificial intelligence, and more.
Let‘s dive in!
Beginner Courses
If you‘re completely new to programming and computer science, these beginner-friendly courses are the perfect starting point. Most require no prior coding experience.
Introduction to Computer Science | Harvard University (edX)
Instructor: David J. Malan
Estimated timeline: 10-20 hours per week for 11 weeks
Topics: Algorithms, data structures, resource management, security
Rating: 4.8/5 stars (59 ratings)
This is Harvard‘s introductory CS course for majors and non-majors alike, with material on algorithms, data structures, resource management, and more. You‘ll learn programming fundamentals and get lots of hands-on practice through problem sets inspired by real-world domains like cryptography and finance. By the end, you‘ll have learned the basics of C, Python, SQL and JavaScript plus computer science foundations you can build on.
Introduction to Programming with Python | Georgia Tech (edX)
Timeline: 5 weeks
Topics: Basics of computing in Python, variables, loops, conditionals, functions
Rating: 4.5/5 stars (36 ratings)
Learn the fundamentals of programming with Python in this beginner-friendly intro course. Through a series of short video lessons and coding exercises, you‘ll learn to represent and store data using Python variables and use conditionals, loops and functions to design programs. You‘ll get hands-on practice applying your skills to solve real problems in a final coding project. No prior experience is necessary for this course.
Web Development: HTML & CSS Basics | University of California, Davis (Coursera)
Instructor: Daniel Randall
Timeline: 13 hours
Topics: HTML5 and CSS basics, linking pages, page layout, responsive design
Rating: 4.7/5 (2,175 ratings)
In this course for complete beginners, you‘ll learn to create and style your first web pages with HTML and CSS. Each lesson introduces new web development concepts like structuring page content with HTML elements, styling pages with CSS rules, creating multi-page websites, and coding responsive layouts that adapt to screens of different sizes. Quizzes and a final project creating a personal web page help reinforce your skills.
Intro to JavaScript | Udacity
Timeline: 2 weeks
Topics: JavaScript data types, conditionals, loops, functions, arrays, objects
Rating: 4.6/5 (6,045 ratings)
JavaScript is an essential language for anyone interested in web development. In this free course, you‘ll learn the fundamentals of programming in JavaScript, one of the most widely used languages for creating interactive web pages. Course content covers core language features like variables, arrays, loops, functions and objects. Quizzes and a final online resume project provide opportunity to practice your skills.
Java Programming Basics | Udacity
Timeline: 4 weeks
Topics: Java syntax, object-oriented programming basics, ArrayLists, 2D arrays
Rating: 4.4/5 (1,023 ratings)
Get started with Java, one of the most popular and in-demand programming languages, in this free beginner course. You‘ll learn the basics of Java syntax and object-oriented programming, then apply those skills to build your first Java programs with ArrayLists and 2D arrays. Bite-sized video lessons and quizzes make the material approachable for those new to programming.
More highly-rated beginner programming courses:
- Learn to Program: The Fundamentals | University of Toronto (Coursera)
- Programming for Everybody | University of Michigan (Coursera)
- Intro to HTML and CSS | Udacity
- CS50‘s Understanding Technology | Harvard (edX)
- Visualizing Algebra | UC Santa Barbara (Coursera)
- Intro to Statistics | Udacity
- Linux Command Line Basics | Udacity
With this selection of courses, you‘ll be well on your way to learning coding basics in popular languages like Python, JavaScript, HTML/CSS, and Java, plus key computer science topics to start building your foundation of programming knowledge.
Intermediate Courses
Once you have some coding experience under your belt, you can level up your skills with these intermediate courses that assume basic programming knowledge. You‘ll go deeper into topics like data structures, algorithms, and software design.
Algorithms, Part 1 | Princeton University (Coursera)
Instructors: Kevin Wayne, Robert Sedgewick
Timeline: 6 weeks, 6-12 hours per week
Topics: Data structures, sorting, searching, graph processing, shortest paths
Rating: 4.9/5 (49,075 ratings)
This course teaches the essential information you need to develop and analyze algorithms. Part 1 covers data structures, sorting, and searching algorithms. Specific topics include union-find, binary search, stacks, queues, bags, insertion sort, selection sort, shellsort, quicksort, 3-way quicksort, mergesort, heapsort, binary heaps, binary search trees, red−black trees, separate chaining and linear probing hash tables, Graham scan, and kd-trees.
Machine Learning | Stanford University (Coursera)
Instructor: Andrew Ng
Timeline: 11 weeks, 5-7 hours per week
Topics: Supervised learning, unsupervised learning, best practices in ML
Rating: 4.9/5 (278,390 ratings)
This is the famous machine learning course taught by Andrew Ng that launched Coursera and has been taken by over 3 million students. You‘ll learn about the most effective ML techniques and how to apply them. Topics include supervised learning (parametric/non-parametric algorithms, kernels, neural networks), unsupervised learning (clustering, dimensionality reduction, recommender systems), and best practices (bias/variance, regularization). There are numerous case studies and applications to learn from.
Software Construction in Java | MIT (edX)
Instructors: Elsa Olivetti, Aarthi Alagammai, Annie Wang
Timeline: 9 weeks
Topics: Java programming concepts, testing, debugging, data structures, OOP
Rating: 4.4/5 (15 ratings)
Learn more advanced Java programming skills for developing high-quality software in this free course based on one taught at MIT. It covers object-oriented programming concepts like class design, information hiding, inheritance, and polymorphism, plus techniques for testing, debugging and improving code. Coding exercises and weekly projects give you hands-on practice. Prior experience with basic Java syntax is recommended before taking this course.
Computation Structures | MIT (edX)
Instructors: Chris Terman, Natalie Lao, Chris Bauer
Timeline: 10 weeks, 12 hours per week
Topics: Digital circuits, computer architecture, assembly language, memory systems
Rating: 4.8/5 (20 ratings)
Taken by all MIT electrical engineering and computer science majors, this course teaches key computation structures principles through a bottom-up approach. You‘ll start with the fundamentals of digital circuits, then move up to higher-level concepts in computer architecture, assembly language, processor design, and memory systems. Along the way are many interactive tools, demos and software labs to help make the low-level concepts tangible. Comfort with basic circuits and programming experience are recommended prerequisites.
Database Management Essentials | University of Colorado (Coursera)
Instructor: Michael Mannino
Timeline: 7 weeks, 4-6 hours per week
Topics: ER models, relational data models, normalization, SQL, database apps
Rating: 4.6/5 (2,847 ratings)
Databases are a critical part of most software systems. In this free course, you‘ll learn the key concepts and techniques for effective database design and management, including data modeling with ER diagrams, the relational model and normalization, querying databases with SQL, and building applications on top of databases. Hands-on exercises give you practice with MySQL and using Java to connect to databases.
More top-rated intermediate courses:
- Algorithms, Part 2 | Princeton (Coursera)
- Introduction to Algorithms | MIT (Coursera)
- Software Design and Architecture | University of Alberta (Coursera)
- Agile Development Using Ruby on Rails | UC Berkeley (EdX)
- Data Structures and Algorithms | UC San Diego (Coursera)
- Machine Learning with Python | IBM (Coursera)
- Full Stack Web Development | The Hong Kong University of Science and Technology (Coursera)
These intermediate courses will take your programming skills to the next level by introducing key computer science concepts, tools, and techniques used by professional software engineers. Expect challenging material and rewarding learning if you put in the time and effort.
Advanced Courses
Ready to tackle some of the most cutting-edge topics in computer science? These advanced courses cover areas like robotics, computer vision, and cryptography. Most require significant prior coding experience and knowledge of college-level math.
Artificial Intelligence | Columbia University (edX)
Instructor: Ansaf Salleb-Aouissi
Timeline: 12 weeks, 8-10 hours per week
Topics: Machine learning, probabilistic reasoning, computer vision, NLP, robotics
Rating: 4.9/5 (145 ratings)
This graduate-level course provides a broad overview of modern artificial intelligence topics, including machine learning, search, game playing, Markov decision processes, constraint satisfaction, graphical models, and logic. Graded programming assignments in Python provide hands-on experience with the techniques. Students should have a strong CS background and be comfortable with the material taught in courses like Data Structures and Algorithms, Probability, and Linear Algebra.
Convolutional Neural Networks | DeepLearning.AI (Coursera)
Instructor: Andrew Ng
Timeline: 4 weeks, 4 hours per week
Topics: Foundations of CNNs, deep convolutional models, face recognition, neural style transfer
Rating: 4.9/5 (41,127 ratings)
In this advanced deep learning course, you‘ll learn how to build convolutional neural networks and apply them to image data. You‘ll understand how to implement convolutional, pooling, and fully connected layers, apply convolutional nets to visual detection and recognition tasks, use neural style transfer to generate art, and more. The course assumes prior experience with Python programming and knowledge of machine learning basics.
Quantum Computing | Saint Petersburg State University (Coursera)
Instructor: Olga Girshkina
Timeline: 5 weeks
Topics: Quantum algorithms, quantum circuits, quantum cryptography, implementations
Rating: 4.8/5 (146 ratings)
Quantum computing, an cutting-edge field that harnesses quantum physics to solve computational problems, could revolutionize the future of computing. In this advanced course, you‘ll study the key concepts and algorithms of quantum computing, see how they compare to classical algorithms, and explore potential technological applications like quantum cryptography. The challenging material assumes knowledge of linear algebra, probability, and complex numbers.
Robotics: Perception | University of Pennsylvania (Coursera)
Instructor: Daniel Lee
Timeline: 4 weeks, 10 hours per week
Topics: Geometry of image formation, 3D vision techniques, robot motion, object tracking
Rating: 4.7/5 (186 ratings)
How can robots perceive the world around them? You‘ll find out in this graduate-level course on vision and perception algorithms used in robotics. The course covers geometric relationships between 3D objects and their 2D images, extracting 3D information from images and video, and tracking the movement of objects like people and cars. Assignments in MATLAB give you hands-on experience with the concepts. Prerequisites include linear algebra, basic probability, and some programming experience.
Advanced Data Structures in Java | UC San Diego (Coursera)
Instructors: Mia Minnes, Leo Porter
Timeline: 6 weeks, 6 hours per week
Topics: Graphs, games, NP problems, string searching, data compression, multithreading
Rating: 4.6/5 (2,453 ratings)
This course takes a deep dive into advanced data structures and techniques for developing efficient algorithms in Java. Topics include graphs, multi-threading, binary trees, and NP-complete problems. Through video lessons and coding assignments, you‘ll learn to implement data structures from scratch and understand the tradeoffs involved in using them. Prior experience developing programs in Java is required.
More challenging advanced computer science courses:
- Applied Cryptography | Udacity
- Advanced Operating Systems | Georgia Tech (Udacity)
- Computability, Complexity & Algorithms | Georgia Tech (Udacity)
- Distributed Systems | KTH Royal Institute of Technology (edX)
- Computational Neuroscience | University of Washington (Coursera)
These advanced courses will challenge even the most experienced programmers and budding computer scientists. But if you‘re up for it, they provide an excellent opportunity to explore fascinating areas at the forefront of research and innovation in CS.
The Benefits of Free Online CS Courses
As you can see, the range of free online courses in computer science is truly remarkable, from introductory programming lessons to graduate-level AI and quantum computing. Taking these MOOCs enables you to:
- Learn in-demand programming languages and frameworks employers look for
- Study computer science topics to build your knowledge, even if you‘re not a CS major
- Refresh your skills or learn a new specialty to advance your career
- Explore fascinating, leading-edge areas of computer science research
- Prepare for further studies in a graduate program
- Learn from top professors and industry experts, at your own pace
All for free and from the comfort of your home!
Tips for Success in Online Learning
While free online courses open up learning opportunities, it‘s up to you to follow through. To get the most out of these courses:
- Choose a course that aligns with your goals and interests
- Block off dedicated time each week to watch lectures and complete assignments
- Actively take notes and do the exercises, don‘t just passively watch
- Connect with other learners in the course forums or offline study groups
- Take advantage of online resources provided like datasets and development environments
- Apply your skills to create your own side projects alongside the course
- Add completed courses and projects to your portfolio and resume
Start Learning Today!
We hope this compilation of 370 free online programming and computer science courses helps you find your next learning opportunity. Remember, you can enroll in most of these MOOCs for free at any time and start learning in-demand skills from instructors at Harvard, Stanford, MIT and other top schools this very month.
Check the links to individual course pages for more details and to enroll. Pick a course that matches your experience level and interests, set a goal, and dive in. You may learn a valuable new skill, advance your career, discover a passion, and join a global community of lifelong learners.
Happy coding!