13
Feb
08

Software Design: Learning and Teaching
Andre and I just finished our submission to FSE, a paper about software design. We are also working on his undergraduate software design class, which is going well. All our theories are pretty involved these days, so it is a useful exercise to try to make them digestible to students who have had little previous exposure to software engineering.

Oftentimes, when I am thinking about design (not necessarily software design, mind you), I get thinking about education. I have always had an interest in education, but I am starting to think there is more to it. That maybe there is an interesting connection between design and education, besides the overlap in my interests. Consider that design is a matter of idea generating, of information gathering and of decision making. It is a matter of figuring out the solution, and then recording it in a way that will tell others what to do to produce the final product. It is the planning, rather than the doing.

In many ways, design is all about learning and teaching. The designer is a student. He learns about the situation, from books, from clients, from other designers, from experiments with the materials, from simulations of possible solutions.

In other ways, the designer is a teacher. During the design process, intermediate ideas must be conveyed to others. A head designer needs to instruct his team, creating a consistent vision. This might be achieved via exacting constraints, vague guidelines or an aesthetically motivated vision.

And once a design vision is fleshed out, the knowledge must be gathered into some representation that will tell an implementer or manufacturer how to enact the planned solution. In some sense, the implementer must be taught how to build the designed object.

There are several questions, then, that underlie both design and education. For example:
- How do people learn about unfamiliar situations?
- How can we make complex ideas understandable?
- What are the best representations for conveying different kinds of information?
- How do leverage what our audience already knows to support our explanations and representations?

These sort of questions are interesting to me. They are challenging and will never fully be answered, and yet progress always seems tantalizingly close.

In a final personal note, one other thing that appeals to me about these subjects is the “teach a man to fish” factor. I dislike the idea of my main contribution to the world being a specific tool or algorithm or approach. Rather, I want to provide designers with an understanding of how they work, to provide researchers with a framework in which to explore, or to provide students with the understanding they need to do whatever it is they have planned for themselves.

I fear that I use this angle as a safety net against failure; a tool can be useless, but its hard to prove that in idea is without merit. But also think it is just a sound way to approach things. People, especially in computer science, are wrapped up in exacting solutions that will fix a problem. But many of the most important problems out there, especially those of design and education, are made up of myriad unique instances that defy sweeping solutions. If a single research contribution hopes to help, it will need to reach and teach the designers and educators out there and give them help they can apply, flexibly and creatively, to their own unique situations.

Its this guiding-and-constraining-while-allowing-for-personal-choice balance that is key to this approach. Its also at the heart of game design, now that I think of it, but I’ll have to get to that another time.


Discl0sure


Page copy protected against web site content infringement by Copyscape

 

January 2009
M T W T F S S
« Dec    
 1234
567891011
12131415161718
19202122232425
262728293031