Airline Madness

I love to fly, in the sense that I enjoy going up in an airplane, but I hate virtually everything else about airports and airlines. Most airports seem to have been designed by sadistic megalomaniacs who love human suffering. Their large open spaces give you the illusion that you can move about freely, but these are broken up with a multiplicity of pillars, dead-end corners, locked doors, and oddly-angled caverns filled with confusingly-labelled escalators, staircases, and elevators, with the result that herds of confused fellow passengers quickly knot up in the most inconvenient locations, causing you to have to thread your way through queues full of harried travellers with ten thousand pounds of luggage apiece in identical unlabelled black wheely-bags they mistakenly believe will fit in the overhead compartment of the passenger cabin.*

* Actually, most of them know the bags will not fit in the overhead compartment, but are bound and determined to bring them on board anyway, even if it delays the flight half an hour between arguments with the cabin crew and gate-checking the offending luggage. But I’m not bitter, or anything.

In principle, taking a trip on an airplane is simple. You purchase a ticket for a particular flight on a particular date and time, and arrive at the airport on that day, prior to the departure time of the flight. You let the airline know you’re there (“checking in”), give them any baggage you want them to lose for you, and board the plane. The plane takes off, and flies to another airport, where you disembark, collect your baggage, and get on with your life.

On the other hand, what really happens is something like this:

You arrive at SeaTac an hour and fifteen minutes before your flight is supposed to take off. That should be enough time for you to check one bag, get a boarding pass from the e-ticket machine, have breakfast, read the paper, buy a book to read on the airplane, and walk to the gate. But it’s not. Instead, you enter the terminal to discover that there is a line to get access to the check-in counters, and the line wraps around two corners out of sight. You get in line, and stand there for fifteen minutes until somebody from the airline comes out and tells you, in a tone of voice which suggests you are the stupidest of all stupid passengers, that this is not the line you should be in, this is for another flight, which was delayed, and for which passengers are being rebooked. You should be in this other line, and the fact that you didn’t know this is further evidence of your unsuitability for membership in the human race.

So, you get in the other line, and quickly get through to a ticketing computer. You put in your credit card, and the machine can’t figure out what flight you are supposed to be on. It prompts you for your e-ticket number, which you have carefully printed out ahead of time, and you key it in, taking great care not to screw up the digits. It still doesn’t find your flight. All the airline staff are highly trained at avoiding your attempt to get their attention, but you manage to get one anyway, and she disdainfully takes over operating the machine for you, obviously convinced that you are too stupid to live. Eventually, she asks you, “Where are you going to?” You tell her, and she informs you that this airline does not go to that destination. Triumphantly, you show her the printed receipt from the aforementioned airline’s web-site. She tells you that flight is run by another airline, and you have to check in with their people, you mouth-breathing imbecile.

So now you have wasted twenty-five minutes, and you still do not have your boarding passes.

You grab your bags and run through the crowd, ducking past a crowd of chattering women in saris and head-scarves, almost bowling over several yammering businessmen on cell-phones who are yawing and twisting like windsocks in the breeze. You overtake several wheezing and dawdling wheely-bag draggers who are idling their way toward the other end of the terminal, and you get into line for the airline that is actually serving your flight. A grey-haired Chinese man whose English is too thickly accented to be easily understood tags your bag, issues you boarding passes, and mumbles your gate number, which is fortunately also printed in black-and-white on the boarding pass. You have now wasted half an hour, and you aren’t even in line for the “security screening” yet. The Chinese man tells you you are the last passenger who will be admitted for this flight.

You run and get into the queue for security screening. This is a peculiar exercise by which Midwestern soccer moms are made to feel as if their right to drive an SUV is being duly protected by the Government. In principle, they want to make sure you’re not carrying any guns, knives, or bombs onto the airplane, which is a reasonable goal. In practise, they make you take off your shoes, empty your pockets, remove your coat, and walk through a metal detector. And then, out of nowhere, you are informed by a uniformed TSA agent that “you have been selected for special screening, follow me.” He makes it sound as if you have won a prize, but you soon discover that “special screening” means that, in addition to having your bag, coat, and shoes x-rayed, you get to have a random stranger with rubber gloves give you a “pat-down”, and then unpack your luggage and swab it down with round pads that look like acne swabs in case there is any explosive-residue in among your personal effects. You are now “secure,” but have lost another fifteen minutes waiting for your rubber-gloved pat-down behind three giggling teenage schoolgirls ahead of you in the queue.

You run again, following the signs for your gate number. The signs lead you down a long hall, around a corner, down two flights of escalators and more hallways, to a landing where you have to wait for a shuttle-train to take you to another terminal. It runs every four minutes, and you have just missed the last one. You wait, pacing, as the clock ticks away. The next train arrives, and you get on, pushing past more wheely-bag haulers diddling around in the doorway, since they have chosen this particular moment to make a sandwich and read a book to their howling children. The train arrives, and you slip out before more wheely-baggers can trip you up, and you belt your way up two long flights of escalators to the terminal, where they are so close to closing the jetway doors that you are the fifth-to-last person on board (and that only because some of the others were sitting around in the gate area eating sandwiches and reading to their howling children).

Fortunately, your flight arrives in Minneapolis without incident, and you have plenty of time to make your connexion. You spend most of the flight back to Manchester sleeping, and arrive without incident — and because you did not go through Chicago O’Hare, your baggage arrives too. Your partner’s flight is delayed in Washington D.C., but you are able to find an open wireless network to write a long and satisfying rant in your web log about how screwed up the air travel system is. At the end of it, you conclude that things could have been a lot worse; at least you did arrive on time, and your baggage was not sent to Perdition. But you still think the whole system shows evidence of having been designed by the Marquis de Sade.

I think I need some caffeine.

Expressiveness

I used to think that it was possible for people to take advantage of the full power of modern computing machinery without having to learn how to program. I no longer believe that this is true. I am now convinced that, in order for computers to be useful for the average citizen, to solve daily problems, it is the humans who must adapt, not just the user interface of the computer.

At first blush, this sounds like a dodge to let lazy programmers and designers off the hook for producing crummy user interfaces, and that’s certainly a problem in its own right. But I don’t believe that any amount of interface improvement will solve the more basic problem, which is that effective use of a computer requires at least some skill at programming. The user interfaces we typically employ to control our computers today are crufty, brittle, and not very expressive, outside of an extremely narrow range of application. They could be a lot better; however, I think the real limiting factor of nearly all existing software applications is that they deny the user complete control over the expressive power of the machine.

When you strip away all the aesthetic fol-de-rol of a computer’s user interface — such as windows, menus, icons, shell prompts, tab-completion, configuration files, environment variables, and cursors — the only thing all programs share in common is this: They each provide a language in which a human user can communicate his wishes and instructions to the machine. These languages are sometimes gestural (e.g., clicking and dragging visual objects with a mouse, joystick, or touchpad), and sometimes textual (e.g., typing commands as lines of text in an editor or a command shell), but whatever the modality, every program effectively provides a primitive language for talking about the computations that you can perform on certain types of data.

So, why should humans need to learn how to program? “Programming” the computer merely means giving a sequence of instructions in the computer’s own language, right? So, if every program’s interface defines such a language, isn’t using a program the same thing as writing a program in some sense?

Well, yes — but only up to a point.

The things you can instruct a typical application to do are simple and highly constrained. A typical application has a handful of menu commands, some leading to a few options in a dialog box; or perhaps some command-line options, a filename or two. I suppose you could call it programming to use such a thing, but you don’t really get the full power of the machine. The real power of a computer lies in the ability to capture patterns of computation — to pull out the common factors among the tedious parts of a job — and use the machine to churn them out over row after row of specifics. Few programs permit this kind of abstraction, and none (as far as I am aware) do so as part of their “regular” interface; they all expect you to learn an alternative “scripting language” or “macro language”, which often involves writing elaborate and arcane text files rather than using the ordinary interface. In other words, we’re back to programming again.

Incidentally, programming doesn’t have to involve arcane text files. For good (but mainly historical) reasons, most people think of a programming language as being some kind of abstruse grammatical dingus, but that ain’t necessarily so! A few programs, such as LabVIEW, attempt to give the programmer a more intuitive model for writing code using graphical controls to specify data and control flow relationships. Even the phrase writing code betrays our unholy worship of the almighty text file, though. It’s an unhealthy obsession, if you ask me; nothing about “programming” necessitates textual input. But this is all wide of the more general point, which is that some kind of programming is necessary if you want to do anything interesting with a computer.

The chief reason people can’t use a computer properly without programming is that computers can’t read minds. No great shock there. Short of creating artificial intelligence, however, no computer in the world is going to understand a command like “go fetch my e-mail and print out anything I haven’t read yet,” without a whole bunch of additional information, including things like:

  1. Who are you?
  2. Where is your e-mail stored?
  3. What protocol do I use to communicate with it?
  4. How do I prove I’m working on your behalf?
  5. What printer should I print to?
  6. How do you want your messages to be printed?
  7. What do I do if the printer is turned off?
  8. Do you want me to mark the messages as “read” when I’m done?

Once you provide all this stuff (and more), pretty much any home computer available today will let you say “fetch my e-mail and print out anything I haven’t read yet” in just a few keystrokes and mouse-clicks. But telling a computer all of these facts is a pretty big project in itself, and if anything changes unexpectedly, it won’t work. If you don’t believe me, just ask my parents. They have lots of experience with how sensitive computers are to change. Current technology is brittle as hell. In many cases, it’s cheaper just to hire a human to solve the problem.*

* That’s what my parents do, but don’t the rest of you get any ideas. Mom and Dad get a special deal on personal service, including house calls and panicked e-mails in the middle of the night. The rest of you could never afford my rates. If that sounds like insider trading, you’re probably on the right track. Mom and dad are excellent cooks.

Computers do not care what you want done, they only want to know how to proceed.** A clever programmer can make a machine appear to display initiative, but only minimally — just ask any Microsoft Office™ user who has been frustrated by “auto-correction” features and helpful hints from the Goddamned Paper Clip™ (“You appear to be writing a suicide note! Would you like help? We have a template for suicide notes…”). In order to make computers usable for non-programmers, software vendors provide a very limited set of simple commands and visual metaphors. So, a word processor makes it fairly easy to say, “grab all the words in a paragraph and set them to print in bold-face,” but it is much more difficult to express the message, “find every word whose first letter is capitalized, but which does not appear at the beginning of a sentence, convert it to lower-case, remove duplicates, and add them all to the index in alphabetical order.” All the tools are there — the ability to search for text, the ability to select words and change their characteristics, to copy and paste text, and so forth. But if you want to put them all together to do what I have just described, you either have to do it by hand, or you have to write a program in some different language,*** and that implies you know how to program.

** Never, ever anthropomorphize computers. They hate it when we do that.

*** Even if that language happens to be built-in to the software you’re already using.

People are afraid of learning to program, because it seems esoteric. We need to fix that. Using a “non-programmable” interface to a program is like trying to speak English with a vocabulary of two dozen baby words and no syntax besides simple imperative sentences. “Attach this graphic to that graphic.” “Erase this file.” “Copy this text to that location.” “See Spot go.” “Go, Spot, go!” You can get used to it, and you can get work done if you’re patient enough, but it’s pretty limiting. Don’t get me wrong — I’m not claiming life would improve if we got rid of those things. We still need easy ways to express simple tasks, after all! But as computers become more and more prevalent in the daily lives of Western civilization, an inability to program will soon become as debilitating as an inability to read and write. People who can’t program will soon be at the mercy of those who can.

With the current state of programming languages, I’m not surprised many people are scared by the notion of programming. Learning to program requires thinking algorithmically, and that is not at all an obvious or naturalistic mode of thought. Still, I think that with better tools and better designed programming languages, we can at least make a little headway toward giving people control over their own tools. Or at least, I hope so. Otherwise, we’re probably in for a whole new brand of “class warfare” between the Knows and the Know Nots. They hate it when we do that.

Evaluation

Over the past several years, I have spent a lot of time thinking about the idea of evaluation. The Oxford English Dictionary gives two definitions for this word:

  1. “The action of appraising or valuing (goods, etc.); a calculation or statement of value.”
  2. “The action of evaluating or determining the value of (a mathematical expression, a physical quantity, etc.), or of estimating the force of (probabilities, evidence, etc.)”

All of these meanings are relevant to my life. As a teacher, I am asked to evaluate the knowledge and accomplishments of my students with respect to the information I teach. As a student, my own knowledge and accomplishments, as well as my research progress, are evaluated by my instructors and advisors. As a researcher, I am called upon to review (i.e., evaluate) papers written by other researchers, and to estimate their effects upon my own research aims. And, of course, I am constantly evaluating my own progress, testing hypotheses, and trying to estimate just how much I can do with the few simple ideas I’ve come up with. As you can see, this word crops up in my life quite often.

One species of evaluation that is especially popular at universities is the so-called “course evaluation,” in which students are given the opportunity to give some feedback on the courses they’ve taken, and to offer comments on the quality of instruction, the availability of help with homework, the clarity of the course materials, and so forth. More often than not, a course evaluation is just a standardized questionnaire that the students fill out. For faculty who are pursuing the Questing Beast that is tenure — ever elusive, and damn those fewmets — the results of these questionnaires provide one axis of information about the quality of their teaching. When I first went away to college, that was about the only use for them, and traditionally, these data points were guarded fairly jealously. However, with the rapid growth of the Internet in the last decade, course evaluations have become a popular means for students to share information with their fellow students, about their own experiences with courses and faculty. There are even web sites where undergraduates can post information about their best-loved and most-loathed faculty members. Some schools, for instance Dartmouth College, even have their own student-run web-based course evaluation system, where each student can sign on, answer some questions, and post individual comments about the courses they’ve taken and the instructors they’ve had. Naturally, many faculty are concerned about this trend, and not just the lazy ones who hate teaching.

On the surface, moving course evaluations to the web seems like an obvious thing to do. No longer do faculty members have to squint to read somebody’s illegible handwriting to see whether it comes out to a compliment or not; nor does the student have to worry that the professor will recognize his handwriting and develop a grudge over some well-intentioned criticism.* Computerized data make it easy to generate longitudinal statistics, and collate the comments for a particular question or a particular course. What’s more, a student who misses class on the day the evaluations are given can still go back and do it from home — so you might expect the response rate to be higher — and they can think about it as long as they like, so you might expect the quality and insight of the comments to be improved. What could be better?

* Although students who write like this are still pretty easy to pick out. You know who you are.

Unfortunately, the reality is a lot more complex. I have now been involved in the deployment of three online course evaluation systems, two of which I implemented myself, and the third of which was a third-party system that I helped set up. From all of this experience, I can identify two obvious problems that arise immediately when you move from paper questionnaires to online forms:

  • Response rates for web evaluations are lower, not higher, than for in-class paper evaluations. Students who are captive in class will fill out an evaluation form, but once you let them get away, only a small percentage bother to go back and do it later.
  • With in-class evaluations, only students who actually took the course can fill out a questionnaire; on the web, anyone can, unless you limit access to those who have taken the course — but if you do that, the evaluations are no longer truly anonymous.

These problems are not easy to solve. Even with an in-class evaluation, only students who really liked or really hated the course will give you much in the way of comments; with online evaluations, this effect is even stronger. Once you have let the students out of your sight, you will have to bribe them if you want any meaningful responses (and even that may not be enough). Also, insuring that student comments are safely anonymous creates technological conflicts with equally reasonable goals of limiting access to only those students who actually took the course, and preventing individual students from submitting multiple responses (the latter would skew numerical results). There is no single obvious “good” way to resolve these conflicts; it’s a wicked problem.

Furthermore, there is a thorny question about who has access to the evaluation results. With in-class evaluations, the results are on paper, so it is easy to control who gets to look at them. An online system makes no such guarantees; a minor error in the configuration of a web server, or a bug in the evaluation system, and suddenly your results might start showing up as a hot topic on the search engines. This is not an especially comforting thought, for a lot of teachers. Their discomfort is not because they have something to hide (usually) — but because of the Greater Internet Fuckwad Theory, which is a nice compact way of summarizing the following observation:

With high probability, a person who is otherwise polite and rational will say the most outrageous, rude, hyperbolic, and unwarranted things when provided an opportunity to communicate with an audience from a position of total anonymity.

Since the social and professional advancement of a teacher depends greatly upon matters like reputation, a malicious student or even an underhanded competing faculty member could easily cause a lot of trouble for a teacher, if both the writers and the readers of course evaluations are not carefully regulated. Similarly, a teacher could easily have an enormous impact on the future prospects of a student, on the same basis. Just as a teacher should not be able to threaten students with a bad grade for a negative evaluation (or, for that matter, to reward a good evaluation with a good grade), a student should not be able to threaten a teacher with a bad evaluation (or reward him with a good evaluation). At the same time, I think students have a right to share their experiences with each other, and teachers who perform poorly should not be allowed to hide out behind these concerns to the detriment of quality!

Of course, in the overwhelming majority of cases, this is simply not an issue — but because the individual cost of a mistake is so high, I think it’s reasonable for us to examine it closely.

How do we deal with this? I’ve come up with some solutions to the technical issues, which I happen to think are fairly clever, but technical solutions are no help with the deeper philosophical questions I’ve mentioned here. In the long run, I think it is necessary for students and teachers to have a clear dialogue with each other about the process of evaluation, and to be willing to adjust to each other’s needs. After all, the whole point of this education nonsense is to help younger people benefit from the knowledge and experience of older people, and that can only work if we’re all co-operating to some degree.

Next Page »