Linear Algebra

Topics include Vector spaces, Matrix vector operations, Rank of a matrix, Norms, Eigenvectors and values and a bit of Matrix calculus too.

Probability & Statistics

Topics include Random variables, expectation, Probability distributions and so on.


Topics include Limits, Derivatives, Implicit differentiation, Finding extrema, MVT, Newton's method and Integral calc stuff. The advanced materials are about Matrix calculus - Gradients, Directional derivatives etc.


  • Convex Optimization (opens in a new tab): his course concentrates on recognizing and solving convex optimization problems that arise in applications. The syllabus includes: convex sets, functions, and optimization problems; basics of convex analysis; least-squares, linear and quadratic programs, semidefinite programming, minimax, extremal volume, and other problems; optimality conditions, duality theory, theorems of alternative, and applications; interior-point methods; applications to signal processing, statistics and machine learning, control and mechanical engineering, digital and analog circuit design, and finance.

Mathematics for Machine Learning

  • Mathematics of Machine Learning (opens in a new tab) : Broadly speaking, Machine Learning refers to the automated identification of patterns in data. As such it has been a fertile ground for new statistical and algorithmic developments. The purpose of this course is to provide a mathematically rigorous introduction to these developments with emphasis on methods and their analysis.

Aritificial Intelligence

Natural Language Processing

Machine Learning

  • Machine Learning by Andrew Ng (opens in a new tab): This course provides a broad introduction to machine learning, datamining, and statistical pattern recognition. Topics include: (i) Supervised learning (parametric/non-parametric algorithms, support vector machines, kernels, neural networks). (ii) Unsupervised learning (clustering, dimensionality reduction, recommender systems, deep learning). (iii) Best practices in machine learning (bias/variance theory; innovation process in machine learning and AI). The course will also draw from numerous case studies and applications, so that you'll also learn how to apply learning algorithms to building smart robots (perception, control), text understanding (web search, anti-spam), computer vision, medical informatics, audio, database mining, and other areas.
  • Machine Learning - MIT (opens in a new tab): an introductory course on machine learning which gives an overview of many concepts, techniques, and algorithms in machine learning, beginning with topics such as classification and linear regression and ending up with more recent topics such as boosting, support vector machines, hidden Markov models, and Bayesian networks.
  • Machine Learning for Healthcare (opens in a new tab): This course introduces students to machine learning in healthcare, including 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.
  • CS 329S: Machine Learning Systems Design (opens in a new tab): This course aims to provide an iterative framework for designing real-world machine learning systems. The goal of this framework is to build a system that is deployable, reliable, and scalable.
  • Applied Machine Learning (Cornell Tech CS 5787, Fall 2020) (opens in a new tab): Lecture videos and materials from the Applied Machine Learning course at Cornell Tech, taught in Fall 2020.
  • Machine Learning with Kernel Methods, Spring 2021 | Julien Mairal and Jean-Philippe Vert Google Brian & INRIA (opens in a new tab): The goal of this course is to present the mathematical foundations of kernel methods, as well as the main approaches that have emerged so far in kernel design.
  • Machine Learning with Graphs (opens in a new tab) Complex data can be represented as a graph of relationships between objects. Such networks are a fundamental tool for modeling social, technological, and biological systems. This course focuses on the computational, algorithmic, and modeling challenges specific to the analysis of massive graphs. By means of studying the underlying graph structure and its features, students are introduced to machine learning techniques and data mining tools apt to reveal insights on a variety of networks.

Deep Learning

Computer Vision

Computer Science

  • Introduction to Computer Science and Programming in Python (opens in a new tab): Introduction to Computer Science and Programming in Python 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. The class uses the Python 3.5 programming language.
  • Introduction to Algorithms (opens in a new tab): This course provides an introduction to mathematical modeling of computational problems. It covers the common algorithms, algorithmic paradigms, and data structures used to solve these problems. The course emphasizes the relationship between algorithms and programming, and introduces basic performance measures and analysis techniques for these problems.
  • Mathematics for Computer Science (opens in a new tab): An interactive introduction to discrete mathematics oriented toward computer science and engineering.


  • Intro to Machine Learning with PyTorch (opens in a new tab) - Learn foundational machine learning techniques -- from data manipulation to unsupervised and supervised algorithms.
  • Deep Learning with PyTorch - DataCamp - You will use PyTorch to first learn about the basic concepts of neural networks before building your first neural network to predict digits from an MNIST dataset. You you will learn about convolutional neural networks and how to use CNN to build more powerful models that give more accurate results.
  • Deep Neural Networks with PyTorch - Coursera (opens in a new tab) - The course will teach you how to develop deep learning models using Pytorch. The course will start with Pytorch's tensors and Automatic differentiation package. Then each section will cover different models starting off with fundamentals such as Linear Regression, and logistic/softmax regression. Followed by Feedforward deep neural networks, the role of different activation functions, normalization and dropout layers. Then Convolutional Neural Networks and Transfer learning will be covered. Finally, several other Deep learning methods will be covered.
  • PyTorch: Deep Learning and Artificial Intelligence– Udemy (opens in a new tab) - the best beginner-level course and starts with machine learning basics and then moves to the deep learning concepts such as Deep Neural Networks, Convolutional Neural Networks (image processing), and Recurrent Neural Networks.
  • PyTorch for Deep Learning with Python– Udemy (opens in a new tab) - Learn how to create state of the art neural networks for deep learning with Facebook's PyTorch Deep Learning library!
  • PyTorch Basics for Machine Learning-edX (opens in a new tab) - This course is the first part in a two part course and will teach you the fundamentals of PyTorch. In this course you will implement classic machine learning algorithms, focusing on how PyTorch creates and optimizes models. You will quickly iterate through different aspects of PyTorch giving you strong foundations and all the prerequisites you need before you build deep learning models.
  • Deep Learning with Python and PyTorch (opens in a new tab) - This course is the second part of a two-part course on how to develop Deep Learning models using Pytorch.
  • Intro to Deep Learning with PyTorch (opens in a new tab) - In this course, you’ll learn the basics of deep learning, and build your own deep neural networks using PyTorch. You’ll get practical experience with PyTorch through coding exercises and projects implementing state-of-the-art AI applications such as style transfer and text generation.
  • PyTorch Tutorials– (opens in a new tab) - The official PyTorch website that provides a variety of PyTorch tutorials to clear the PyTorch basics such as Writing Custom Datasets, Transfer Learning for Computer Vision Tutorial, and Deep Learning, etc.

Data Science

  • Introduction to Computational Thinking and Data Science (opens in a new tab): The continuation of "Introduction to Computer Science and Programming in Python" and 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.

Software Engineering & Data Engineering

  • CS839 Modern Data Management and Machine Learning Systems (opens in a new tab) Modern Data Analytics and Machine learning (ML) are enjoying rapidly increasing adoption. However, designing and implementing the systems that support modern data analytics and machine learning in real-world deployments presents a significant challenge, in large part due to the radically different development and deployment profile of modern data analysis methods, and the range of practical concerns that come with broader adoption.