And the academy award goes to…

This blog entry is not about Hollywood, but rather the universities. It is meant to be a short rant about the way that the academy is teaching students.

Lets start with few examples I encountered from a friend of mine, studying for his Computer Engineering degree on one of the “top” academic institutes in Israel, the Technion (similar to the American “MIT”).

Recently my friend was taught in class that every DNS resolve request must go through the root name servers.
As if that’s not bad enough by itself, they actually needed to write a PoC that display and prove the above situation.

But there is one problem. That’s not how DNS resolving works.
I enter more then once each day. So why would anyone think that I must go through a root name server? What about local DNS cache (on my own machine)? What about using my ISP to resolve so that when someone else makes that same request it will be locally cached?

In fact, most DNS resolve requests do not go to the root name servers, but rather go to the local ISP, local cache or sometimes even static local definitions such as the hosts file (that exists in both Unix/Linux, and on Microsoft Windows).

And another thing: if I choose to define that is actually in the hosts file, then when I’ll try to access it will actually be resolved as!

So where are the root DNS servers in this picture? Well, if I try to resolve a new domain that isn’t locally cached, and is not cached at my ISP’s, my ISP DNS will go to the root servers for me and return the results. Only in that case the request will actually go through root servers and even here I do not interact with them directly (I have no real way of knowing that my ISP did so instead of pulling it from its own cache).

So what happens to all those poor students who study the ‘textbook’ answer that has no real practical use?

Another thing that they have learned is that you can resolve an IP to all of its domain names.
That is only very partially true. There are many, many cases that an IP cannot be resolved to its domain name (if a reverse lookup is not available) and there is no way for me of knowing that for sure if a DNS out there didn’t define another domain name for that IP.

So the university tries to teach its students that we must access the root name servers to resolve DNS names, and that we can enumerate host names from IP’s as the basics of networking.
Next they will teach that the earth is flat, and that the dust ferry creates the electricity from dust created at the Everest peak.

  • WhiteAcid

    Earth isn’t flat?!?
    I’m a Uni student in London, the only things that I have noticed the lecturers slip on on are minor things which they either correct later or we just figure out from reading around the subject.
    I think that’s the key, as a student you shouldn’t rely on one source of information, you should read around the topic which will clear any misconceptions, give you alternate ways of aproaching a problem and familiarise you with various types of terminology. I’ll also empty your bank account and mean there’s less time getting drunk.
    If the university you mentioned is really like MIT I’d expect them to have top notch staff, lecturers who have previously worked in the field and have practical knowledge (which greatly reduces the number of small slip ups).
    All I can recomend you tell your friend to do is to ask about the topic from others (possibly including you). If he has any questions he should ask the staff. Seems to work for me.
    Good luck to him with that PoC.

  • Jamie

    From what I’ve seen in New Zealand, computer science lecturers in universities are generally so out of touch with the industry that they’d have a hard time getting a job outside of academia.

    I had one lecturer on user interfaces who taught that a cookie on a web page ‘tracks where you have been’. Of course, that’s only one possible use, and gives the incorrect assumption that all of the data is stored in the cookie, not elsewhere…

    And then there’s the lecturer who says that system architects need to produce 11 different types of UML diagram before starting to code a system. 2 or 3 types, sure, but 11?

    Perhaps universities should encourage undergrad comp sci lecturers to spend some time in the field, perhaps a couple of weeks every year. That way, the poor students may actually learn something up-to-date.