ossu / computer-science

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

RFC: Replace MIT's Math for CS with Discrete Mathematics with Applications #1090

Open romanbird opened 2 years ago

romanbird commented 2 years ago

Problem:

Duration: 1 months

Background: Math for CS has major flaws. I don't consider it completable in its current state. Options exists from 2005, 2010, and 2019 (a refactoring of a 2015 course), but neither has a complete set of what I'd consider must-haves: psets with answers (2010, 2019 only); lecture videos (2010 only - partially); exercises with worked solutions (2010 only); a complete textbook (2019 only). 2010 is clearly the best pick, but on closer inspection there's too much missing to actually implement the resources you're given. On top of this, you're dumped with all these readings and assignments, but no logical order to go through them (I spent about an hour trying before realising there must be a noticeable amount of content missing).

Discrete Mathematics with Applications by Susanna Epp (4th edition) has worked solutions within the textbook and an optional study guide to go alongside it. It seems extremely high quality and tailored specifically to a CS curriculum. Copies are available on archive.org to guarantee that learners can access legal, free, resources without having to resort to piracy. In addition, the textbook is assigned enough across university curricula that support from it can be found online with some ease.

I'll paste selections from the introduction to show its suitability for OSSU/CS2013.

Issues Obviously this is not an online course: there are no lectures for example. My case is that there isn't a viable alternative.

Proposal:

aayushsinha0706 commented 2 years ago

I am not in the support of this proposal as to say. MIT Math for CS is an important course and a part of curriculum, although I was planning to introduce an elementary discrete math course before MIT Math for CS.

MIT Math for CS is an advanced treatment for Discrete mathematics and should not be first course in discrete mathematics.

This course and textbook is also recommended by teach yourself cs

For a more advanced treatment, we suggest Mathematics for Computer Science, the book-length lecture notes for the MIT course of the same name. That course’s video lectures are also freely available, and are our recommended video lectures for discrete math.

spamegg1 commented 2 years ago

Just a few clarifications (I think most of your issues is due to the un-intuitive GUI of the OCW website):

psets with answers (2010, 2019 only)

2005 also has Psets with solutions: Screenshot from 2022-10-17 19-04-25

lecture videos (2010 only - partially)

2015/2019 also has lecture videos: Screenshot from 2022-10-17 18-48-43

exercises with worked solutions (2010 only);

I believe you are referring to the "in-class problems" yes? 2005 also has solutions to those: Screenshot from 2022-10-17 19-07-04

a complete textbook (2019 only)

2010 also used an earlier version of the same book as textbook, but it's chopped up into separate PDF pieces as "Readings": Screenshot from 2022-10-17 19-14-49

On top of this, you're dumped with all these readings and assignments, but no logical order to go through them

You have to use the "Calendar" and match the corresponding resources to it. For example, this is the 2005 version: Screenshot from 2022-10-17 19-18-57

In addition, the "dump" issue is mostly with the https://ocw.mit.edu website. The default version we are offering is at https://openlearninglibrary.mit.edu/ which is a different, non-dump site that uses edX-style open source MOOC software.

Moreover the 2019 version has a very clear, linear pathway: just click "Next": Screenshot from 2022-10-17 19-26-01

With those out of the way...

2010 is clearly the best pick

Personally I don't see it, 2019 seems to be the best pick. It's only missing solutions to the in-class problems (keep reading below).

Maybe we should clarify this by getting rid of all references to alternatives/different versions and force everyone to use the 2019 version?

This "oh no I gotta mix and match" issue comes up a lot with learners, because they are terrified of math, so when they see something, anything at all without full solutions, they immediately start running away.

Copies are available on archive.org to guarantee that learners can access legal, free, resources without having to resort to piracy.

I don't think this is true... those can't be legal. So, as much as I love Epp's book and consider it superior, I have to disagree with the proposal.

My proposal: I WILL HAVE TO ROLL UP MY SLEEVES ONCE AGAIN, AND WRITE SOLUTIONS TO THOSE IN-CLASS PROBLEMS. Should take me a few months. Then I'll make a PR that removes all references except to the 2019 version.

Will that satisfy you, @romanbird ? Would 2019 be acceptable then?

romanbird commented 2 years ago

With solutions, MIT 2019 will be a great option. Right now it’s unsuitable though, so people should be aware of that till it’s fixed.

I still think it should be listed as an alternative. Why have to dig deep for the superior book? Let people know it’s at least available

spamegg1 commented 2 years ago

Right now it’s unsuitable though, so people should be aware of that till it’s fixed.

I think it's suitable... not everything in a course needs to have full solutions. (In fact some pedagogues argue there shouldn't be solutions for everything.) But let's not argue on that.

I still think it should be listed as an alternative. Why have to dig deep for the superior book? Let people know it’s at least available

It's debatable whether it's superior. I think it is, but I could be wrong, and others may feel differently. Plus, there must be hundreds of other Discrete Math books/courses out there.

One common problem is people recommending that we change resources, without going through the new recommended resource themselves. Honestly I haven't fully completed Epp's book (but I have completed Math for CS). So I refrained from opening an issue about it.

I am in favor of removing all alternatives (unless they are needed due to availability reasons). It creates so many more problems, confusions and questions. What we need is clarity.

It also creates a lot of work for maintainers. We had some issues opened in the past, where the default option for a course kept ping-ponging back and forth between 2-3 alternatives, without all that much impact on the learners. It leads to splitting hairs on small unimportant differences.

"What are the differences? Which is better? What will I miss out if I use one instead of the other? How much longer/shorter is this one? Should this one be the default instead?" etc. There were some learners simply paralyzed by all the Math for CS alternatives. They ended up spending way more time trying to make a decision, rather than actually doing the course.

romanbird commented 2 years ago

The basis of learning Maths is consolidation exercises where you can even do something as simple as check you actually understand something. The exercises here are locked away — no undergraduate course of this level would ever do this, not even at MIT. How can we seriously ask people to do an MIT course except harder? 

spamegg1 commented 2 years ago

First in-class problems solution is already done! (34 more to go...) MIT6_042JS15_cp1_solutions.pdf Not really that hard. I hope I can inspire others to pitch in to the effort.

riceeatingmachine commented 2 years ago

I am not in support of this proposal. I completed the first third of the Math for CS book so far and solved every single problem in it just fine. It's not hard, you just need to spend time understanding the concepts. If I didn't get something, I just googled or youtubed the information. If I couldn't get a question, I would just use google lens and get hints and solutions on math stackexchange.

This is one of the highest quality courses in the curriculum and it would be a real damn shame to get rid of it.

Math for CS has major flaws. I don't consider it completable in its current state

Can you give a deeper elaboration? I solved the textbook at https://courses.csail.mit.edu/6.042/spring18/mcs.pdf

I didn't even use the lectures, I didn't find them necessary at all. The textbook by itself is self-sufficient.

spamegg1 commented 2 years ago

I am noticing that the 2010 in-class problems have a lot in common with the 2015/2019 in-class questions, but not all of them are the same. Some of them are 100% identical, while others vary... about 50%? This should at least speed up my work, as I can copy/paste from the 2010 in-class problem solutions.

romanbird commented 2 years ago

I completed the first third of the Math for CS book so far and solved every single problem in it just fine. It's not hard, you just need to spend time understanding the concepts. If I didn't get something, I just googled or youtubed the information.

So I would argue that having to frequently resort to this would make a course not so high quality but I digress. Maybe it's working out for you, but the fact is it's just not a text that is written to be used in isolation. MIT, while making a nice gesture to make this book available for free, knows this already: it's why they have an abundance of supplemental materials to this textbook that we don't see.

A book like this needs a framework around it. Going through Epp right now, it's much more of an all-in-one resource, and much more suitable for developing skills that you actually retain: examples, practice and repetition are must-haves. MIT students are bright but they do not go from dense textbook straight to challenge problem sets either.

romanbird commented 2 years ago

The Maths part of this curriculum is one of its most defining features. Discrete Maths is literally the core of the subject, and this is the capstone course for what will some people be 4 prior courses in Maths. It is not a course we can afford to have people struggle through and then continue on with a questionable understanding.

spamegg1 commented 2 years ago

Unfortunately many people struggle real hard even with Epp's book... (my 2.5 years of experience working through proofs with learners on Discord)

gammaalphabeta commented 2 years ago

Concrete Mathematics by Donald Knuth, Oren Patashnik, and Ronald Graham is an excellent account of discrete mathematics with a large number of high quality exercises with solutions and written by legendary computer scientist donald knuth

angle943 commented 2 years ago

as much as Concrete Mathematics might be an excellent book, from what I have read, it is NOT a recommended book for a beginner student to get into Discrete mathematics. IMO its doing the antithesis of what this issue is trying to fix.

spamegg1 commented 2 years ago

20/35 of the In-class problem solutions done so far! Stay tuned for more.

spamegg1 commented 2 years ago

All 35 in-class problems now have solutions.

With this, all psets, in-class, and exams have solutions. The only missing part is solutions to all problems in the textbook, but I'm pretty sure that would take me years to write.

@romanbird Is it satisfactory for you?

r0hitm commented 2 years ago

@spamegg1 Thank you very much ❤️ Appreciate the time and effort that you put into creating it!

Choubs01 commented 1 year ago

I don't think we should switch them, rather add Epp's book as an alternative. I think it's a good course, I just didn't like the lecturers teaching style + I covered discrete math already, so I got Epp's book to fill in gaps.

svenschnydrig commented 10 months ago

What about replacing MIT's Math for CS with the following course specialization: https://www.coursera.org/specializations/discrete-mathematics#courses

The book from this specialisation is also really good. I believe this would be a more approachable coverage of discrete math for most self-teaching students. The time needed to complete the specialisation would be comparable to the MIT course.

robertgro commented 10 months ago

This definitely requires a revision. It doesn't quite fit the CS Math contents compared to educational knowledge available for students at a university, e.g. https://link.springer.com/search?new-search=true&query=computer+science+mathematics&content-type=Book&dateFrom=&dateTo=&sortBy=relevance

pulkitkrishna00 commented 4 months ago

This RFC should be closed, since the problem which was proposed has been solved. Additionally, the book that was recommended as the alternative in this RFC does not pass the OSSU requirements anyway, since it is not available for free.

@svenschnydrig @robertgro If you want the Math for CS course to be replaced, please open a separate RFC, explaining why it should be replaced, and why the proposed course is a better alternative.

robertgro commented 4 months ago

@pulkitkrishna00

Thank you for your clarification. Although I'm no more deep into it enough (and don't have the time anymore) to sufficiently evaluate the changes required, I guess you mean something like https://github.com/ossu/computer-science/issues/1211

Which is already a separate ticket regarding the topic indeed.