Have you ever been to a lecture for a computer science class? Well, no, it doesn’t necessarily have to be computer science, for this concept exists independent of subject. But if you have, then you know of That Guy.
I know him. You know him. We all know him. He’s the guy who arrives early to class and sits in the very front row, despite it actually being a worse spot. He’s the guy who treats lecture as a one-on-one conversation between himself and the professor. And above all, he’s the guy who asks questions.
There is nothing wrong, of course, with asking questions. The appropriate questions can benefit the class as a whole—if, for example, the professor explained something in a confusing way.
Then we have the other variety of questions.
It’s a lecture like any other. Perhaps the professor is discussing topological sorts. It doesn’t matter.
It’s 8 AM. You could cut the torpor in the lecture hall with a knife or other sufficiently sharp object.
The topological sorts are undoubtedly interesting—a novel way to efficiently order the nodes in a directed acyclic graph. And as the professor gets to the time complexity of the algorithm, it happens. That Guy’s hand shoots up into the air like a rocket. Regrettably, rockets in recent memory have not had all too much success. That Guy, however, is unfazed.
This, I know, is how it begins. “I don’t understand,” he’ll say. Then, as the sun continues its steady ascent into midmorning, he’ll lay out an alternate explanation that undoubtedly makes perfect sense in his head. I will learn of the arduous series of steps he has taken to reach this conclusion, how his more efficient analysis will overturn twenty years of algorithm research. He’ll exchange diatribes with the understanding professor, and in the end they will reach an amicable conclusion. The casualties: two hours and several brain cells.
“I don’t understand.”
The same prologue as in every previous lecture. For That Guy is not a person; he is an idea. He could be you. He could be me. He could be the girl sitting across from you. That Guy is an idea, and ideas are—I’d hesitate to say bulletproof, but certainly very difficult to kill.
“Couldn’t you do this in constant time?”
A topological sort in constant time would be groundbreaking, to be sure. The professor is listening attentively, waiting to grasp the inevitable flaw in That Guy’s argument and completely and utterly overwhelm it. Some things in this world are literally impossible.
If the look in That Guy’s eyes had any more conviction, it’d be on death row. I read once about a chicken that lived over a year after its head was cut off. I briefly wonder if the same applies to ideas—can they live on after they are killed?
That Guy launches into his explanation, his thought process. He lists out the nodes in the graph, insisting that surely, surely this algorithm could be run in constant time. Perspiration drips from his brow as I ready the rope.
At last That Guy finishes his proposal, and leans back with a content look. He obediently steps up to the platform.
The professor begins to explain more in depth why the runtime of the algorithm has to be n-squared. “For each node,” he might say, “you must check incoming edges and remove as necessary.” Measuring the rope is an art—just enough slack need be provided to break the neck, but not decapitate.
That Guy nods obediently at the explanation, occasionally jotting down notes. “But wouldn’t that not work for this case?” he asks, still certain of his logic. The noose is readied and tightened around the neck. One twist of the lever to snap it.
“No,” replies the professor, finally tearing through the final layers of That Guy’s theory. Defeated, he can only watch helplessly as the trapdoor opens. But something has gone wrong, there was not enough slack in the rope. A miscalculation.
“Okay,” says the chicken, now sans head. “I understand now.”
“But why is it n-squared?”