Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
romanbird opened this issue Oct 17, 2022 · 19 comments
Open

Comments

@romanbird
Copy link
Contributor

romanbird commented Oct 17, 2022

Problem:

  • OSSU recommends course X to teach a topic, but there exists a higher quality course that covers the same material.

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.

  • My purpose in writing this book was to provide a clear, accessible treatment of discrete mathematics for students majoring or minoring in computer science, mathematics, mathematics education, and engineering.

  • The goal of the book is to lay the mathematical foundation for computer science courses such as data structures, algorithms, relational database theory, automata theory and formal languages, compiler design, and cryptography, and for mathematics courses such as linear and abstract algebra, combinatorics, probability, logic and set theory, and number theory.

  • A good background in algebra is the only prerequisite; the course may be taken by students either before or after a course in calculus.

  • Recent curricular recommendations from the Institute for Electrical and Electronic Engineers Computer Society (IEEE-CS) and the Association for Computing Machinery (ACM) include discrete mathematics as the largest portion of “core knowledge” for computer science students and state that students should take at least a one-semester course in the subject as part of their first-year studies, with a two-semester course preferred when possible. This book includes the topics recommended by those organizations and can be used effectively for either a one-semester or a two-semester course.

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:

  • Replace MIT's Math for CS.
  • Alternatively, cite this resource as an alternative so nobody has to waste the same amount of time I did :)
@aayushsinha0706
Copy link
Member

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
Copy link
Contributor

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
Copy link
Contributor Author

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
Copy link
Contributor

spamegg1 commented Oct 17, 2022

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
Copy link
Contributor Author

romanbird commented Oct 17, 2022 via email

@spamegg1
Copy link
Contributor

spamegg1 commented Oct 17, 2022

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
Copy link
Contributor

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
Copy link
Contributor

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
Copy link
Contributor Author

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
Copy link
Contributor Author

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
Copy link
Contributor

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
Copy link

gammaalphabeta commented Oct 21, 2022

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
Copy link
Contributor

angle943 commented Nov 1, 2022

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
Copy link
Contributor

spamegg1 commented Nov 3, 2022

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

@spamegg1
Copy link
Contributor

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
Copy link

r0hitm commented Nov 25, 2022

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

@Choubs01
Copy link
Contributor

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
Copy link

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
Copy link

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

10 participants