The writers of Knight Rider love us. Better yet, they are us. In last night's Halloween episode, Zoe showed up in a Claire Bennet costume (Heroes' famed cheerleader), and Billy comes dressed as Capt. Jack Harkness of Dr. Who and Torchwood fame. We also got some love from the producers with the initiation of a multi-episode story arc (perhaps a product of the fact that Knight Rider has been picked up for the full season). Around half way through the episode we learn that KITT has been programmed with a self-destruct mechanism by his creator, Dr. Charles Graiman, so there would be a failsafe against KITT going bad. Graiman is familiar with cyborgs gone wild, because he made a KITT prototype named KARR (who is not, as it happens, a car) with the capability to self-program. KARR's evolution as a learning machine apparently led him to cause the deaths of seven people, though we don't know how, exactly. When our heroine, Sarah Graiman, hears about this self-programming robot, she's incredulous: "That's impossible!" But where would Sci-Fi be without the autodidact killing machine? We wouldn't have TheTerminator franchise or Battlestar Galactica, that's for sure. And besides, as our resident computer genius, Sarah should know that computer scientists have been feeling their way toward self-taught machines for decades. Evolutionary computation, as the computer scientists call it, is one major technique that has shown real progress in recent years. Perhaps the most famous example was the checkers software designed by Natural Selection, Inc., in 2000. Provided only the rules of checkers, the program used a form of Darwinian natural selection to teach itself winning strategies. Think of each possible solution to a checkers position as a member of a colony. The computer has each solution play against another solution, killing off the losing strategies as it goes along, and promoting winners. A it evolves successful solutions, the computer got better and better at the game. In the end, it was good enough to defeat casual players and give a good game to experts. And that was eight years ago. More recently programmers have persuaded computers to become expert Ms. Pacman players and even to learn to speak foreign languages. Really! Researchers at Stanford Uniersity taught a computer to listen for patterns in conversations betwen a mother andher child. The computer listend to conversations in English and Japanese and eventually worked out enought words in each language to speak "baby talk". Researchers in Germany are trying to teach a humanoid robot to stand up, again just from basic principles. Working with a virtual model, but armed only with a knowledge of physics and the ability to manipulate 15 joints, the computer learns to stand up and do somersaults (The BBC link above has a video). Researchers have been trying to apply these techniques to make software that writes other software, which represents the next level of self-teaching problem. The ultimate goal is to have a program that can take parameters from a lay person and generate an application that accomplished what that person needs. Right now, companies are working with companies to provide software that optimizes shipping schedules, and they're working with NASA to help the space agency respond to space-based emergencies faster. Progress seems to come in fits and starts every few years, but it really doesn't seem like we'll have to wait too long before we, too, can be worried about self-programming robotic killer machines.