Program (2mb PDF)

  Invited Speakers
  Research Papers
  Student Research Comp.
  Doctoral Symposium
  Educators' Symposium
  Wiki Symposium
  Dynamic Lang. Symp.
  Practitioner Reports
  Lightning Talks
  Instant Arts School Exp.
Other Events
Resort Map (364kb PDF)
Resort Map (JPG)



view, help

"What is the least understood thing in computing that if only it were understood, everything would change?"




  > Onward! > Breakthrough Ideas

What is the least understood thing in computing that if only it were understood, everything would change?

Glen Vanderburg, Countrywide Home Loans

We have a mania for abstraction, but our brains are optimized for the concrete. We are trained to abstract, to generalize. Butler Lampson famously said "All problems in Computer Science can be solved by another level of indirection." The drive for abstraction isn't wrong; it's an essential part of software development. But we generally do it so irregularly and so poorly, and one reason is that abstraction is somewhat unnatural for us.

We learn best when we can hear, taste, smell, and (especially) touch and manipulate the world. The best programmers are good at a kind of "mental modeling" that allows them to do the same with the abstract components of our field. A good spatial sense and visualization seems to accompany software skill. We need to find better ways to bring the rest of our brains?the parts that are designed for life in the real world--to bear on the problems of programming. We need to build better tools, tools that don?t lock these complex, multidimensional constructs into oversimplified, two-dimensional representations. More importantly, we need to teach and cultivate those mental mapping and modeling skills that the great programmers use instinctively, independent of their tools. We need to program with our whole selves, not just the tiny parts of our brain that are good at abstraction.