Problems with Computer Science Education

Alex:

There is a huge disconnect today in the way we teach computer science to students who wish to become software engineers, and what the industry expects of them when they graduate. Ask a recent graduate what the algorithmic complexity for a binary search of a sorted list, and he’ll (likely) give you the correct answer of O(log(n)), but many recent graduates struggle with designing any kind of complete system from the ground up.

I recently spoke to a friend of mine who graduated from the University of Maryland with a degree in computer science about the interviews he was going through, and he told me about one particular interview where the question asked was how he would design a system to keep track of the positions of all of the trains in the Washington D.C. subway system.

He also told me how he answered it. He spoke of the data structures one would use– binary tree this; linked list that, but when I asked him how he said the data would get from the train to whatever computer his software was running on, he couldn’t give me an answer. Should there be a computer at each station that communicates with a central computer over HTTP? Again, no answer.