– Router Alley study guides
Together, these make up a fantastic introduction to computer science, systematic program design, and functional programming. I recommend this as a starting point due to its slow start, fast ramp-up, and tour of the power of simple programmatic features like lists and recursion. Presented by UBC through edX.
This course is more about Python programming than it is Computer Science, but does throw some analysis into the mix. I recommend the MIT Open Courseware version over its companion edX version due to shortcomings in the automated grading software and poorly conceived “finger exercise” quizzes.
Two fantastic courses from the University of Helsinki. The first is for beginners, and covers the basic syntax and usage of Java for beginners. The second is an intermediate course covering object-oriented programming, as well as some of the intermediate Java tools. It does not teach computer science, but teaches both Java and object-oriented programming well. (It does an excellent job of not confusing object-oriented programming by using fake, meaningless examples such as defining a dog, and instead takes you right up through graphical user interface and animation use.) Of particular note is the amazing automated code evaluation software.
Technically not a MOOC, but the best place to learn or brush up on maths on the net. Good preparation for MST124.