Hacker News new | past | comments | ask | show | jobs | submit login
MindWeb – A Computer Science Bachelor Curriculum (mindweb.network)
331 points by foob on Sept 20, 2017 | hide | past | favorite | 62 comments



The problem with a website such as this one is that they just compile a list of content, each of which is quite large/involved, and throw it at you. Not only is this kind of overwhelming, but I wonder how many people actually use a page like this to construct a curriculum for themselves. I doubt it's very many at all. There's too much friction: you have to continue revisiting the page after you complete all of these multi-week courses. And each course will probably have its own suggested next steps, which might be different from those in the original resource, which you might have already forgotten about by now.

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.


As another comment suggested, this is pretty much the Khan Academy model up to and including YouTube videos.

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:

https://www.youtube.com/user/Vihart


Have you seen Metacademy? Here is a "tech-tree" for recurrent neural networks [0]. In the top-left corner you can switch between "graph" and "list" mode. Unfortunately, site hasn't been updated for some time. However, they have open sourced their code and I was thinking maybe we (volunteers) could pick up where they left off and continue this initiative. Previous discussion [2].

Edit: added previous discussion to the list.

[0] https://metacademy.org/graphs/concepts/recurrent_neural_netw...

[1] https://github.com/metacademy/metacademy-application

[2] https://news.ycombinator.com/item?id=7617683


This seems like an amazing concept and I have been thinking of it ever since I saw KhanAcademy knowledge tree.

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.


No I have not seen this, but it looks awesome and like a great place to start. This structure is pretty much exactly what I envisioned at a high level. It would be even more useful if there were a finer degree of granularity between concepts, and each vertex actually directly linked to a video. I think the killer feature for a partially ordered learning resource is going to be keeping people within the ecosystem (i.e. watching embedded videos or reading embedded articles/guides/etc.) so they can grind out on your website, not repeatedly have to go to other websites where they may get distracted or become reluctant to return to the original.

Really appreciate the links


The bigger problem in my mind (and I'm biased) is that these courses aren't designed to run together. They assume different knowledge and seemingly random levels of ability when you're taking them as one-offs. The hard part is mapping it all out and finding the holes. There's no continuity.


This is similar to what Khan Academy did back at the start of the application. There was a mathematics skill tree and you started at 1+1=2 and ended at the Stokes Theorem.

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.


Oh it's been a while since I checked it out. Sad to see that skill tree gone.


I've had a similar idea. Been gathering my notes on it here: https://github.com/ErikBjare/KnowTree/


I found the part of your repo saying " Googled around, found this (Swedish) which was interesting. Another datapoint to the claim that there's no such thing as a new idea. I should gather info from that blogger." and found it aptly ironic. Seems we all had the same idea.

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.


As a cs-savvy person, I'd really love to see similar pages but for other fields.

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.


I'm not sure you could actual compile a list of totally free resources for other fields. For instance, I came across this list for physics: https://www.susanjfowler.com/blog/2016/8/13/so-you-want-to-l...

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.


i find it amazing that in 2017, a time when the internet has been fully realized and adopted by millions of people, there is no open source, universal textbook hosted anywhere. most people say that there is, and that its called wikipedia, but i dont think so. wikipedia is good for reference. its also good for learning if you are very intelligent and motivated. but for people who are not super intelligent or who have not learned to learn yet, there isnt really a single, centralized, high quality solution for learning things.

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.


The thing about conceptual knowledge like computer science is there are many nuances to it and the only way to get a reasonably complete picture is to read from various sources told in different ways by different authors.

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 nice thing about such a book (or series of books) is that the net number of experts could only rise, because this is an additional (and very powerful) source of information for people to use who are inclined to become experts. also, there would be a huge increase in the number of non-experts or amateurs. this is a good thing because even having a hazy idea of how things work is more beneficial to ones ability to live and carry out duties of citizenship than knowing nothing. just because there would be a lot of amateurs doesnt mean that there would be less experts from what i can tell.


This, as many other things, is a people problem.

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.


> i find it amazing that in 2017, a time when the internet has been fully realized and adopted by millions of people, there is no open source, universal textbook hosted anywhere. most people say that there is, and that its called wikipedia, but i dont think so. wikipedia is good for reference. its also good for learning if you are very intelligent and motivated. but for people who are not super intelligent or who have not learned to learn yet, there isnt really a single, centralized, high quality solution for learning things.

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/


Why would you want one book? Can you even imagine trying to search through such a thing, or updating it? It's far better to have textbooks for each subject.

As for open source textbooks, here is one such initiative: https://openstax.org/


You mean something like this Physics textbook http://www.motionmountain.net/ ?


I'd love to see one for philosophy.

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.


I would recommend SEP (https://plato.stanford.edu/) for your exact purpose. Although not entirely structured as a guide on philosophy, it is very much akin to Wikipedia in that you can get lost for hours. I highly recommend stretching out on the patio with your laptop and a cigarette and make like Camus for an afternoon. As a philosophy major, it is an invaluable resource.


I'd say reading having a read of Bertrand Russell's 'A history of Western Philosophy' is a solid start. [0]

You can branch out from there, based on who appeals to you personally.

[0] https://www.amazon.com/History-Western-Philosophy-Bertrand-R...


I've been working my way through the podcast "A history of philosophy without any gaps". I find the episodes are a perfect length for my commute, and the presenter seems to be pretty well informed:

https://historyofphilosophy.net/


One of my personal project ideas (that I'll probably never get around to) is something along these lines.

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.


while people are listing some good philosophy resources, it's not quite the same as CS course on the original link.

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.


>> As a cs-savvy person, I'd really love to see similar pages but for other fields.<< That is actually one of the the ideas behind Mindweb. Right now it has mostly boards and content about coding and cs, but it is open for all learning materials. So if you know your ways in other fields too: feel free to make a board on any other subject and share it with the world ;)


Physics: http://www.staff.science.uu.nl/~gadda001/goodtheorist/index....

This is free lecture notes online, but are best complemented with a textbook.


As someone mentioned below, maybe https://learn-anything.xyz is close to what you are looking for.


Hi guys. MindWeb is the project of a friend and me. I just wanted to apologize for the loading time. We just launched our beta and we were not prepared for this much traffic!


Your site doesn't work with JS disabled.


This is a pretty poor platform to point you to edx/coursera courses.

Try this one...much better.

https://github.com/ossu/computer-science


As far as I can see all the courses are free. So there is no damage or profit in pointing people there, is it?


Why does it have to be about "damage?" The poor design of a disorganized resource wastes time and hides value.


Imagine a world where not everyone likes or responds the same to design, where people have different opinions about what is good or "poor" design, and not every interaction needs to be optimized for "value."


In that world, I imagine people would be free to criticize designs they don't like and provide alternatives.


As would those who make the critiziced design a be secure in their ethos, advancing them with advocacy.

My favorite response is, "ok, thanks" and move on.


Is that what you think is going on with this site?

What aspects of the design do you think are particularly effective? What is most clearly communicated?


These are the sort of resources I wish I had available when I was in high school. What a tremendous bounty we now have.

Has anyone put together a list like this for a subject like chemistry?


Chemistry is definitely cheaper to study at a University if you want the lab experience, which I find very important. (Imagine learning how to code in C without a compiler...)

Between chemicals, ventilation hoods, labware, and instruments, you'd probably spend a few million trying to teach yourself chemistry at home.



Khan Academy is great, but not what I was asking.


It's a pretty good attempt at what you're asking (it's college level chemistry with fantastic instructors, for free, online)

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.


I mean, I'm not really looking to work in the biosciences. I have a PhD in computer engineering and am happy with my job. I'm looking to take classes past the organic chemistry classes I took in college.


The Chemistry subreddit has a list of recommended books.

You can just look up some undergraduate chemistry course listings and follow the prerequisites to construct an order in which to work through them.


Then my favorite essay of programming is this ;) http://norvig.com/21-days.html

A list of courses is not enough, haha


>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.


True you are no programming god after these videos and courses, but neither are people with a cs bachelor degree. But then again they only had like 3-4 years ;).


Speaking of CS, apparently now it's important to know something about high dimensional spaces and their volumes. I have linked a PDF below. What part of math does it belong to? I am not sure pure Linear Algebra and Real Analysis deal with such problems? Could it be Measure Theory or Convex Geometry? I am looking for literature or at least the names of subsets of math that deal with such problems starting from the very beginning.

https://www.cs.cmu.edu/~venkatg/teaching/CStheory-infoage/ch...


You can find a link to the whole book here: https://www.cs.cmu.edu/~venkatg/teaching/CStheory-infoage/

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."

[0] https://www.cs.cmu.edu/~./15251/course-info.html

[1] https://www.cs.cmu.edu/~15451/


Looks like similar stuff from my calculus 3 class.


What's your answer to the last exercise?


I'm actually building something that's like reddit meets learning resources. Kudos on your release, best of luck!


The page doesn't load for me


Try waiting a minute. I have a decent Internet connection and page eventually loaded after a minute.


I'm not waiting more than 5 seconds for something to load sorry...


Loads after a while, even with a decent connection...


They seem to be missing a UI design/Human Factors/Usability course.

(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.)


Some other common undergrad topics that appear to be missing (although perhaps I'm just not seeing them):

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.


What...is with that UI? Between the cut-off titles and the mouseover image spinning, I left in less than 10 seconds. Here's a better, non-seizure inducing list: https://github.com/mvillaloboz/open-source-cs-degree


My favorite of these kind of sites: https://teachyourselfcs.com/


Yet another curriculum, basic org-mode page that focuses on functional/parallel and verification https://functionalcs.github.io/curriculum/


There is also this : https://learn-anything.xyz/computer-science

If you're into mind maps.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: