ossu / computer-science

🎓 Path to a free self-taught education in Computer Science!
MIT License
172.01k stars 21.71k forks source link

Consider adding MIT 18.S191/6.S083/22.S092 (Introduction to Computational Thinking) to core math #912

Closed krishnakumarg1984 closed 3 years ago

krishnakumarg1984 commented 3 years ago

I think that the MIT course Introduction to Computational Thinking is a worthy addition to the core math curriculum.

Among its many credentials, the contents for the course is regularly updated using feedback/Pull Requests from the community. Heck, they even have a Covid-19 modelling/visualisation lesson!

The lecturers are well known in the field of mathematics (the most recent addition being Grant Sanderson who runs the phenomenal 3blue1brown channel, which is already recommended here by OSSU for his "Essence of Linear Algebra" playlist). The course lessons are interactive, and the lecture videos are of exceptional quality.

If not under Core Math, it needs at least a honorable mention somewhere else in OSSU, IMHO.

waciumawanjohi commented 3 years ago

This course has been on my personal to-do list since it launched. I was also very interested by the inclusion of Sanderson. (Though I believe he only participated in the inaugural class; I haven't seen evidence that he's involved in the following semesters.)

Adding the course to Extras/Courses is a change I would approve immediately. Adding it to the official curriculum would involve more work. We would need to identify a course (or courses) that it would replace, or find curricular goals that we are not meeting that this course hits.

I know that process adds more work to folks who come across truly great resources. But that extra work is key to protecting OSSUnians from having the kitchen sink thrown at them, i.e. protecting them from taking every great course that's come out in a decade even if there's overlap.

spamegg1 commented 3 years ago

Just my two cents: I took a cursory glance at the course topics.

Module 1: Images, Transformations, Abstractions
1.1 - Images as Data and Arrays
1.2 - Intro to Abstractions
1.3 - Transformations & Autodiff
1.4 - Transformations with Images
1.5 - Transformations II: Composability, Linearity and Nonlinearity
1.6 - The Newton Method
1.7 - Intro to Dynamic Programming
1.8 - Seam Carving
1.9 - Taking Advantage of Structure
Module 2: Statistics, Probability, Learning
2.1 - Principal Component Analysis
2.2 - Sampling and Random Variables
2.3 - Modeling with Stochastic Simulation
2.4 - Random Variables as Types
2.5 - Random Walks
2.6 - Random Walks II
2.7 - Discrete and Continuous
2.8 - Linear Model, Data Science, & Simulations
2.9 - Optimization
Module 3: Differential Equations & Climate Modeling
3.1 - Time stepping
3.2 - ODEs and parameterized types
3.3 - Why we can't predict the weather
3.4 - Our first climate model
3.5 - How to collaborate on software
3.6 - Snowball Earth and hysteresis
3.7 - Advection and diffusion in 1D
3.8 - Resistors, stencils and climate models
3.9 - Advection and diffusion in 2D
3.10 - Inverse climate modeling
3.11 - Solving inverse problems

There is quite a bit of overlap with existing curriculum content:

  1. Transformations and PCA overlap with Linear Algebra (elective);
  2. Random walks, variables, sampling overlap with Probability (elective);
  3. Newton Method, Optimization and (very basic) DEs overlap with Calculus (required?);
  4. Dynamic Programming overlaps with Core Theory (required);
  5. Some of the other topics probably overlap with existing content in smaller ways.

The rest of the topics go into more serious differential equations and modeling. Quoting CS2013 page 50:

To wit, some programs use calculus requirements not as a means for domain knowledge, but more as a method for helping develop such mathematical maturity and clarity of mathematical thinking early in a college-level education. Thus, while we do not specify such requirements, we note that undergraduate CS students need enough mathematical maturity to have the basis on which to then build CS-specific mathematics (for example, as specified in the Discrete Structures Knowledge Area), which, importantly, does not explicitly require any significant college-level coursework in calculus, differential equations, or linear algebra.

It could be argued that it covers Elective topics under Computational Science (CN)/ Modeling and Simulation Knowledge Area (page 70). However I would be hesitant to jump to such a conclusion without taking the course myself first. Moreover, this can be said only for Module 3, not Modules 1 and 2.

So... the way I see it from a brief look, is that someone would have to make a very strong argument to include it as an elective in our future-planned Advanced Math section, or as a wholesale replacement of multiple electives under Core Math.

But hey, it looks like a super cool course! You've given me more work to do...

riceeatingmachine commented 3 years ago

Hello

I had a look at the topics and much of it is already covered in other courses. For example, the newton method is in Calculus A: Differentiation, etc. Module 2 is largely covered by the coursera series on discrete math (I haven't done Math for CS yet but my guess would be that it covers it).

I think there are already too many math courses in the curriculum: 8 months of calculus, 4 months of linear algebra, 2 months of logic, 6 months of probability, 3 months with the optional discrete math spec, 3 months for Math for CS, etc. This does not count advance math courses like multivariable calculus.

I don't know about logic and probability, but calculus and linear algebra are definitely not optional (even though the course makes them elective) - I did both and I found them to be very necessary to properly understand and reason about other material in the curriculum.

Given that, I think it would not be a great idea to introduce another course, especially since it overlaps with other courses - adding a lot of time overhead to the course for no strong reason.

krishnakumarg1984 commented 3 years ago

@riceeatingmachine Thanks a lot for the review. I guess we can possible close this issue then?

waciumawanjohi commented 3 years ago

As the submitter has mentioned closing the issue, I am doing so now. As I said before, I would approve any pull request to add Introduction to Computational Thinking to Extras/Courses.