In this article, we are going to create an entire Computer Science curriculum using only YouTube videos. The Computer Science curriculum is going to cover every skill essential for a Computer Science Engineer that has expertise in Artificial Intelligence and its subfields, like: Machine Learning, Deep Learning, Computer Vision, NLP, etc.

The curriculum is going to be organized in 40 courses in total, further organized in 4 academic years, each containing 2 semesters.

We are going to try to list a few videos per course as we can, so we can keep the list short.

Our goal here is to capture the whole university experience in perspective of the organization of the courses and deliver you the whole curriculum for FREE, so you can gain significant knowledge.

We know that this is not the same as you’ll get at university, but the videos are of high quality, and most of them helped us, during our time at university.

We hope you will like it, and it will be of use to you.

As of today, we’ve seen that most of the visitors on our website, like the articles where we talk about free courses, curriculums, books, etc. Some of our most popular articles in that area are:

## Year 1: Semester 1

1. ### Structured Programming (Programming in C)

This course will introduce you to programming. It will help you write your first code, run your first application, and see what programming is about. You will start with printing messages on the screen, simple arithmetic operations, if-else statements, loops, data structures (arrays, matrices), memory addresses, pointers, reading and writing files, etc. You will build simple applications that will allow you to understand the material even better. The best two videos that we recommend for this course are:

1. ### Discrete Mathematics part 1

This course will introduce you to declarative statements, sets, and operations with sets, laws, logic, quantifiers, functions, proofs, sequences, and summation. For this course, and it’s a second part which we’ve put in Year 2, we are going to use the same playlist of 60 YouTube videos, but we are going to split it, 34 videos for part 1 (1-34) and 26 videos for the part 2 (35-60).

1. ### Calculus part 1

This course will introduce you to limits, intervals, differentiability, continuity, derivatives, antiderivatives, rules, trigonometric functions, inverse trigonometric functions, optimizations, and sums. It will be a huge help to you, once you dive into the later semesters of your studies and will help you understand most of the mathematics behind Machine Learning, Deep Learning, etc. Here we will suggest you take look at this list of 86 videos. Yes, it looks long, but the videos are quite short and well explained.

1. ### Introduction to Computer Science and Programming

This course will introduce you to computer science and programming from a theoretical view. It is very important for every beginner to have a visual representation in its mind about most of the concepts of computer science and programming. That way, it can understand their complexity and unlock its imagination and creativity and use the full power of computer science and programming while respecting their laws. Here we recommend you this video:

1. ### Intro to Python Programming

This course is an introduction to Python programming. Easily one of the most popular programming languages in the world, Python is widely used by many people who work in some sort of IT-related field. It is easy to understand, use has tons of libraries and it has huge community support. It is used in Web Development (Django, Flask), Machine Learning (Scikit-learn, NumPy, pandas, TensorFlow), etc. You are going to use Python a lot, so for this course, we are going to keep it simple by recommending only one video:

## Semester 2

1. ### Calculus part 2

Here is the second part of the Calculus. Here you are going to learn about integrals, series, tests, polar coordinates, polar graphs, etc. For this course, we are going to recommend you this playlist of 64 videos. It looks like a lot, but the videos are well explained and are quite short, so you feel like you’ve covered a lot of material.

1. ### Discrete Mathematics part 2

This course will introduce you to matrices, graphs, searching algorithms, sorting algorithms, algorithms complexity, introduction to probability, combinatorics, variations, and permutations.

This is the second part of the Discrete Mathematics, and as we’ve mentioned in the first part, we are going to use the same playlist of 60 videos, but here we are going to watch starting from the 35th up to the 60th video.

1. ### Introduction to C++ and Object-Oriented Programming

This course will introduce me to C++, starting from the basics, up to Object-Oriented Programming (OOP). OOP is one of the main programming paradigms, and probably the most used.

Most of the applications that you have on your mobile phone or access from the browser are programmed following this paradigm.

It is the pillar of every program you will write in the future, so you will want to give this course more time. For this course, we will recommend you a video playlist of 29 videos.

However, we recommend you to watch them up to the 13th because the rest of them are beyond OOP and if you are new to this, might be complex and difficult to understand.

1. ### Computer System Architecture

In this course, you are going to be introduced to set design, processor micro-architecture and pipelining, cache and virtual memory organizations, protection and sharing, I/O and interrupts, in-order and out-of-order superscalar architectures, VLIW machines, vector supercomputers, multithreaded architectures, symmetric multiprocessors, and parallel computers. For this course, we will recommend you the following playlist coming from MIT. The list has 39 videos, that are quite long

1. ### Introduction to Web Design (HTML + CSS)

This course is your introduction to what one stage of web development (the front-end) looks like. You are going to get familiar with HTML, which is the markup language that makes the elements we see on a webpage, and with CSS, which is a stylesheet that gives life to those elements. Here we recommend two videos, one for HTML and one for CSS.

## Year 2: Semester 3

1. ### Probability

This course is one of the most important courses for every Computer Science Engineer who wants to be an expert in Machine Learning. The course consists of intro to probability, combinatorics, variations, permutations, distributions, etc.

The playlist that we’ve recommended is from Khan’s Academy. It contains 41 videos that are 10 minutes long at max, and are very interesting, and contain tons of practical examples.

1. ### Statistics

This is the other most important courses if you want to do Machine Learning in the future. The course will get you familiar with the main statistical features, hypothesis testing, levels of measurements, etc. The playlist that we recommend contains 28 videos, which are quite long.

1. ### Algorithms and Data Structures

This is the most important course for every Computer Science Engineer. Here you will get familiar with tons of useful stuff, that you are going to use throughout your carrier.

Here you will get familiar with algorithms complexity measurements, data structures like lists, linked lists, arrays, hash tables, trees, graphs, and algorithms that will help you manipulate these structures.

For this course we will recommend you two playlists one theoretical, one using Java, and one video that pretty much combines these playlists, so you are choosing what you think suits you the best.

1. ### Intro to Client-side development

This course is an intro to client-side (front-end) development using the language of the web, known as JavaScript. It is a continuation of the Web Desing course, here you are going to power the website skeleton you’ve built with HTML and organized with CSS. Today JavaScript is used in the backend as well, but we are going to talk about that later. We recommend the following video for this course:

1. ### Linear Algebra

In this course, you are going to get familiar with vectors, matrices, and manipulation with matrices, linear independence, least-square problems, etc. It is a very interesting and engaging course, that will be very useful later, for the Machine Learning and Deep Learning Courses. For this course, we have 46 videos playlist. The videos are 25 minutes long at the most. Most of them are around 10 minutes mark.

## Semester 4

1. ### Operating Systems

This course is very important. It is about the infrastructure we build our applications, run our projects, and optimize our solutions. In this course you will get familiar with: Introduction to OS, Operating System Structures, Process Management, Processes, Threads, CPU Scheduling, Process Synchronization, Deadlocks, Memory Management, Main Memory, Virtual Memory, Storage Management, File System Interface, File-System Implementation, Mass-Storage Structure, I/O Systems, Protection and Security, Distributed Systems, Distributed System Structures, Distributed File Systems, Distributed Coordination, Special Purpose Systems. For this course, we have two playlists. One is from UC Berkeley.

1. ### Artificial Intelligence

In the intro part of this article, we said that we are going to create a curriculum, using only YouTube videos, to help you to gain Computer Science knowledge and expertise in Artificial Intelligence. In this course you are going to get familiar with the basics of AI, types of learning, simple AI algorithms, and AI subfields. For this course we recommend you the following:

1. ### Software Engineering

In this course, you will get familiar with the concepts of building applications and projects, types and standards of programming, ways of organizing teams, planning resources, creating documentations, and running tests. It is very useful, especially as you progress in your software engineering carrier, you are going to use tons of the stuff you are going to learn here. We recommend two playlists for this course, one theoretical and one learning UML, which is a language that is used in software engineering.

This course is a continuation of the Algorithms and Data Structures course from the 3-rd Semester. Here you are going to learn the following topics: the word RAM model, data structures, amortization, online algorithms, linear programming, semidefinite programming, approximation algorithms, hashing, randomized algorithms, fast exponential time algorithms, graph algorithms, and computational geometry. We recommend you the list of 25 videos by Harvard University.

1. ### Dynamic Programming

In this course, you are going to learn algorithmic techniques for solving an optimization problem by breaking it down into simpler subproblems and utilizing the fact that the optimal solution to the overall problem depends upon the optimal solution to its subproblems.

## Year 3: Semester 5

1. ### Databases (SQL)

This is a very important course for every CS engineer. Here you are going to learn about what is called backend for every application. You are going to get familiar with databases, relations, naming conventions, lookup tables, normal forms, etc.

We are going to reference a video where you are going to learn SQL. This language is used in the relational databases, the ones you are going to learn here.

1. ### Web Application Development

For every CS engineer is important to know at least one web application development framework. As a framework of our choice for this course is Django. Django is web app framework for Python. It is very easy to start, understand and use. It is very good for full-stack development and is popular among startups. Some of the biggest companies that use this framework are Instagram and YouTube. Here we will recommend you one playlist of 17 videos, and one 4 hours video.

1. ### Machine Learning

As we’ve said in the intro part, we are going to base this curriculum around Artificial Intelligence and Machine Learning. That being said here is the Machine Learning course.

In this course you are going to get familiar with Linear Regression, Naïve Bayes, SVM, Kernels, Neural Networks, Logistic Regression, Training, and Testing datasets, etc. Basically, everything that makes the base of Machine Learning.

As a must-watch video for this course we recommend the Machine Learning playlist by Stanford University. The course is by Andrew Ng. The playlist is 20 videos that are quite long but is one of the best out there.

As a practical guide for this course, we recommend you the famous Practical Machine Learning Tutorial with Python by Sentdex.

The list is 72 videos, that are quite short and very interesting. We know that this looks quite long, but this course is very important, and the time you are going to spend here will pay off later.

1. ### Client-side development with React

We’ve already had courses that will get us familiar with the client-side of front-end development. The first course was with HTML and CSS, then the second was JavaScript and the third is going to be with React. This course will be the culmination of our front-end development courses.

React is a JS library (like Vue and Angular, Angular is a framework), that helps you with the front-end development. It handles stuff like routing, creating reusable components (which is the core of React), fetching data from the backend, etc.

It is very useful and very popular since it is lightweight and highly customizable. We recommend that every engineer should know at least one front-end library.

1. ### Distributed Computing & Systems

In this course, you are going to get familiar with Distributed Computing and Systems. Wikipedia: “Distributed computing is a field of computer science that studies distributed systems. A distributed system is a system whose components are located on different networked computers, which communicate and coordinate their actions by passing messages to one another.

The components interact with one another in order to achieve a common goal. Three significant characteristics of distributed systems are: concurrency of components, lack of a global clock, and independent failure of components.

Examples of distributed systems vary from SOA-based systems to massively multiplayer online games to peer-to-peer applications.” For this course, we recommend a video playlist from MIT, that is 21 videos, and the videos are quite long, and useful.

## Semester 6

1. ### Non-relational Databases

This course is another version of the Databases course from the previous semester. The Databases course was based on relational databases, since those are easier to understand, and quite similar to the OOP concept and are the most used and most popular solutions for most of the products on the market.

But not most of those solutions, have the same complexity or data formats. To satisfy those needs, we have different types of non-relational databases, like: Document-based (Mongo, Firebase), Text Search Engines (Elasticsearch), Multimodal (Fauna), etc.

In this course, you are going to get familiar with Document-based databases, or more precisely with Mongo.

1. ### Introduction to Deep Learning

This course is your introduction to Deep Learning. Wikipedia: “Deep learning (also known as deep structured learning) is part of a broader family of machine learning methods based on artificial neural networks with representation learning. Learning can be supervised, semi-supervised, or unsupervised.

Deep-learning architectures such as deep neural networks, deep belief networks, recurrent neural networks, and convolutional neural networks have been applied to fields including computer vision, machine vision, speech recognition, natural language processing, audio recognition, social network filtering, machine translation, bioinformatics, drug design, medical image analysis, material inspection, and board game programs, where they have produced results comparable to and in some cases surpassing human expert performance.”

For this course we recommend you the following playlist by MIT, consisting of 31 videos, that are 45 minutes long at maximum. It is very interesting, full of great information and knowledge.

1. ### Practical Implementation of Neural Networks

This course will be an introduction to the TensorFlow framework, that allows you easy work with neural networks. You will learn how to use and implement neural networks in different areas like Computer Vision, NLP, Reinforcement Learning, etc.

1. ### Mobile applications – IOS development

In this course, you are going to get familiar with IOS development with Swift. This course is important because we have another course that follows in the future semesters, which is Developing Intelligent mobile apps with Swift and TensorFlow.

We want to emphasize that since mobile apps are a huge part of the market and grow each day, meaning we are going to need an intelligent solution for that part of the market as well.

1. ### Mobile applications – Android development

For those of you who do not like Apple, or simply do not own a Mac, here is the course for Android mobile applications development. The importance of Android is the same as IOS, with the difference that Android covers a bigger market in terms of devices sold since are quite cheaper than the iPhones and iPads and are more affordable.

## Year 4: Semester 7

1. ### Signals and Systems (Digital Signal Processing)

The analysis of signals and systems forms a key part of many modern technologies, including communications and feedback & control. These lectures give a conceptual and mathematical introduction to the topic, covering both analog and digital systems.

For this course, we recommend you the playlist from the MIT OpenCourseWare program, which consists of 25 videos.

1. ### Natural Language Understanding

This course is an intro to for future more advanced courses where you are going to learn about Natural Language Processing with Deep Learning. Wikipedia: “Natural-language understanding (NLU) or natural-language interpretation (NLI) is a subtopic of natural-language processing in artificial intelligence that deals with machine reading comprehension.

Natural-language understanding is considered an AI-hard problem. There is considerable commercial interest in the field because of its application to automated reasoning, machine translation, question answering, news-gathering, text categorization, voice-activation, archiving, and large-scale content analysis.” For this course, we recommend you the NLU playlist from Stanford, which is 15 videos long.

1. ### Intelligent Mobile Applications

In this course, you are going to get familiar with developing mobile applications, that use Artificial Intelligence. We are going to develop Android and IOS apps using their native platforms and TensorFlow.

1. ### Computer Vision

Wikipedia: “Computer vision is an interdisciplinary scientific field that deals with how computers can gain a high-level understanding from digital images or videos. From the perspective of engineering, it seeks to understand and automate tasks that the human visual system can do.” For this course, we recommend a video from MIT with a theoretical explanation about Computer Vision and OpenCV with Python tutorial, as it is the most used library for Computer Vision.

1. ### Robotics

MIT: “Robots today move far too conservatively, using control systems that attempt to maintain full control authority at all times. Humans and animals move much more aggressively by routinely executing motions that involve a loss of instantaneous control authority. Controlling nonlinear systems without complete control authority requires methods that can reason about and exploit the natural dynamics of our machines.

This course discusses nonlinear dynamics and control of underactuated mechanical systems, with an emphasis on machine learning methods. Topics include nonlinear dynamics of passive robots (walkers, swimmers, flyers), motion planning, partial feedback linearization, energy-shaping control, analytical optimal control, reinforcement learning/approximate optimal control, and the influence of mechanical design on control.

Discussions include examples from biology and applications to legged locomotion, compliant manipulation, underwater robots, and flying machines.” For this course, we recommend you the MIT playlist that has 23 videos.

## Semester 8

1. ### Natural Language Processing with Deep Learning

This course is a continuation of the Natural Language Understanding course from the previous semester. Here you are going to use some of the most popular algorithms in NLP powered by Neural Networks. For this course, we recommend you this list from Stanford that has 20 videos.

1. ### Reinforcement Learning

In this course, you are going to get familiar with a specific subfield of Machine Learning, known as Reinforcement Learning. Wikipedia: “Reinforcement learning (RL) is an area of machine learning concerned with how software agents ought to take actions in an environment in order to maximize the notion of cumulative reward.

Reinforcement learning is one of three basic machine learning paradigms, alongside supervised learning and unsupervised learning.” It is very popular in every other subfield of ML. One of the most notable users of RL techniques is OpenAI, in their OpenAI Five algorithm.

We recommend you two video playlists, one from Stanford that is 15 videos long and one from Sentdex 6 videos long, where he explains a practical approach to RL with Python.

1. ### Introduction to Bioinformatics

Wikipedia: “Bioinformatics is an interdisciplinary field that develops methods and software tools for understanding biological data, in particular when the data sets are large and complex. As an interdisciplinary field of science, bioinformatics combines biology, computer science, information engineering, mathematics, and statistics to analyze and interpret biological data.

Bioinformatics has been used for in silico analyses of biological queries using mathematical and statistical techniques.” This course is an introduction to computational biology emphasizing the fundamentals of nucleic acid and protein sequence and structural analysis; it also includes an introduction to the analysis of complex biological systems. We recommend the following playlist:

1. ### Self-Driving Cars

Wikipedia: “A self-driving car, also known as an autonomous vehicle (AV), driverless car, or robocar is a vehicle that is capable of sensing its environment and moving safely with little or no human input.

Self-driving cars combine a variety of sensors to perceive their surroundings, such as radar, lidar, sonar, GPS, odometry, and inertial measurement units.

Advanced control systems interpret sensory information to identify appropriate navigation paths, as well as obstacles and relevant signage.” This playlist of 10 videos is by MIT is an introduction to self-driving cars, and it is organized by professor Lex Fridman.

1. ### Machine Learning for Healthcare

This course is your introduction to the implementation of Machine Learning in the Healthcare industry. Introduces students to machine learning in healthcare, the nature of clinical data, and the use of machine learning for risk stratification, disease progression modeling, precision medicine, diagnosis, subtype discovery, and improving clinical workflows. For this course, we recommend you the following MIT playlist of 25 videos.

## Conclusion

So, here are our 40 courses, 4 academic years Computer Science curriculum in 1079 YouTube videos. Now, what’s the verdict? Well, it can’t replace the traditional curriculum from the universities, but it can go along with them as your assistance and look from another perspective.

The best thing is that is FREE, easy to access by everyone, and opens many other resources in form of other recommended videos or references in the descriptions.

If you are interested in other types of free courses check out our previous articles:

Like with every post we do, we encourage you to continue learning, trying, and creating.