Wednesday, September 8, 2010

A genuine question about the curicullum of the Department of Informatics at the Athens University of Economics And Business

My qualifications

I studied Computer Science at the aforementioned university. I was the second best student of my class, with a GPA of 9.3/10. I finished 3/4 of the required courses by my second year and was involved in research by the third semester. I published before I got my degree and was accepted for a PhD at the University of California, San Diego. I went downhill (academically speaking) from there, but the point I am trying to make is that I was a model student. I knew the material of the courses by hard, not because I studied, but because I really enjoyed it. In several courses, I was the only student to achieve perfect scores. However...

My rant

... I had to get out of the academic world to see what the real world demands and takes for granted. Obviously this is a fact of life, I was not expecting anything else. What really baffles me however is that whole chunks of Computer Science were left not only untouched but totally unmentioned during the 3 1/2 years of my study. I took all the core CS courses, mathematics, advanced mathematics, computability, complexity, the works, but I never ONCE heard the phrase "functional programming". Not once, no joke. I am constantly wondering how is it that a department that is proud to offer one of the best educations in CS in the country (Greece, for those that do not keep score) has no course, no lab, hell, no mention to one of the most important academic CS topics. I am not saying that we should talk about map/reduce or actors in scala (a language also unheard of in the corridors of AUEB). No, I am simply asking that during the "Introduction to CS" or "Introduction to programming" courses, somewhere among all the Java lectures there should be an interlude about, oh, I don't know, programming languages and a quick mention of the possible programming paradigms. Instead we were taught for the whole 4 years a course in Java (I was lucky to have already written a buttload of C and AVR assembly before I got there, so I was in the clear), some C++ and a lousy, barely deserving the mention, course in FORTRAN. That's it. Pathetic, don't you agree?

The result

I had to get out of there, work at the industry for 3 years (in Greece, the pinnacle of technology is managing to setup a JavaEE stack, with properly documented - the implementation is optional- Web Services for the really daring) to find out about Hadoop, FP, Scala, Graph Databases, lock free algorithms. Note that apart from the technologies, this material is core CS. Not graduate level even, FP should be taught along with C at the first year students (although others have talked about it far more eloquently that me). Hell, I have talked with professionals from my school who have no idea what is the difference between an ArrayList and a LinkedList. Honestly.

I'm done

I am really disappointed by the quality of the education I received from my studies. I learned a lot to be honest, but looking from the outside in I realize that it was not enough. I have worked really hard to make myself competitive and a lot of my hardship came from the inadequate preparation I received during my time there. Of course, this is Greece and no one is interested in creating quality software or implementing a solution in a way that displays imagination or in any way indicates that the programmer had fun. No sir. Maybe that is why I am unemployed so long and there is no light in sight. I am not qualified enough to work where i want to work and too proud to work someplace where the highlight of softeng is writing an ant script. Screw that, maybe I will be better off functionally serving burgers.

No comments:

Post a Comment