Archive for the ‘Design’ Category

Abstraction and Standardization

What is the future of art? What media will it use? Computers, obviously. Information technology is very good at imitating old media: drawing programs, music programs, word processors designed for playwrights or authors. But none of these tap into the intrinsic strengths of the computer, able to do something no other medium can: simulate. Bret Victor, the man so demanding of user interfaces he left Apple, is dissatisfied with the tools available to artists that allow them to simulate. So he made his own, and gave a one-hour talk on it.

Those interested should definitely take the time to watch it, but to summarize, he demonstrates the power of simulation in creating art that is part animation and part performance, with the human and computer reacting to one another. He then lifts the curtain and show us the tools he used to simulate the characters in the scene, and it’s not code. Instead, it’s a drawing program, with lines and shapes, that he uses to define behavior. Code, he points out, is based on algebra, but his system is based on geometry. Finally, he concludes with a short performance that he built with these tools. Higher is the story of earth, from the stars to cells to civilization to space travel back to the stars.

What blew my mind about Higher is that a few years ago, I had independently created a short film on exactly that topic, with exactly the same background music (Kyle Gabler’s Best Of Times from World of Goo). Victor’s piece was far more polished, but we had both been inspired by the same music to express the same idea, the journey of life to the stars. Remember when I complained about not finding people who shared my narrative? So this is what that feels like.

What drove Victor to create his tools was the belief that art is an attempt to communicate that which cannot be put into words. By binding simulation to lingual code, we make it inaccessible and unsuitable for art and artists. Direct manipulation of the art, which is how art has been created going back to cave paintings, allows the artist to interact with and lend emotion to the art in ways not possible through code’s layer of indirection, of abstraction.

The reason artists’ needs have been neglected by developers is that, for the rest of the world, code works just fine. As I’ve previously blogged, language is one of humankind’s most powerful inventions. The direct manipulation that is liberating to the artist is confining to the engineer. Language is how we manage many layers of abstraction at once; without it we are reduced to pointing and grunting. It’s harder to communicate with a computer in code than a well-designed direct manipulation interface, but code is more powerful. In the sciences, a good result is consistent with what is already known; in art, a good piece is unexpected and shakes our established worldview. More fundamentally, the sciences observe and record some objective outside truth; art looks inward to offer one of many interpretations of the subjective human experience.

This tension that we see between science and art also shows up in schools. In a recent TED talk, Sir Ken Robinson extols diversity as a fundamental human trait, which schools attempt to erase and replace with standardization. We agree that standardization has its place, but I personally think he downplays its importance. Standardization is writing, is language; those things can’t happen without common ways of thinking. At first, children need to explore concepts and use their own terms, without a top-down lesson plan imposed by school administrators. Nevertheless, the capstone is always learning what the rest of the world calls it. That isn’t smashing creativity, but rather empowering the child to learn more about the topic from others and from reference sources. It’s creating a minimum level of knowledge common every adult member of society, which is assumed by all media. Being able to communicate  facts with others isn’t just the result of education, it’s what makes education possible in the first place. With language, groups of people can unambiguously refer to things not present, a shared imagination. Verbalization is a form of abstraction.

Let’s get back to the role of diversity in school. Students should be able to explore what interests them, but the converse is not true: some topics must be taught to everyone, even if some people do not find them interesting. This is especially true before high school. I know you’re not passionate about fractions, Little Johnny, but you need to learn them. Society expects everyone to have a minimum level of competence in every subject. Additionally, passion for a field isn’t always “love at first sight”. The future mathematician isn’t always the first in the class to get basic arithmetic.

Although the curriculum needs to be largely standardized, the pedagogy does not. The neglect of diversity in schools is most heavily felt not in what kids are or are not learning, but how they are learning it. The inflexibility imposed on lesson plans is degrading to teachers and failing our kids. Teachers should be trusted to adapt lessons to their class, and empowered with testing results they find useful, early enough to use it. Standardized testing as it exists today does not fit the bill. Every student needs to achieve the same core competencies, but the paths to doing so will be as diverse as the children themselves. A broad exposure to both methods and topics promotes the development not just of knowledge, but of personality and identity. The reason to have art in school isn’t to improve test scores but because it’s part of being human.

To be more precise, we should distinguish between “the arts” and “art”. The arts are how to create with the media classically used for art: paint, music, poetry, drama, dance, and so on. Like any other discipline, the arts require a standardized language to record and transfer this knowledge. Sometimes it’s plain English, sometimes it’s jargon, sometimes it’s symbols, but it’s still an agreed-upon abstraction. Diversity of ideas expressed in the language is inventive and healthy; diversity of the language itself is nonstandard and chaotic. With this in mind, the arts take their place at one end of a spectrum of knowledge: mathematics, natural science, social science, and history. And the arts.

But art is something entirely different. It is the personal and emotional perception of an experience that communicates without words. Art is direct and concrete; it is subjective and sublime. Much of the arts attempt to create art. Victor’s tools advance the arts; what he creates with them is art.

It’s a defensible position to say that art, because it does not rely on language as all the other fields of knowledge do, is not knowledge at all. But I’ll indulge Victor and say that not all knowledge can be verbalized. That doesn’t mean that art is beyond classification; Victor and I saw the same artistic ideas in the same piece of lyricless music. Conversely, just because something is written down doesn’t mean it’s standardized or useful knowledge. Recently, the mathematics community has been bewildered by an inscrutable set of papers which claim to prove a fundamental piece of number theory. No one can decipher them to tell if the proof is valid, and their author has not been forthcoming with an oral explanation. So in extreme cases, the analogy between language and standardization breaks down. The wordless expression is more coherent than words.

For all the knowledge that abstract language has brought us, ineffable art remains part of the human experience. It is important for our children to learn about art to become mature and thoughtful adults. It is equally important for us to provide tools that support the nonverbal side of thought, to engage the visual and auditory parts of our brains in ways words never can. These are the same failure: the refuge in abstraction, the desire to have everything neat and orderly and predictable. Art exists to explore ambiguity and paradox; it does not demand simple answers but asks complex questions.

A lot of futurists imagine a time when technology makes everything easy. There is a faith in technological convergence, where everything speaks the same language and interacts intelligently and flawlessly. But historically we see technologies become incompatible. If there’s an open standard underneath, such as email, you still get dozens of providers and clients; and if there’s not, you get the walled gardens of social media, loosely tied together by third-party “integration”. What’s important to realize is that the path of technology is not fixed. Our gadgets don’t have to make us more productive and connected; they can make us more artistic and provide privacy, if we design them so. We should stop aspiring to a monoculture of technology because, not only will it not happen for technical and economic reasons, it shouldn’t happen. Standardized technology leads to standardized thinking, especially when coupled with standardized social institutions. Creativity is  not only what drives technology further, but art and humanity as well.

Automated Grading Done Right

The Khan Academy dashboard is meant to provide students and teachers with information that can help them target where a student is struggling, and improve. Unfortunately, the data given isn’t what’s useful to teachers, just what’s easy for computers to measure. These metrics include time spent watching and rewinding videos, time spent on different topics (broken up by videos and quizzes), and proficiency levels in exercises. But as one of the teachers I follow on Twitter points out, these programs don’t let him “SEE my students’ work so I can know HOW/WHY they got questions wrong.”

Mathmistakes.org attempts to counteract that. Math teachers send in anonymized samples of student errors that they find telling, common, or inscrutable. Teachers comment as to what they think the student is not understanding and how to fix it. In the process, newer teachers get to see the thought process of their more experienced colleagues. There are patterns to these mistakes, so can a computer be programmed to recognize them?

The most obvious example, which I doubt I’m the first to come up with, is to anticipate patterns of wrong answers. Let’s say you’re testing a physics problem where students need to plug values into an equation. (Yes, this is a naive view of physics but go with it.) Have experienced teachers compile patterns of mistakes students are likely to make: forget to square something, leave off the constant, divide instead of multiply, use a different formula, and so forth. Then the grading software picks new values to plug into the formula, and calculates all the wrong answers for these values (picking numbers so that none of the wrong answer patterns lead to the same numeric answer). Then, if the student gives any of the anticipated wrong answers, the program knows exactly what mistake the student made and can correct them. Hopefully finding a mechanistic error will provide the human teacher with a window into finding and fixing a qualitative misconception.

Let’s take a more complex, real-world example. In some computer science classes at Tufts, the programs written for homework are subjected to a battery of tests, written by both the professor and the students (and their predecessors). In one case, the assignment is to create a programming language interpreter that determines the “type” of pieces of code. For example, it needs to know that true is a boolean, 7 is an integer, and asking if true equals 7 is an error. To clarify, there’s the code the students write (called an interpreter) and then the code that it tries to type, as a test. An interpreter can fail in a number of ways: it can find the wrong type, find a type when it should raise an error, raise and error when it should find a type, stop unexpectedly with an exception, or never stop at all.

I know that’s a bit much to wrap your head around, but (1) that’s the sort of complexity we’re up against and (2) it’s not just an example, it’s a case study. I have a visualization for this data already made, as a class project. My group wanted to take this data and provide actionable reccomendations for the professor, to be able to say, “you’re not handling this properly” or “you don’t understand this very specific detail”. So we hand-built an automated classifier using what we knew about the errors. Here’s part of the visualization we came up with.

Circle errors

The size of each circle represents the number of students who failed at least one test with that error. The vertical position of the circle corresponds to the average number of tests passed by the students who got that error. Colors encode categories, and the horizontal spread means nothing (just a way to prevent overlap). Click on a circle and you’ll get:

Error bars by student

Each bar is a student, identified by an anonymized hash. Their errors are grouped together, with the taller bars being the error we have selected. On the real thing (not these images), you can click on any other bar to jump to that error. Hover over the bar and move around to show each of the tests failed with that error below the circles. This highly-specific information allows the user to look at the individual tests and hypothesize the underlying cause of the error.

You can play with the interactive visualization online here.

Education isn’t a no-computers-allowed clubhouse, but software developers are must be smarter about how we approach these tools. Programmers need to work with educators and fill their needs, not just offer up whatever statistics are easy for them to collect. We have powerful tools like machine learning and visualizations, and teachers with decades of experience. We can make useful automated systems, if we stop acting as if it’s a trivial job.

And yet… all of this takes the views education as a series of questions with right and wrong answers. This is largely true in the STEM fields and even in the humanities, but not in the arts. There really is no good way to automate grading of the arts (or to grade the arts, for that matter). We need to nurture our future artists, but more importantly, we need to teach the skills necessary to appreciate the arts, and to dabble in them. As part of the human condition, we all find ourselves with emotions and ideas that we need to express, through music, painting, or writing (writes the blogger). The fact that very few people will appreciate these works is fine; what matters is the catharsis they give to their creator. That’s something no machine could ever understand.

Beyond Agency: Why Good Ideas Only Take Us So Far

In a previous post, This is You: Agency in Education, I argued that we need to create educational software that, through extremely limited tools, forced its users to think in new and powerful ways. I used the term agency to refer to having an avatar (or agent) in a larger system with which one can identify. I’m sure educators have another word for this concept, which I will happily adopt just as soon as I find out what it is. I presented agency as one deliberately limited tool that can be used to focus thought. I also held up the video game Osmos as an example of how to use agency in compelling ways.

This time, I will present another video game as an example of taking agency too far: Spore. The highly-anticipated and much delayed 2008 title lets players evolve from a single cell into a space-faring civilization. The cell stage is the epitome of agency: the player’s cell is all they can control as they battle for survival in the primordial soup. Later, on land, the lines are blurred as players recruit other creatures to their posse and eventually control a planet-scale civilization with fleets and cities. So far, it’s set up to start with agency and gradually wean the player off of it into abstract, non-localized thinking.

But then the space stage starts. Instead of setting dials on dozens of colonies, establishing trade routes without worrying about the individual freighters, or sending fleets of identical ships into battle, the player controls a single spaceship flying around the galaxy. It’s impossible to wage a war or build colonies when existing colonies, and those of the player’s alien allies, need to be babysat and they’re half a galaxy away. The player should be Emperor Palpatine but instead they’re Captain Kirk.

What makes Spore so tragically flawed is not only does it fail to give players the controls they need, but it spends the bulk of the game teaching the player the cognitive skills to use the absent controls. Spore‘s galaxy of half a million planets is created using advanced procedural generation algorithms, but the game doesn’t offer its players so much as an if-statement. In this way, Spore is the opposite of most bad education: it provides a guided learning curve but no expectation or way to apply what was learned. Much of the learn-to-code movement provides plenty of tools, even innovative tools, but instructing their use is an afterthought. Neither of these symmetrical mistakes makes for a good user experience.

What Spore does right, up until liftoff, is to start with agency and move away from it. Agency is actually not a powerful idea at all; it’s too weak to support the space stage. Agency is a natural idea, one that is easy to adopt based on our physical bodies and evolutionary wiring. It’s a way to get comfortable with advanced concepts but it’s also really crippling when you want to apply those concepts. We need to find ways to provide learners of all ages with tools that are easy to learn and powerful — and rarely will the same tool be both.

The Anti-Mac User Interface

I came across this 1996 paper that, as a thought experiment, took the principles of Macintosh user interface design and inverts them, just to see what would happen. For example, by accepting the Mac’s point-and-click interface, “it’s as if we have thrown away a million years of evolution, lost our facility with expressive language, and been reduced to pointing at objects in the immediate environment. Mouse buttons and modifier keys give us a vocabulary equivalent to a few different grunts.” They go on the show that metaphors can be crippling, direct manipulation can be tedious, consistency can be boring, and stability can be unhelpful. We expect our computers to stand still and not touch anything for fear of confusing us or breaking something, a relationship that paints the computer as an incompetent servant and the human as a weak-minded control freak.

What if your computer was actively helpful? What it it opened your mail every morning, and your webcomics only on MWF when they update? What if it cleaned off the 30 items on your desktop and put them into the right folders, and then changed the desktop picture to something it knows you like? This sort of user experience is extremely difficult to do well; it may even be AI-complete.

Nevertheless I feel that as computers become more prevalent and more capable our relationship with them needs to change. In 40 years nearly everyone will be a “digital native”, and this can be either a blessing or a curse. If we are locked into the interaction paradigms of our immigrant parents, we will be crippled by them forever. But we will reap benefits if we can raise a generation capable of enjoying lingual, contextualized, and diverse computing experiences.

What’s most interesting though is that the authors identify many of the user experiences seen today, more than a decade and a half later, on Linux (primarily) and Mac (ironically). Users encounter the desktop metaphor still, although with third-party apps creating some different experiences and branding. In the browser, the idea of contextualized locations is manifest, and it reflects reality. Different web pages look different because they are made by different people, much in the same way people have houses of different sizes, cleanliness, and decor. Far from having a single word processor interface, we deal with several on a daily basis, both in and out of the cloud. WordPress looks different from Gmail, which looks different from MS Word, which behaves very differently compared to vim. That’s okay, because they each have their own flavor and slightly different use case. Finally, the command line is resurgent, with new interest in programming, its tight integration with Linux, and the ubiquity of search bars. The command line is lingual, promoting automation and semantic meaning. Today’s user is presented with an arrangement of user interfaces, each tailored to a specific need, which in turn places requirements on the user. Or is it the other way around: our computers are “optimized for the category of users and data that we believe will be dominant in the future: people with extensive computer experience who want to manipulate huge numbers of complex information objects while being connected to a network shared by immense numbers of other users and computers.” Sounds like 2012 to me.

Operating in this diverse computing environment requires a large amount of cognitive work. We need to bring children through the evolution of language and thought quickly, teaching them to understand hierarchies, modularities, and contexts, the differences that characterize computing today. This will take time. The authors write that “it would not be unreasonable to expect a person to spend several years learning to communicate with computers, just as we now expect children to spend 20 years mastering their native language.” We should teach computers using computers. It’s time to use technology to strengthen and organize human thought. In order to do this, we need a new generation of educational technologies that not only do a better job teaching about math or history but also teach about thinking itself. Working a computer is a puzzle, and it can take years of practice. We need a way to simulate these nested challenges, and to promote the structured ways of thinking that solve them.

Follow

Get every new post delivered to your Inbox.