# Best Free Online Courses (Especially for ECE, CS and ME Students)

We all know that courses we take in the college is not enough. It is always good to not limit yourself. You might want to go deeper in a subject that you are interested. It doesn’t matter whether it is directly related to your department or your academic interest. It is even better if you improve yourself with different concepts. This will help you to connect pieces together. Don’t forget that interdisciplinary work is the best!

In this post, I would like to share some **free online courses** that could be useful. I took these courses in order to have necessary background for robotics. However, even if you aren’t interested in robotics, most of these courses would still be helpful.

### Linear Algebra by Prof. Gilbert Strang

Without understanding linear algebra properly, it is impossible to understand the mathematical side of the concepts. I strongly recommend the course Linear Algebra by Prof. Gilbert Strang

### MIT - Signals and Systems by Prof. Alan Oppenheim

Everything in this life is either signal or system. Hence, either you study in simulation or real world, you will need to know **Signals and Systems**. If you take any signal course during your undergraduate life, it is highly possible that you are biased to this course. Nonetheless, trust me, it is not that bad. Try to understand the concepts rather than memorizing Fourier formulas, laplace transforms etc. Remember that you are taking these courses to improve yourself, so just focus on learning! I believe MIT - Signals and Systems by Prof. Alan Oppenheim course is by far the best signal course ever.

### MIT - Introduction to Probability

We are living in real world and nothing is deterministic. Every signal you measure is actually stochastic. Therefore, it is important to deal with uncertanity. After learning probability theory truly, you will see that life becomes much easy and you can understand the papers you read better. For this purpose, you can take MIT - Introduction to Probability course.

### Embedded Systems - Shape The World: Microcontroller Input/Output

Well, we equipped ourselves with enough mathematical background. Now let’s
try to implement some cool stuff. If you want to work on hardware Embedded Systems - Shape The World: Microcontroller Input/Output course will provide significant information for you. Thanks to this course, you can understand the limits of hardware. After getting this course, you will be able to write a program for an embedded platform and get to learn basic concepts such as clocks, interrupts, registers etc. If you want to be a hardware guy/girl, I suggest that you should first work on **Arduino** or **Raspberry Pi**. You can then take this course to learn further about embedded programming. Otherwise, the course would be a bit difficult to understand.

### Machine Learning by Andrew Ng

If you have heard something called **Machine Learning**, but you don’t know anything at all, then Machine Learning by Andrew Ng course will be perfect starting point for you. Andrew Ng is one of the leading researchers in the machine learning field. He tries to teach both theoretical and practical side of the topic. The coding assignments of the course can be done in either **MATLAB** or **Octave**. I strongly suggest that take the assignments of this course seriously and spend enough effort on them. During the course, you can test your linear algebra knowledge as well since most of the theoretical part is composed of matrices.

### MIT - Deep Learning for Self Driving Cars

If you decide to go further in **Machine Learning** field, you can follow MIT - Deep Learning for Self Driving Cars course to learn **Deep Learning**, which is a subfield of Machine learning. I always believe that learning something is much efficient if you are working on a project. This course provides exactly this. You learn Deep Learning better thanks to Self Driving Car aplications. It is also fun!

### Deep Reinforcement Learning by Sergey Levine

**Reinforcement Learning (RL)** is also a subfield of machine learning and it is one of the recent hot research topics. One of the biggest advantage that RL provides is it doesn’t need a huge training dataset like **Deep Learning Structures**. It can learn what to do by itself thanks to given rewards and punishments to the system. If you are interested in RL, you can take Deep Reinforcement Learning by Sergey Levine course. The lecturer Sergey Levine is a successful researcher in this field.

### Upenn Robotics MicroMaster

If you are interested in robotics and want to learn theoretical information specific to robotics, Upenn Robotics MicroMaster will be perfect online course for you to follow. It offers various online courses such as **Robotics Kinematics**, **Robotics Vision**, **Robotics Dynamics and Control** and **Robotics Locomotion** etc. I think it is also a perfect opportunity to test yourself and your interest in different subfields of robotics.

That’s all I want to say right now. If you also know other online courses that could be beneficial for other people, please use comment section and let me know.

Don’t forget that even if you are not at the department you like, you can still follow your passion. The only thing you need is a computer with an internet connection!