A Classification of Computer Science Research

This is a view of computer science research. Sarcasm abounds. This is supposed to be funny, but it can offend people. Don't read if you are easily offended, and don't get angry if your most favorite research topic is not presented appropriately. If your most favorite pet is not here, please let me know.

  • Security: The art of thinking about unsolvable problems.
  • Theory: The art of creating unsolvable problems.
  • Systems: The continuous re-implementation of ideas that appeared in 1950's.
  • Compilers: The science of arguing that every thing is either NP-complete or undecidable, and showing that neither is relevant.
  • Artificial Intelligence: A line of research whose existence is motivated and justified by the failure of natural intelligence, or the lack thereof.
  • Networking: An excuse for doing research in security.
  • Computer Architecture: The only successful branch of computer science research, although it has nothing to do with science, or research.
  • Graphics: Drawing pots and kettles on computer screens.
  • Databases: A research topic that was resolved in the 60's.
  • Parallel Processing: This is what you claim to be doing when you want the government to spend a lot of money to support you.
  • HCI: A philosopher in front of a Mac.
  • Geometric Modelling: That's what people who get tired of theory move to. They then retire.
  • Modelling and Simulation: A glorified priority queue that has been hacked to death.
  • Programming Languages() = Incomprehensible Math + Programming Langauges();
  • Software Engineering: Creating upper layers of software, then moving the bugs from the lower layers to the newly created layers. Repeat until there are no bugs or you die.
  • Fault Tolerance: A line of research that considers paranoia a science.