From mechanistic to environmental learning

An attempt to put my views and main references on learning in ~1 page.

My journey into learning technology started with spaced repetition systems (SRS), particularly Anki. I used it for Chinese, but my inclination was to take this approach to learning to the extreme, to every subject. Optimistically, SRS could be the operating system for learning. Every possible input you wished to learn could be converted into cards, then, voilà, every action for retaining your knowledge will be scheduled and presented to you from the system. Indeed my first learning technology project, Learnstream, was a tool for extracting SRS cards from text and video documents. I also just recently reviewed a friend’s book, Learning Medicine, that promotes this strategy for medical students.

There’s a problem though: the complete picture of learning is not at all described by the forgetting curve upon which spaced repetition systems are built. Consider the dependency of knowledge: reviewing a fact about multiplication (23*42=966) necessarily reviews facts about addition (920+46=966). My time at Carnegie Mellon was exactly what I needed to introduce me to more robust theories of learning and attempts at intelligent tutoring beyond SRS. For example, the Knowledge-Learning-Instruction framework characterizes the kind of knowledge that might work best for SRS, paired associates, contrasting that with other kinds of knowledge (however see my Quora answer for Does spaced repetition work equally well for analytical and factual information?).

I realized that a complete mechanistic model isn’t coming any time soon. And that there are even drawbacks in the attempt to capture that model (see Seeing Like a State, Rendering Learners Legible).

Abandoning the notion that SRS needs a perfect model of memory, I came to think of SRS as creating an environment for learning (blog post: Spaced repetition in natural and artificial learning). Simply put, that environment is a big improvement over Facebook or whatever your default computer addiction is. (Later, however, I wrote about the limitations of SRS as a user interface in Designing learning systems with spaced repetition.)

Alan Kay uses the term environmental learning (“User Interface: A Personal View” (pdf)), invoking some of my favorite authors, Suzuki (Nurtured by Love) and Gallwey (Inner Game of Tennis) — tragically I still haven’t read Montessori. When we step back to think of enabling learning through construction of an environment, we can do much better than SRS. In Getting Beyond Massively Lousy Online Courses I wrote about how games like Portal inspire learning with environmental affordances (a term from The Ecological Approach to Visual Perception) — requiring minimal or no adaptivity. Computer environments for learning have been explored since the 60s starting with Papert (Mindstorms) and continuing today in Bret Victor‘s work, e.g. Learnable Programming.

Unfortunately in this one-page space I don’t think I’m going to get toward describing a full solution, only discrediting a few that some find promising. But let me try to put the challenge in a way that I hope is as stimulating to you as it is to me, while referencing some more of the authors that have guided me:

A math teacher starts her class, day one, with an exciting world of mathematics in her head (for exciting+technical see Dan MeyerLockhart’s LamentSurely You’re Joking Mr. Feynman, Yudkowsky, Gödel Escher Bach): an equation for a parabola describes an infinite wave, she changes the tides with a simple parameter, and she can ride the wave on a tangent surfboard just by taking the derivative. Her students, sitting in rows of desks, see only…her and an empty chalkboard. Slowly she will reveal this environment, using tools like storytelling, visualization, and interactive affordances (along with Papert/Montessori, see Bruner’s modes of learning in Toward a Theory of Instruction, Understanding Comics, Edward Tufte), which promote cognitive mechanisms of perceptual representation and analogy (Vygotsky, Douglas Hofstadter, Dedre Gentner, Michelene Chi, Origin of Concepts). She’ll need to do it in a way that motivates her students to explore that world with her — without it becoming a game of avoiding negative judgment (see Impro and How Children Fail for examples and counterexamples — for me the two most important books about learning — also Tao Te Ching). The students must also engage in repeated practice in order to use the tools of mathematics fluently (Zen in the Art of ArcheryArt of Learning, Ericsson/Outliers/Talent Code/Talent is Overrated, Bruce Lee).

Now imagine the teacher is a computer, the students are mathematicians, and the lesson is on a mathematical discovery not by a human but by said computer/teacher. That’s a peek at my endgame (blog post: Knowledge science = data science + learning science).

  • stockninja

    “Simply put, that environment is a big improvement over Facebook or whatever your default computer addiction is.”

    The problem for me is that I can never make Anki that compelling. It’s fun for a few days, but it always becomes a chore. It does make a fine environment for learning Chinese — since the alternative is something more chore-like such as flashcards.

    For programming, however, I’m never disciplined enough to consistently use it since the alternative is just not using it!

    Personally, I prefer GitHub as an environment for learning. For personal projects, I don’t really use git for version control anymore. It’s part incentive system (love filling in the heatmap), part department store (as a catalogue of diverse, semi-complete projects that I can choose between depending on my mood), and part museum/gallery from which I can draw inspiration.

    What are your thoughts on GitHub as a learning environment?

  • Ryan Muller

    Great point — Anki doesn’t even count as an environment if you aren’t showing up.

    As someone who works in GitHub all day, it certainly does count as an environment. Code review on GH (especially being contextual via in-line comments) has been a big source of learning for me.

    Very interesting that you use the “reflective” parts of GitHub. I used to have a major agenda toward increasing reflection opportunities in learning. Lately, I haven’t, but that could just be that I haven’t been doing that much to really reflect on. I’m at a point where I need a lot of direct guidance on “where to next?” as opposed to “how am I going?” (

    For that part I don’t think it’s necessarily up to GitHub but rather programming itself to be more learnable. Bret Victor paints a very compelling sketch on that topic: I’d add that we can also make advances in letting programmers see architecture of large programs. Our sense of visible architecture is almost entirely based on how code is distributed to files and folders, and even that is usually not done very well (