Note: I am a MOOC enthusiast and have no affiliation with any MOOC platform.
In late 2011, three novel online computer science education platforms arose: ai-class taught by Profs. Sebastian Thrun and Peter Norvig, ml-class taught by Prof. Andrew Ng, and db-class taught by Prof. Jennifer Widom. They were novel because unlike previous iterations of “open source” classrooms (including MIT OCW, Ars Digita University, Khan Academy, etc.), these platforms were built to be interactive for large online audiences. The first project ai-class became KnowLabs/Udacity and the remaining two became Coursera. Soon after, the term MOOC (massive open online course) caught on and we are undergoing something like a revolution in this world.
In late 2011/early 2012, having experienced the first generation pilots of Udacity and Coursera as a student, I brainstormed some ideas into a “pitch.” None of these ideas are new and surely many organizations were thinking similarly. However, not all of these ideas have been completely realized, IMHO. That’s partly why I am posting a heavily edited version of that “pitch” of brainstorming ideas here.
Note that I wrote the following document in early 2012 when KnowLabs and Coursera were only starting to take off (edX and friends were nonexistent). Some bits may seem trivial or outdated.
Below are some ideas to pursue in open source online science education. I will generally focus on online dissemination of computer science knowledge, but nearly every discipline can work.
Learning modules as nodes of a graph
Suppose all the learning modules were nodes of a massive directed acyclic graph. The most fundamental topics of any given subject are the starting nodes and the student follows a “path” (not strictly in a graph sense) into more advanced topics. Each edge module A—module B of this graph denotes “A is a suggested prerequisite of B.” There may be alternative “paths” (i.e. alternative sets of prerequisites) leading into the same module. This facilitates more student-driven learning options. The starting nodes can include topics as simple as “Finite state machines”, “What is binary?”, or “Introduction to circuits” and the more advanced nodes can be at the cutting edge of research in machine learning or robotics or any other area. I imagine that large subgraphs of this DAG can represent traditional college courses: Computer Architecture, Introduction to Algorithms, Complexity Theory, Computability Theory, Neural Networks, Graph Theory, Databases, Entrepreneurship, etc. There will certainly be overlap, as all subjects overlap, but completing all the learning modules in any of these subgraphs should be equivalent to completing a CS/EE XXX course at a university.
Short, sweet, modern, and mobile
Lessons are populated by a collaborative social network like a wiki. Currently, most online education projects recruit academics to produce the content while the students have no direct impact. Assuming that teaching is the best form of learning, perhaps students can be encouraged to help create the learning modules. This provides a way to constantly evolve the content and expand it much faster than is possibly by a small group of experts. I think Wikibooks is a semi-successful attempt at this, but I think that they are very limited by their platform (which encourages no interactivity with the reader).
Content selection and philosophy of engaging students