Ok. My question is do I use a book/mooc that's more math/proof oriented or one that's more hands on coding? Which of these counts as "Design"?
Here's some example courses and Books. Tell me your thoughts please.
https://cs170.org/ basically all math
https://www.amazon.com/Python-Algorithms-Mastering-Basic-Language/dp/148420056X/ref=dp_ob_title_bk exercises are mainly proofs with some implementations in python
https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-fall-2011/ mainly implementations and mathematical analysis about efficiency
https://www.udacity.com/course/design-of-computer-programs--cs212
I am fond of Python Algorithms: Mastering Basic Algorithms in the Python Language, although there is one for-else loop in the book which is kind of gross (just joking).
If you want something that goes into more theory, I would recommend the classic CLSR Introduction to Algorithms.
Edit: the first suggestion was under the assumption that your data science course will use Python. It's a decent recommendation even if you use a different language, but if you'd like I can try and find a recommendation based on whatever language your course is using.