Skip to content

Personal reviews of popular MOOCs (Massive Open Online Courses) and study plans

Notifications You must be signed in to change notification settings

changh95/Study-Resources-Review

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 

Repository files navigation

Study Resource Review


Are you interested in Robotics, Computer Vision and Deep Learning?

There are lots of freely available resources out there (which is good), but it is often difficult to know exactly what resources will benefit you the most, based on your knowledge, skills and available time.

So here's a summary / reviews of some of the most popular MOOCs and books. Hope this helps!


For each resource, a brief summary, pros/cons, and my personal comments are listed.


Table of Contents



Courses and MOOCs taken

Programming


  1. MATLAB Fundamentals (Link) ⭐⭐⭐⭐⭐

Best introduction to MATLAB, as well as into programming in general. Personally highly recommended.

Expand

Language Platform Author
MATLAB MATLAB MathsWorks

Pros:

  • You'll understand the basics of MATLAB + programming thoroughly. This is from handling variables, making tables, visualising data with simple graphs and charts.
  • Short course time (2~3 days)
  • No pre-requisites required

Cons:

  • Contents can get quite boring.
  • You need an academic license to take this course freely.

My comments:

  • It's boring so I took 1-2 weeks to complete the course.
  • After this course, I soon integrated OpenCV with MATLAB and then carried out all experiments needed for my master's thesis.


  1. Shervine Amidi's MATLAB tutorials (Link) ⭐⭐⭐

You have 1 hour to learn MATLAB, this is the course (You won't learn it thoroughly though) If you have any prior programming experience and wish to learn MATLAB, also, take this course. Also, this course is free!

Expand

Language Platform Author
MATLAB Github Shervine Amidi (Stanford)

Pros:

  • Only covers important topics - so it doesn't waste your time.
  • Takes 1-2 hours to finish the entire course.
  • No pre-requisites required
  • Freely available!

Cons:

  • Only covers important topics - if you are a beginner, you won't be able to code straight after this course.
  • You need an academic license to take this course freely.

My comments:

  • I say if you need to refresh yourself a MATLAB coding knowledge, this is perfect for you.


  1. CMU 15-112 "Fundamentals of Programming and Computer Science" (Fall '18)(Link) ⭐⭐⭐⭐

Highly recommended to learn Python language, or general programming!

Expand

Language Platform Author
Python Carnegie Mellon University

Pros:

  • Freely available! (Although the video capture of the lecture is not available)
  • Tutorials and homeworks are there to boost your skills.
  • No pre-requisites required

Cons:

  • Video capture of the lecture is not available.
  • If you follow the course, you'll be guided to use Pyzo for the IDE. There are better IDEs out there (Personal opinion).
  • Lack of interactive tutorial.

My comments:

  • I say if you are an absolute beginner in programming, even if you are trying to learn Python, go take the MATLAB tutorial by MathsWorks. This is because MATLAB tutorial teaches the basics of programming more thoroughly than this tutorial (personal opinion). It will be much easier and faster going through this Python lecture if you understand the basics of programming, so it will be benefical in overall time efficiency.


  1. Python/NumPy Crash Course (in PyTorch for Deep Learning and Computer Vision Course)(Link) ⭐⭐⭐⭐

You have 1 hour to learn Python, and you already know a bit about programming. This is the course! (Link for a discounted price!)

Expand

Language Platform Author
Python Udemy Rayan Slim, Jad Slim, Amer Sharaf, Sarmad Tanveer

Pros:

  • Very good explanations!
  • Fast paced
  • You can actually see the code running in Jupyter Notebook

Cons:

  • You need to pay (but personally I think it is worth the price with a discount.

My comments:

  • I originally took this course hoping to see a fast-paced PyTorch course, but I stayed for Python / numpy crash course. Easily the fastest, while containing the essential information to start working on PyTorch. Pre-requisites include basic understanding in programming like variables, for-loops, while-loops etc - in which people generally start programming by learning Python first, so I don't think this is applicable for many people out there (maybe for engineers who started programming with MATLAB, or computer scientists with Java/Javascript?)


  1. Briana's Bash Tutorial: How to Use the Command Line in Linux, Windows, and Mac (Link) ⭐⭐⭐⭐⭐

20 minutes long tutorail into bash command line. If you have just downloaded Ubuntu (or any linux system), and you need a very short-guide in how to work on the command line. This is the course!

Expand

Language Platform Author
Bash Youtube Briana (freecodingcamp.org)

Pros:

  • Essential information only
  • Only 20~ minutes long
  • Cheatsheet provided!

Cons:

  • No actual advanced stuffs included.

My comments:

  • I myself is actually pretty new to using command line in ubuntu. I knew how to navigate, open, install, uninstall stuffs... but I didn't know how to edit things within the command line using Vim. This tutorial may be useful if you consider yourself as a 'definitely-not-an-expert in command lines'.


  1. C Programming Tutorial for Beginners (Link) ⭐⭐⭐

3 hours and 46 minutes long tutorial (I know - it's taking foreverrrr), but a very welcoming guide for C language.

Expand

Language Platform Author
C Youtube FreeCodingCamp

Pros:

  • Well-structured contents
  • Very friendly explanation

Cons:

  • No real-life examples
  • 3 hours and 46 minutes in a single video? 100% I won't get bored ;)
  • A little too basic content, and not-so-fast-paced.

My comments:

  • The 3 hours and 46 minutes runtime may scare you, and yes, I felt the same. The way I took this course is by just watching the video before sleep, sometimes just for 5 minutes, sometimes for an hour. I didn't really like sit down and dig through it, but that is also one way to do it. The impression of this course to me is that it can be better packed - the content structure is very good, but it is at the most basic level and does not empower the student to carry out an individual project with confidence. This may be the perfect course if you just wanna learn how to read C code written by someone, but definitely not for someone who wishes to dig into C language.
  • By the way, FreeCodeCamp.Org does similar videos for other languages, like C++, C#, php, Java, Javascript, React, Node.js etc. Check out their youtube channel (Link),


  1. C++ Programming Tutorial for Beginners (Link) ⭐⭐⭐⭐

Currently taking!

Expand

Language Platform Author
C++ Youtube FreeCodingCamp

Pros:

Cons:

My comments:

  • By the way, FreeCodeCamp.Org does similar videos for other languages, like C++, C#, php, Java, Javascript, React, Node.js etc. Check out their youtube channel (Link),


  1. "Introduction to C++" (Intermediate/Advanced not yet taken) (Link) ⭐⭐

I don't know if C++ is just hard, of just this lecture is hard to understand... but one thing is sure. This lecture is HARD.

Expand

Language Platform Author
C++ edX Microsoft

Pros:

  • Experts from Microsoft talks about C++.

Cons:

  • Experts talk about C++ in their own language, without thoroughly explaining them to the audience.

My comments:

  • Tell me lots of cool-sounding C++ terminologies, and then DON'T explain it! That's what this course does exactly. I think the content is actually very useful, but only to those who can understand those terminologies. Many other audience seem to feel the same way as me - the audience forum is pretty much dead, especially after the 1st or the 2nd lecture. It's the only C++ course I took so far, so I cannot judge yet how good the content actually is... but definitely won't recommend it to someone who wishes to learn C++.



Machine Learning


  1. Introduction to PyTorch (Link) ⭐⭐⭐⭐⭐

The EASIEST PyTorch + Deep learning course ever!

Expand

Content Platform Author
PyTorch Udacity Udacity & Facebook

Pros:

  • Easy explanation of difficult concepts.
  • Each video lecture being very short - easy to keep up!
  • Covers everything from understanding the basic concepts to actually building your own network architecture!

Cons:

  • You need to know how to do Python, Numpy and Pandas.

My comments:

  • I took this course as a part of PyTorch Facebook Scholarschip Challenge. This course focuses on maximising your activity in taking this course - via interactive questions, interactive programming questions, and detailed jupyter notebook that can be used as exercises or notes. I plan to make the notes for this course - Coming sooooon!


  1. CS231n - Convolutional Neural Networks for Visual Recognition (2017,Currently taking) (Link) ⭐⭐⭐⭐⭐

Currently taking! I will update as I take the course.

Expand

Content Platform Author
CNN Youtube Stanford

Pros:

Cons:

My comments:


Mathematics


  1. 3Blue1Brown - Essential Linear Algebra (Link) ⭐⭐⭐⭐⭐

A good resource to learn linear algebra quickly

Expand

Content Platform Author
Linear Algebra Youtube 3Blue1Brown

Pros:

  • Very easy explanation + great visualisation
  • Takes a relatively short time, compared to recorded university lectures or online MOOCs.
  • Free!

Cons:

  • No actual practice of mathematics - you will understand the concept throughout the video series, but you will not learn how to actually implement this in your work.

My comments:

  • My honest opinion is that this is not the best way to learn linear algebra, but is the best way to revisit linear algebra. If you need to learn linear algebra from scratch, then this video series will only be 2~3 stars.


  1. MIT 18.06 Linear Algebra (2005) (Link) ⭐⭐⭐⭐⭐

Currently taking the famous course by Prof Gilbert Strang! I'm half-way through the course - this course is very good!

Expand

Content Platform Author
Linear Algebra Youtube MIT

Pros:

Cons:

My comments:


Robotics and Computer Vision


  1. Robotics : Perception (Link) - currently taking ⭐⭐⭐⭐

Currently taking! A good introduction to multiview geometry. BUT, you need to know how to code in MATLAB.

Expand

Content Platform Author
Computer Vision Coursera University of Pennsylvenia

Pros:

Cons:

  • You need to know how to code in MATLAB. It's not hard, but who does serious computer vision in MATLAB?

My comments: Generally I am finding the course structure very well made! I am currently taking week 4 materials before anything since it is related to my work. The lecturer talks a bit too slow, and some of the mathematical notations are hard to follow for me (but this is subjective, as it depends on preferences on vector dimensions). If you find week 4 difficult to follow, especially on epipolar geometry, try looking at this (link)


  1. Computer Vision for Faces (Link) - currently taking ⭐⭐⭐⭐

Currently taking! Will update. It seems like there are lots of interesting contents, but it's expensive! (358.80 USD!)

Expand

Content Platform Author
Computer Vision Coursera University of Pennsylvenia

Pros:

Cons:

  • Expensive! It was 358.80 USD when I took the course.

My comments:


Books read

Machine Learning


  1. "Python for Data Analysis - Data Wrangling with Pandas, NumPy and IPython" by William McKinney (O'Reily Website) ⭐⭐⭐⭐

A good book to learn NumPy, Pandas, Jupyter Notebook (IPython), matplotlib. If you prefer books over online MOOCS, then I say this is the one to go for.

Expand

This book is essential for those who have just learned Python programming language, and is willing to learn data science in the future. A well-structured, clean data is key for a good data science practice, which this book provides a great introduction and practice samples using NumPy and Pandas libraries. This book also covers other libraries that helps in understanding the data and manipulating them, using Jupyter Notebook (IPython) and matplotlib for visualisation.


  1. "Deep Learning" by Ian Goodfellow, Yoshua Bengio and Aaron Courville (Website) ⭐⭐⭐⭐⭐

The level of maths in this book is controversially hard. If you don't have much maths background, then go study maths first. If you are okay with the maths, then this book is highly recommended.

Expand

Generally, there are two types of opinions towards this book. The first is that this book is very informative and useful for anyone who wishes to study deep learning properly. The second is that this book has been recommended too much that it is almost cliche. Personally I cannot agree with these two statements anymore, because they are both correct. This book provides a very good overview of essential mathematics behind deep learning techniques. The concepts of techniques are very well explained in words. However, a good understanding of mathematics is required to fully understand the contents. For someone like me who comes from a non-computer-science background, I needed another entry-level book to follow.


  1. "Pattern Recognition and Machine Learning" by Christopher M. Bishop (Currently reading) (pdf 2006) ⭐⭐⭐⭐

I'll say this book is only recommended for researchers in machine learning field. It is quite maths-heavy, as it is intended to be so. But with this book only, you can still cover most of maths needed for classical machine learning methods.

Expand

A very detailed explanation of the mathematics behind machine learning techniques. Unlike other popular deep learning books, this book does not focus on specific techniques or applications of deep learning, but rather, it attempts to cover as many machine learning techniques which is not restricted to deep learning. The pre-requisite knowledge is substantial, and a good focus is required to follow its content for a general student like me. Personally, I feel like a mathematics major should not find it too difficult to follow. Although I am only half-way through, I can tell for sure that this book is one of the most informative books out in the market.


  1. Chinese AI textbook for high school (Related News) ⭐⭐⭐⭐⭐

If you can get your hands on it + if you can read mandarin, then this is the best introduction for deep learning.

Expand

I doubt there is a translated version out there... but I was able to see its content with a help from a Chinese lab mate. This book covers the history of machine learning and deep learning techniques, of which the explanation is arguably better than other textbooks or review papers out there. The textbook is very well structured, while being visually clear and self-explanatory, and is able to describe the machine learning techniques with only high school mathematics (e.g. vectors). The textbook shines where it explores into different applications of deep learning, which it is very effective in insipiring high school students to study deep learning in a specific field (e.g. NLP, vision).


  1. "イラストで学ぶ ディープラーニング" ("그림과 수식으로 배우는 통통 딥러닝") by Yamashita Takayoshi (Original Japanese book, Korean book):star::star::star::star:

The contents are a bit outdated, but it can still serve as a not-too-bad introduction to deep learning. It is short - so it will save time if anyone here is after that.

Expand

The content of this book may be a bit old - it does not cover new methodologies like GAN that was introduced in 2015. The content of the book was very similar to other review papers out there. However, this book shines at where it needs to explain the mathematics - personally, the backpropagation section was very useful to me, as it explained the mathematical steps which can considerably long, but it explains very well with patience. The Korean translation version seems to over-translate some phrases, such as 'auto-encoder' into '자기부호화기', which in fact makes the understanding of the content harder.


  1. "딥러닝 첫걸음" & "신경망 첫걸음" ⭐⭐⭐

If you feel uncomfortable reading texts in English (or rather, you only find comfortable reading in Korean), then this book may be a good introduction to deep learning.

Expand

Easy introduction to deep learning and neural networks. Only recommended if the reader is not comfortable in reading text in English. Otherwise, I recommended other books or courses to save time.



Robotics and Computer Vision


  1. "Modern Robotics: Mechanics, Planning and Control" by Kevin M. Lynch and Frank C. Park (Pre-Print pdf, Amazon, Coursera) ⭐⭐⭐⭐⭐

If you ever get stuck in understanding advanced robotics concepts in academic research papers, or may need to lead yourself into a deeper understanding of fundamental concepts within robotics... here it is :)

Expand

I've only read this book on Kinematics section (Chapter 4-6), therefore remains in 'books to be read' section. What I like most about this book is that it uses a modern notations and representations of the mathematics required for it. This aspect of the book allows a easy and fast understanding of the subject - personally, I found it more intuitive and easier to understand than the textbook written by Saeed Niku. However, the downside may be the mismatch of the notations and representations from old books or journals.


  1. "Computer Vision - Algorithms and Application" - by Richard Szeliski (pdf) ⭐⭐⭐⭐⭐

I've always felt that online computer vision courses only focus on implementation. There are 'some' online courses that focus on the theory, but these are mostly on advanced concepts like SLAM. Yes, we work mostly on implementation, and yes this way we get more students and money - but really, people need to be aware that understanding the background of each techniques in computer vision is essential for performance optimisation. How many times do we see people blindly using SIFT/SURF for feature detection? How many times do we see people blindly using YOLO for the simplest detection tasks? We need to understand what methods are available out there, what their pros/cons are, and why they have such properties. Obviously reading papers on each techniques will be the most informative, but it consumes too much time, so this book has summarised all the important information of traditional computer vision techniques.

Expand

A collection of computer vision / image processing algorithms! Despite convolutional neural network is getting the spotlight in academia and industry in computer vision field nowadays, the fundamental knowledge and skills in image processing and general computer vision techniques must not be underestimated. Such techniques include stereo-correspondences, image stitching, feature extraction, structure from motion, and 3D reconstruction. These techinques, together with CNN, has a great potential to make useful computer vision applications. Therefore this book is highly recommended to anyone who only has worked on CNN in computer vision area.



Quality Engineering


  1. "Six Sigma and the Quality Toolbox" by John Bicheno and Philip Catherwood (Amazon) ⭐⭐⭐⭐⭐
Expand

Six Sigma is an engineering philosophy that focuses on achieving the outcome of any processes just as what the customer wants - in numeric measures, it aims to achieve 3.8 defects per million opportunities, by utilising well-established techniques that can be utilised in industry and potentially in research as well. This book is like a bible to me. The flow of content is very intuitive and easy to read, even for non process engineering specialists. The reader can fish out useful techniques from the book, and may attempt to apply directly to the current research. I have done this on both my bachelor's and master's thesis - I have used Ishikawa Diagram for cause analysis, and investigating engineering requirement of my system development using Quality Function Deployment. The book does not give details in industry standard, however, it gives a good start point in understanding the importance of quality in both industrial production and scientific research.




Courses and MOOCS to be taken

Mathematics


  1. "Mathematics for Machine Learning : Linear Algebra" (Link)

Recommended by many students at Imperial College and StackOverflow. Apparently this course is perfect to harden the knowledge of linear algebra.

Expand

Platform Author url
Coursera Imperial College London Link


  1. "Probabilistic Systems Analysis and Applied Probability", 6.041 / 6.431 Fall 2010 (Link)

Recommended by a number of Korean deep learning researchers. The course seems a bit old - may be replaced by other new courses if better ones are found.

Expand

Platform Author url
MIT OpenCourseware Prof. John Tsitsiklis Link


  1. Calculus, Statistics and Algebra by "Professor Leonard" (Link)

Video playlists made by a youtuber. Very good at explanation, however I'm not yet sure if these can be useful for machine learning.

Expand

Platform Author url
Youtube Professor Leonard Link


Other sources: Stanford: Linear algebra - Math104, Math 113, CS205 Probability theory - CS109 or Stats116


Programming


  1. "Introduction to C++", 6.069 Jan 2011 (Link)

Quite an old resource - may not cover C++11 or C++14. Need to check.

Expand

Platform Author url
MIT OpenCourseware Jesse Dunietz Link


  1. "Introduction to C#" (Link)

May need to be complimented with learning Unity.

Expand

Platform Author url
edX Microsoft Link


  1. "Fast Campus - 컴퓨터 공학 올인원 패키지 (Korean)" (Link)
Expand

Platform Author url
Fast Campus Fast Campus Link


  1. Matplotlib Tutorial Series - Graphing in Python (by Sentdex) (Link)

Matplotlib tutorial

Expand


  1. Monte Carlo Simulation with Python (by Sentdex) (Link)

Monte Carlo Simulation tutorial

Expand


  1. Data Analysis with Python and Pandas (by Sentdex) (Link)

Pandas tutorial

Expand



Machine Learning


  1. 'Machine Learning" , "Deep Learning" (Link)
Expand

Platform Author url
Coursera Andrew Ng (Stanford) Link


  1. CS229 (Link)
Expand

Platform Author url
Stanford Ron Dror, Andrew Ng Link


  1. School of AI - Move37, Data-lit, Decentralised Applications (Link)

Move37 - Reinforcement Learning, Data-lit - Big data and machine learning, Decentralised Applications - Blockchain

Expand

Platform Author url
School of AI Siraj Raval Link


  1. Machine Learning with Python - Sentdex (Link)

Traditional machine learning techniques to convolutional neural network + 3D CNN, by a youtube channel Sentdex

Expand

Platform Author url
Youtube Sentdex Link


  1. Scikit-learn Machine Learning with Python and SKlearn - Sentdex (Link)

Scikit-learn tutorial with a focus on finance, by a youtube channel Sentdex

Expand



Robotics


  1. CS223-A (Link)
Expand

Platform Author url
Stanford Jeannette Bohg Link



  1. Robot Ignite Academy - Robot Operating System (ROS) (Link)
Expand

Platform Author url
Robot Ignite Academy Robot Ignite Academy Link


  1. ETH Zurich - Robot Operating System (ROS) (Link)
Expand

Platform Author url
Youtube Robotic Systems Lab Link


  1. Raspberry Pi with Python (Link)
Expand



Computer Vision


  1. CS223-B (Link)
Expand

Platform Author url
Stanford Sebastian Thrun Link



Books to be read

Machine Learning


  1. "Hands-on Machine Learning with Scikit-Learn and TensorFlow" - Aurélien Géron (O'Reily Website)
Expand


  1. "An Introduction to Statistical Learning - with applications in R" (pdf)
Expand


  1. "The Elements of Statistical Learning" (pdf)
Expand


  1. "An introduction to Deep Reinforcement Learning" (pdf)
Expand


  1. "Reinforcement Learning" (pdf)
Expand



Robotics


  1. "Probabilistic Robotics" by Sebastian Thrun, Wolfram Burgard and Dieter Fox (pdf)
Expand

A great book about probabilistic methods in robotics, mostly focusing on state estimation and bayes filters. Therefore this book provides a solid foundation in understanding commonly used tracking filters such as Kalman filters, particle filters. The content also extends a bit futher to advanced modern concepts, such as mobile robot localistion and SLAM.



Computer Vision


  1. "Multiview Geometry in Computer Vision" by Richard Hartley and Andrew Zisserman (pdf)
Expand


About

Personal reviews of popular MOOCs (Massive Open Online Courses) and study plans

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published