This course will explain and apply the basic methods of discrete (non-continuous) mathematics in computer science.
You will be able to use these methods in subsequent courses in the design and analysis of algorithms, computability theory, software engineering, and computer systems.
👉 https://openlearninglibrary.mit.edu/courses/course-v1:OCW+6.042J+2T2019/about
This course introduces principles, algorithms, and applications of machine learning from the point of view of modeling and prediction.
It includes the formulation of learning problems and concepts of representation, over-fitting, and generalization.
👉 https://openlearninglibrary.mit.edu/courses/course-v1:MITx+6.036+1T2019/about
In this course, you will learn what software engineers mean by "good" code -- safe from bugs, easy to understand, and ready for change. You will also learn ways to make your code better, including testing, specifications, code review, exceptions, immutability, abstract data types, and interfaces.
👉 https://openlearninglibrary.mit.edu/courses/course-v1:MITx+6.005.1x+3T2016/about
This is a challenging and rigorous course that will help you take the next step on your way to becoming a skilled software engineer.
👉 https://openlearninglibrary.mit.edu/courses/course-v1:MITx+6.005.2x+1T2017/about