Marr’s levels of analysis

David Marr proposes that information processing systems can be understood at three separate levels:

  • computational, i.e. the fundamental task to be performed, the function to be computed or solved
  • algorithmic, i.e. abstract rules or procedures used to perform the task
  • implementation, i.e. how that algorithm is instantiated in the “physical hardware” or the implementation of the system.

In vision, for instance, we can characterize the computational problem (classify objects given a sequence of stimuli), algorithms (hierarchical layers of representations), and implementation (neural pathways, cones and rods).

It’s interesting to analogize these as lenses for thinking about Tools for thought. In my study of a Spaced repetition memory system, for example:

  • a computational analysis focuses on how human memory is actually stored and changed
  • an algorithmic analysis might discern that based on a computational theory of the Spacing effect and Retrieval practice, a spaced study schedule would be a good procedure for learning
  • an implementation analysis focuses on how that spaced study schedule should be instantiated, practically, in software systems


Marr, D. (1982), Vision: A Computational Approach, San Francisco, Freeman & Co.

A summary:

Last updated 2021-12-13.