Free Computer Programming Courses & Tutorials

These are freely available Computer Programming Courses and Tutorials, giving you comprehensive instructions, lectures, videos, notes, assignments with solutions, and examinations with solutions. More free courses can be found on our new page: Free Courses on Programming, Software Development and Computer Science. (All hyperlinks on this page have been updated as of Oct. 13, 2023.)

Home >> Computer Training Resources >> this page

» Introduction To Computer Science And Programming In Python

This course is intended for students with little or no programming experience. It aims to provide students with an understanding of the role computation can play in solving problems and to help students, regardless of their major, feel justifiably confident of their ability to write small programs that allow them to accomplish useful goals.

» Introduction To Computational Thinking And Data Science

For students with little or no programming experience. It aims to provide students with an understanding of the role computation can play in solving problems and to help students, regardless of their major, feel justifiably confident of their ability to write small programs that allow them to accomplish useful goals. The class uses the Python 3.5 programming language. Also see Introduction to Computational Thinking which uses programmable interactivity to combine material from three fields creating an engaging, efficient learning solution to prepare students to be sophisticated and intuitive thinkers, programmers, and solution providers

» The Structure and Interpretation of Computer Programs

These lecture videos and notes teach programming and how to use abstraction. Important topics covered are: building abstractions, computational processes, higher-order procedures, compound data, data abstractions, controlling interactions, generic operations, self-describing data, message passing, streams and infinite data structures, meta-linguistic abstraction, interpretation of programming languages, machine model, compilation, and embedded languages.

» JavaScript Algorithms and Data Structures

While HTML and CSS control the content and styling of a page, JavaScript is used to make it interactive. In the JavaScript Algorithm and Data Structures Certification, you’ll learn the fundamentals of JavaScript including variables, arrays, objects, loops, and functions. Once you have the fundamentals down, you’ll apply that knowledge by creating algorithms to manipulate strings, factorialize numbers, and even calculate the orbit of the International Space Station.

» Front End Development Libraries

In the Front End Development Libraries Certification, you’ll learn how to style your site quickly with Bootstrap. You’ll also learn how add logic to your CSS styles and extend them with Sass. Later, you’ll build a shopping cart and other applications to learn how to create powerful Single Page Applications (SPAs) with React and Redux.

» Data Visualization

In the Data Visualization Certification, you’ll build charts, graphs, and maps to present different types of data with the D3.js library. You’ll also learn about JSON (JavaScript Object Notation), and how to work with data online using an API (Application Programming Interface).

» Back End Development and APIs

In the Back End Development and APIs Certification, you’ll learn how to write back end apps with Node.js and npm (Node Package Manager). You’ll also build web applications with the Express framework, and build a People Finder microservice with MongoDB and the Mongoose library.

» Scientific Computing with Python

Python is one of the most popular, flexible programming languages today. You can use it for everything from basic scripting to machine learning. In the Scientific Computing with Python Certification, you’ll learn Python fundamentals like variables, loops, conditionals, and functions. Then you’ll quickly ramp up to complex data structures, networking, relational databases, and data visualization.

» Data Analysis with Python

In the Data Analysis with Python Certification, you’ll learn the fundamentals of data analysis with Python. By the end of this certification, you’ll know how to read data from sources like CSVs and SQL, and how to use libraries like Numpy, Pandas, Matplotlib, and Seaborn to process and visualize data.

» Information Security

With the Information Security Certification, you’ll build a secure web app with HelmetJS to learn the fundamentals of protecting people’s information online. You’ll also build a TCP client, and an Nmap and port scanner in Python. This will help you learn the basics of penetration testing — an important component of good information security.

» Machine Learning with Python

In the Machine Learning with Python Certification, you’ll use the TensorFlow framework to build several neural networks and explore more advanced techniques like natural language processing and reinforcement learning. You’ll also dive into neural networks, and learn the principles behind how deep, recurrent, and convolutional neural networks work.

» Coding Interview Prep

This contains hundreds of coding challenges that test your knowledge of algorithms, data structures, and mathematics. It also has a number of take-home projects you can use to strengthen your skills, or add to your portfolio.

» Free Front-End Development Bootcamp

Get access to everything you need to get started developing websites. Learn HTML, CSS and JavaScript through project-based learning.

» Digital Logic, Computer Organization, and Design (ArsDigita University)

Includes the basics of digital logical design, computer organization and architecture including assembly language, processor design, memory hierarchies and pipelining. Students examine the detailed construction of a very simple computer. Course videos are here.

» Object-oriented Programming

The concepts of the Object-oriented paradigm using Java. The basic principles of software engineering are emphasized. We study how to design and think in an object oriented fashion. As a final project, students work in groups to develop a Gnutella distributed music-sharing client. Course videos are here.

» Algorithm Design and Analysis

The design of algorithms is studied, according to methodology and application. Methodologies include: divide and conquer, dynamic programming, and greedy strategies. Applications involve: sorting, ordering and searching, graph algorithms, geometric algorithms, mathematical (number theory, algebra and linear algebra) algorithms, and string matching algorithms. Course videos are here.

» Distributed Systems

Topics on the engineering of computer software and hardware systems: techniques for controlling complexity, system infrastructure, networks and distributed systems, atomicity and coordination of parallel activities, recovery and reliability, privacy of information, impact of computer systems on society. Course videos are here.

» Graphical Display of Information, and Design of Dynamic Database-Driven Web Sites

Teaches basics of designing a dynamic web site with a database back end, including scripting languages, cookies, SQL, and HTML with the goal of building such a site as the main (group) project Emphasizes computer-human interface and the graphical display of information. Crucial to the project is the identification of a client with whom the group must work with throughout the month, designing specifications, implementing them, reviewing and evaluating, and testing. Course videos are here.

» Artificial Intelligence

An quick overview of AI from both the technical and the philosophical points of view. Topics discussed include search, A*, Knowledge Representation, Neural Nets. Course videos are here.

» Relational Database Management Systems

A more formal approach to Relational Database Management Systems, compared the way they were covered during Web Applications. Database systems are discussed from the physical layer of B-trees and file servers to the abstract layer of relational design. Also includes alternative and generic approaches to database design and database management system including relational, object-relational, and object-oriented systems, SQL standards, algebraic query languages, integrity constraints, triggers, functional dependencies, and normal forms. Other topics include tuning database transactions, security from the application perspective, and data warehousing. Course videos are here.

» Introduction to Programming Using Java

This course book is directed mainly towards beginning programmers, and it is also useful for experienced programmers who want to brush up on their Java programming and software engineering skills.

» Introduction to Programming in Java

This course teaches software engineering and programming in Java. It will give you an understanding of how to produce and write high quality applications that accomplish real world solutions while learning Java using utility libraries that help you become a more efficient programmer. Course videos are here.

» Introduction to Algorithms

This course is an introduction to mathematical modeling of computational problems, as well as common algorithms, algorithmic paradigms, and data structures used to solve these problems. It emphasizes the relationship between algorithms and programming and introduces basic performance measures and analysis techniques for these problems.

» CS50’s Introduction to Computer Science from Harvard University

An introduction to the intellectual enterprises of computer science and the art of programming.

» Scripting and Programming Foundations

This course is an introduction to programming theory, covering basic elements such as variables, data types, flow control, and design concepts. The course is language-agnostic in nature, ending in a survey of languages and introducing the distinction between interpreted and compiled languages.

» Introduction to Java Programming: Starting to code in Java

Learn to program with Java in an easy and interactive way.

» Object Oriented Implementation Using C++ from IBM

Build a thorough understanding of Object Oriented concepts Using C++ with auto evaluated hands-on labs. More free C++ courses from include: Fundamentals of C++, C++ Programming: Basic Skills, and Data Structures & Algorithms Using C++.

» How to Code: Simple Data

Learn the secret to writing well-tested and easy-to-improve programs, that will set you up to master any programming language. From the University of British Columbia.

» Introduction to Object-Oriented Programming with Java I

Learn the fundamentals of object-oriented programming in Java, as well as best practices of modern software development.

» Data Structures and Advanced Programming

Learn programming principals and methods via these course webcasts, which teach and explain the following topics on how to use and code in Java : fundamental dynamic data structures, including linear lists, queues, trees, and other linked structures, arrays strings, abstract data types, hash tables, and storage management. Also taught are software engineering principles and algorithms for sorting and searching.

» Linux Basics: The Command Line Interface

Learn the Linux Command Line interface and become a skilled user of this powerful operating system.

» C Programming: Using Linux Tools and Libraries

Learn how to use professional tools and libraries to write and build C programs within the Linux operating system. Receive instant feedback on your code right within your browser.

» Programming Fundamentals – A Modular Structured Approach using C++

This course discusses and covers what modular programming is all about, and reviews a C++ coding example that demonstrates control and specific task functions. You’ll also learn about the layout of C++ programs and how they are structured.

» Object Oriented Programming in C++

Learn C++ development using object-oriented programming. Apply your procedural design and programming knowledge to learn object-oriented software engineering concepts and techniques. You will learn how to use and apply the following object-oriented programming principles: abstraction, inheritance and polymorphism, decomposition, and component re-use, in the context of the C++ programming language.

» C Memory Management and C++ Object-Oriented Programming

Begin coding simple C programs, and then dive into how C memory manipulation works, and learn how to code using basic and more advanced C++ classes while using the C++ Standard Template Libraries. This course also will provide you with several technical interview tips. Also see MIT’s course. Introduction To C And C++.

» Parallel Programming for Multicore Machines Using OpenMP and MPI

This course gets you started with learning how to program with shared and distributed memory, and teaches you how to code using openMP and MPI. I will give you some great hands-on experience with parallel computing, focusing on numerical-type applications.

» Analyze How Your Website Visitors Eyes Navigate Through Your Pages

Did you ever hope there was a method to fine-tune or evaluate the performance of your website based on the real experiences of all your website visitors? Read about some concerns you should be addressing.

Free Courses from

Note: Click the “Free” checkbox on the left filter pane to narrow the results to only show free courses.