I'm just preparing the exercises for a lecture on human-computer interaction (HCI) and therefore read Donald Norman's book The Design of Everyday Things. I then noticed, that usability is rarely a topic in high school computer science classes (actually, it even isn't in colleges, but this shall not be our concern here) in Switzerland. Although programming is the main part of computer science education on this level, usability is hardly ever mentioned, interface design (and so on) is just seen as a by-product of the programming process (actually it's worse, teachers will think, students are just able to design an interface and usually don't point out bad or good design). There are some known disadvantages to today's computer science education. First of all, it doesn't appeal to women (I won't discuss possible reasons here, this is just an empirical observation). Secondly, people who are learning to program are expected to build mental models of the software they're programming (this is understanding algorithmics, design patterns as well as "the big picture", i.e. what the software is to do eventually) at the same time they're usually struggling with syntax and standard libraries.
I think some of the troubles mentioned above stem from the fact, that we still consider programming as something "mechanical", we don't see it as an art that produces stuff that should make people's life easier. So what is my suggestion? Instead of teaching programming try to teach human-computer interaction and include programming as a necessary aspect of this (and don't begin with programming, begin with the behavioral parts!). What could this look like? Well, just take a good HCI book and teach as much as possible of it: how does the human mind work, how do humans behave, lots of examples of good and bad design and also explanations why something is good or bad and so on. Let them draw pictures of user interfaces, let them build mental models of software, etc. And only then teach them a programming language and make them able to realize their designs.
What do I expect from this? As my knowledge of didactics is actually rather humble, I must advise you, that this is all on your own risk (so don't blame me, if it doesn't work), but I think, we might achieve the following things: First of all we might make computer science more appealing to women, as we can show, that it has many aspects of behavioral sciences and its final aim is to produce useful things and make people happy. Secondly, we might also reduce the difficulties mentioned above, when learning to program as the two aspects are separated (architects also don't design houses by putting bricks on top of each other!). But wait, there are even more advantages: Teaching HCI is fun, you can do lots of interesting experiments about human behavior and almost every object (even doors and faucets) turn into subjects of investigation. I also think this approach might lead to very good results in metacognition which is one of the central facets of teaching. So, what do you think about this? (Perhaps it has already been tried or done, in the end it isn't such a revolutionary idea).
The reading of Norman's book also taught me an important lesson for teaching software uses: When something doesn't work or something goes wrong, blame the software (actually, blame the software's poor design). I think it is essential to tell people (even if it is only course on writing letters in Word or something) that most of the time something goes wrong, they're not to blame, but poor design of software. We might even try to teach people to reconsider their mental models of the software (or why a software might have led to a wrong mental model in case of problems). By doing so we help people to solve problems themselves and we can take away the fear of using certain software products.
Subscribe to:
Post Comments (Atom)
2 comments:
Interesting post. A couple remarks:
1) Computer science at high school level is market driven. The market wants programmers (or people with Microsoft Office skills on a lower level), not HCI experts, so students learn how to indent text in Word and how to write simple programs in Java.
2) As sad as it is, HCI is probably the most successful way to get women into programming. For some reason our society still believes that women are better at social and men at technical tasks.
3) I never met anybody who is a brilliant programmer and a brilliant HCI expert. At some point, one needs to decide on one field to focus on while keeping an open mind for the other.
4) Different mindsets between programmers and HCI experts are no problem as long as they respect each other. To do this, the HCI experts needs to have a grasp of the resources it takes a programmer to implement a certain idea. The programmer on the other hand needs to understand that he/she can do whatever they want as long as the front end looks the way the HCI expert wants it to look like.
5) Teaching HCI at high school level would increase awareness on the matter and potentially see HCI experts get involved at an early stage of a product. It's cheaper to design first and program later - once product managers generally adopt this strategy, they'll have lower development costs and higher customer satisfaction.
Hi Parci,
thank you very much for your comments, here are some replies:
1) I know that there's not much market demand for HCI experts (although some thoughtful businessmen one day recognize that HCI actually might be a cost-saving factor), but the aim is not to produce HCI experts but to give computer science students some sound knowledge and awareness of this field (which - in my opinion - is better than nothing).
2) I know this problem, I'm never sure whether I'm doing something sexist, when using such arguments, but I was also taught that this is just the way it is (although nobody actually has a satisfactory explanation for why this is so).
3) see 1)
4) I disagree on this. I fear that major usability problems occur when the designer's mental model and the programmer's mental model are different (you might consider the fridge example in Norman's book).
5) I completely agree on this, let's spread our ideas and make world a better place to live!
Post a Comment