ossu / computer-science

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

Math Electives + Core Math #768

Closed ghost closed 4 years ago

ghost commented 4 years ago

Math Electives section states that "Students must choose one of the following topics: calculus, linear algebra, logic, or probability."

The course in Core Math section requires Calculus 1C as a prerequisite. So if I don't choose to do calculus in the math electives section, I won't be able to do the course in Core Math?

ghost commented 4 years ago

@licjon agreed.

spamegg1 commented 4 years ago

@aescasinas Hi,

This is quite a common question, and yes it's somewhat of an issue. Here is my understanding of it (I could be wrong):

When I started the curriculum in May 2018, there were A LOT more math classes. And they were all required. Then math requirements were simplified here. Since many math courses in the "long prerequisite chain" were removed, right now it's not possible for the curriculum to be completely self-contained to include all the math prerequisites (for example, Multivariable Calculus is not in the curriculum).

Instead, now the curriculum leaves it up to the student (you) to choose your own path and take care of your own prerequisite needs based on your background (I took no math because I have a math background). This is online self-learning after all.

Even though Math for CS has a Calculus 1C prerequisite, there is only a small portion of Math for CS (the Probability parts) that requires some infinite series. It is still possible to take Math for CS without Calculus 1C, the only issue is that a few calculations will be somewhat confusing. But the rest of the course does not use Calculus at all. It's finite/discrete math (counting, combinatorics), graph theory, proofs and logic.

You might be able to teach yourself just enough infinite series from Khan Academy and avoid taking 3 entire calculus classes if you really don't want to take those. But this is up to you. You can choose how much you want to save time in exchange for difficulty/struggle. Obviously Calculus is awesome and super useful in the long term in many areas.

If you already happen to know Calculus (many people do, sometimes even from high school), you can choose to do one of the other electives if you want (Logic, Probability, Linear Algebra), or you can say: "I'm done with my math electives", take Math for CS and move on.

Linear Algebra and Logic are easier and self-contained. LA will help in Machine Learning/Computer Graphics and Logic will help in Core Theory/proofs. Logic requires a bit of naive set theory but you can teach yourself that in a few hours on Khan Academy or Youtube. Core Theory classes require a LOT of logic and proof writing, and solid mathematical induction. (Roughgarden's textbooks cover all of it in their appendices, completely self-contained.) ML requires matrix multiplication, knowing how to match the dimensions of the matrices, how to take the transpose of a matrix (and just a tiny bit of partial derivatives). CG requires matrix multiplication, vector dot and cross products, creating an orthonormal basis of vectors, and understanding how matrices rotate/transform vectors visually in 2D and 3D.

However Probability still requires Multivariable Calculus (which USED TO be required in the curriculum, but it would add another entire year). This prerequisite is also a bit overblown: Probability requires only Single Variable Calculus (integration and infinite series), plus JUST A FEW iterated double/triple integrals (which are extremely similar to single variable integrals, you treat all but one variables as constants). Vast majority of Multivariable Calculus (partial derivatives, mutivariable optimization, line/curve/surface integrals, Green's Theorem, Stokes' Theorem, Divergence Theorem, Mass/Work/Energy applications, curvature etc.) are not needed at all (these are physics/engineering topics).

Moreover, the infinitary, more difficult parts of Probability are very theoretical and are not used much in CS (Markov Chains are used in Finance if you want to go into Financial software). When you reach Core Theory you will see that the use of Probability is discrete, and requires only finite sums. But of course you should still take Probability if you are interested in it. Personally I know a few OSSU students taking it.

So now maybe you can understand why the curriculum was changed the way it was. It's a very tricky problem without a perfect solution. Just because a very small part of a future course requires a specific math topic, an entire series of courses are added as prerequisites, which adds an entire year to the curriculum and becomes a big roadblock for a lot of students. Single/Multi variable Calculus, Linear Algebra, Probability, Math for CS used to be ALL required.

A trade-off decision was made. Now it more closely resembles a CS major in a real university: they are required to take some math electives (choice based on their past math knowledge and left up to you) but not too many.

My advice would be not to get too stuck on prerequisites and take care of your own math background needs. Khan Academy is a great resource.

ghost commented 4 years ago

@spamegg1 Thank you for your detailed reply. I think I will go through all of the college courses on Khan Academy!

waciumawanjohi commented 4 years ago
  1. This is a great writeup and reference for students in the future. I'm bookmarking it.
  2. In a few weeks we'll hit the 6 month point since the math curriculum was overhauled. I think that's about the amount of time that OSSU should wait before revisiting a change that was introduced by RFC. I plan to open a proposal to simplify the math section. I'll definitely point contributors to this writeup to gain context. Closing this issue in the meantime.