MindWeb – A Computer Science Bachelor Curriculum
mindweb.network
mindweb.network
I've had a different idea for a while. What I've always wanted to do, and would do if I had unlimited time, is create a kind of tech-tree of various computer science concepts, organized into subjects/tracks/courses, with each vertex in the tree being a clear and concise 4-7 minute youtube video (with accompanying downloadable code if applicable). Note this wouldn't necessarily need to be a real tree as things such as e.g. machine learning would need backgrounds in both linear algebra and statistics.
Then you could learn from scratch by simply traversing down the tree. If you wanted to learn something, you could search it and determine where in the tree to start watching about it by where you feel like your knowledge ends. So if you're looking up np-completeness, but feel you don't understand the concepts of p and np, you can watch those videos first.
It would take a long time, though.
It worked well but was a bit overwhelming. The other challenge was that many skills were interconnected and so the progression wasn’t strictly linear.
That said, Khan Academy's execution is positively ancient. Videos can certainly be more concise. Vi Hart's YouTube channel is a fantastic example of what constitutes (in my opinion) the upper bounds of concise YouTube educational videos:
Edit: added previous discussion to the list.
[0] https://metacademy.org/graphs/concepts/recurrent_neural_netw...
I can see this being combined with Arbital's Lens (Same thing explained in multiple ways - from a simple explanation for a 10-year-old to a rigorous explanation for a mathematician)
I always considered this the best way to actually progress in my learning and I still see it as the next big thing after Wikipedia, once it's done correctly.
Really appreciate the links
When thinking about implementing such a concept, I ran into the same problem as you regarding the myriad different ways this could be represented or stored. Currently I think the best way is to create a hierarchy with the atomic units consisting of tuples of the form <concept name, description, video, article/guide, links and further reading>. Let these be vertices, then you can add directed edges representing dependencies to the graph so long as the graph remains partially ordered. Then you can just organize (potentially overlapping) subgraphs into ever-larger units such as tracks, courses, subjects, etc.
Computer science is probably one of the most over-documented fields. Everyone seems to have compiled a list of resources at least once in their life, like a rite of passage.
I'd love to see open source curricula for Economics/Business, Physics, Music, Literature and other stuff.
Yes, part of the point of studying philosophy is getting feedback from discussing ideas with others. But there's still a basic vocabulary and set of ideas everyone should learn simply so they realize their revolutionary ideas about reality and truth and beauty and so on have occurred to others, and have been discussed, probably for centuries if not millennia, and that the results of those discussions have been preserved.
It would be contentious, but some of the lists of core resources for CS are contentious, too.
You can branch out from there, based on who appeals to you personally.
[0] https://www.amazon.com/History-Western-Philosophy-Bertrand-R...
I want to create a way for people to follow a particular idea throughout time. So imagine picking a topic, like free will, and you'll be able to use a map and timeline to trace writings on that topic throughout history. Each piece of writing would be linked to the sources it was inspired from, as well as the pieces of writing that it inspired.
But it could totally be done for philosophy, there are some great lectures online covering enough that would be equivalent to a degree. It wouldn't be that hard to extend such a site to allow people to find small groups of people for philosophical discussions either.
in my opinion, it would be very good for there to be a universal textbook that would not only contain all of mans information, but accompany that information with friendly and thorough explanations and guidance. it would foster understanding by being concise and structuring all its information is the simplest and most straightforward way possible. that is to say, it would be user-friendly. it might also include training programs designed to make anyone a good programmer, musician, physicist, etc. this would be a gigantic undertaking but wikipedia has done something similar so i think its possible.
They're not up to snuff, but these do exist:
* https://en.wikibooks.org/wiki/Main_Page
* https://en.wikiversity.org/wiki/Wikiversity:Main_Page
Plus, of course, https://www.khanacademy.org/
What you are suggesting may seem like a good idea but humans will always try to be lazy when they can, and a universal free textbook make it almost too easy for them. In reality, everyone's gonna read from the same book without many people knowing the full extent of the subjects. I think this will only speed up the reduction in the number of expert. If you need any proof just look at Stack Overflow and the js community.
The number of experts in CS is not constrained by availability of resources (though that might not be the case for every field), but the number of people that have: 1. a minimum of inteligence to get through it, and 2. The motivation and determination to strive at reaching expert level over a long period of time.
So, throwing more resources at this will only marginally increase with the production of experts. Maybe it will lower the bar of #1 a bit, but the bottleneck is really in #2 and the people that are not willing to work hard and keep working hard despite apparent failure will drop off anyways.
It is the same with open source community. By now, we should be literally swiming in free software. Instead, what happened is that society use of open source increased, but hackers willing to volunteer their time remained the same or even diminished over the years (every kid dreams with being an entrepraeneur and hit it rich these days, nobody wants to be a dirty hippy anymore). The slack has been picked up by paid employees from sponsor companies instead.
As for open source textbooks, here is one such initiative: https://openstax.org/
However, I'd say most of the items are serious textbooks with a hefty price tag if you're going to try to buy new. You can pick up older editions for pretty good discounts, though.
Eventually I think we'll get there from a purely non-profit philanthropic perspective a la Khan Academy model. The problem is, as Khan has gotten bigger, they have lost some of what made it unique in the first place (topic, knowledge and mastery base has shifted to k-12 common core/ap alignment).
Coursera recently shifted all their comprehensive classes from free to some sort of $$ model. The one free comprehensive algorithms class from Princeton doesn't have the second half posted for many months. All these for-profit companies that start out free are destined to move to a pay per course model.
This is free lecture notes online, but are best complemented with a textbook.
Try this one...much better.
My favorite response is, "ok, thanks" and move on.
What aspects of the design do you think are particularly effective? What is most clearly communicated?
Has anyone put together a list like this for a subject like chemistry?
CS is pretty unique in the realm of things that typically require a 4 year degree to work in that are accomplishable without. The required capital is sitting on most desks in the country. Chloroform less so
I imagine it would be almost entirely impossible to work in bioscience without a relevant degree.
You can just look up some undergraduate chemistry course listings and follow the prerequisites to construct an order in which to work through them.
Between chemicals, ventilation hoods, labware, and instruments, you'd probably spend a few million trying to teach yourself chemistry at home.
A list of courses is not enough, haha
Norvig's essay is an all time classic, but I'm not sure how it applies here. There's a difference between thinking a single book is going to teach one to be a professional developer and thinking a BS-equivalent set of online courses and the hundreds if not thousands of hours of work it would take to complete them might teach someone something about computer science.
Many great developers are self-taught. Having resources like recordings of university lectures from some of the best schools in the country just makes the long, difficult journey a bit easier.
https://www.cs.cmu.edu/~venkatg/teaching/CStheory-infoage/ch...
The appendix has the material the book depends on.
The course description includes this: "The course is cross-listed as a joint undergraduate/graduate course. The course will be fast paced and theoretical, so mathematical maturity and comfort with material in 15-251 and basic algorithms is required. The suggested prerequisites are 15-251 [0] and 15-451 [1]. (In exceptional cases, if you haven't taken these courses at CMU but feel that you have the required mathematical background and would like to try this course, you may sign-up for the course after the obtaining the instructors' permission.) Students who have taken 15-359 and enjoyed it are particularly encouraged to consider taking this course. The overlap with 15-359 will be small, so doing both courses in parallel is also encouraged."
(I had closed the page because of the UI, but opened it again to do some keyword searches. I was glad to close it again. My stomach is still somewhat nauseated.)
Operating systems Graphics Programming languages (the subject as a whole, as opposed to a specific language) Compilers
Also, some of the descriptions are a bit misleading. "iPhone Development Environment Install" actually leads to an entire course for iOS development, but that's not really clear from the description on the page.
If you're into mind maps.