Wherein the author unabashedly stares at his navel while describing in painfully boring details his past and current academic endeavours under the guise of introducing some of the topics bound to become a fixture of this blog.
morbidly obsessed faithful readers of this blog may remember, I made a decision 18 months ago to go back to school and try for one of these fancy post-graduate degree in Compooter Thingies.
As it happen, my original bachelor was mostly centered around Mathematics and Physics, two sciences that turned out to make for infinitely more entertaining conversation topics than university majors (also, it was sorta interspersed with half a dozen other totally unrelated course of studies). Having come to develop uncontrollable rash-like allergic reactions to the mere mention of either topic, it sounded wise to shift the focus of my academic pursuits over to a slightly different major. Hence Computer Science, or to be exact: Artificial Intelligence (which is, to paraphrase some guy, as much about computers as astronomy is about telescopes). As for the “going-back-to-university” thing altogether, it was mostly motivated by the pointed realization that, of the entire spectrum of available jobs, university student was the one I was most happily fitted for: After being a corporate droid for many years, a beach bum for another couple, I figured being paid a [rather mediocre] salary to work on cool research projects while learning semi-interesting things, sounded like a very fun way to pass time before retiring to a desert island in the Indian Ocean. That and the possibility that I may one day be responsible for the enslavement of humanity under the cold, merciless dominion of superiorly intelligent thinking machines.
Due to all sort of calendar imperatives, I only made it to my university of choice by January of last year. Since I had 6 months to spare before my Masters program started, I elected to double my B.Sc. in Computer Science and see what I had been missing all along. When picking a curriculum, I tried avoiding classes teaching the type of “real-world” skills I may have had practiced for half a decade, and focused instead on ridiculously useless, theoretical stuff one never uses outside of a classroom or research lab. By and large it was a lot of paper-and-pencil CS classes: a crapload of algorithmic, decision theory, calculability, linear optimization, computational arithmetic, with a bit of human-interface application design thrown in for good measure (disappointing class, I may add). OK, some actual practical knowledge may have slipped by, since I did end up writing Java code at some point (as well as learning over five new programming languages to fill miscellaneous requirements)… But I’m pretty confident I didn’t learn anything new that could tip me into some new heretofore unsuspected realm of software engineer employability (good thing too, since I don’t plan on working again in that field too soon).
Oddly enough, graph theory, which became one of my field of predilection last year, is quite possibly one of the most hands-down “useful” area of CS one could learn in school (as opposed to whatever tired primer on object language you’d get equally well from your Stroustrup’s at home). “What is graph theory”, I hear you ask, dying as you are to know more about such a fascinating-sounding discipline. Despite its name, graph theory has only marginally to do with any graph at all, and definitely not the sort of graph you are used to seeing in those nifty excel spreadsheets at work. It starts with “graphs” made of summits and vertices, but like every Good Things, quickly devolves into abstract matrices of meaningless numbers loosely connected together. From there, awaits you the usual bunch of Algorithmic Classics (good ol’ Traveling Salesman Problem, Largest Clique and other Knapsack Problem) before moving full-on to the wonders of NP-completeness, polynomial-time reduction and all sorts of fun decidability issues.
For the record, I’m leaning toward P≠NP these days, but that may be years of drug abuse talking. And I’m not about to try and prove it either. Got better things to do with my life.
If you are left wondering exactly in what all this has any practical use in real life, here is why: among many other more abstract disciplines, Graph Theory leads to Operational Research (belongs to it, actually), which in turns leads to
Fear Anger Linear Optimization.
Linear Optimization is the art of “optimizing” roughly any problem you can think of. Well, that problem supposedly has to be somewhat linear (doh), but so far as you are concerned, trust me, that’s most problems in your life. In fact, without realizing it, you use LP all the time whenever making decisions involving matters of cost, multiple paths of action, dependencies, risk etc. All LP does, in all its modern industrial glory, is formally model and solve such problems at near-infinite dimensions, making it the Swiss Army Knife of industrial processes. LP specialists are a very sought-after breed: every company with more than a dozen employees or machines in its employ, has a use for their skills.
Did those work prospect sound unexciting enough? That’s because they are. And I have no ambition whatsoever to spend the rest of my life helping people figure out how they can produce two extra soda cans per hour through optimization of their factory production lines. Ever. Just thought I’d mention one of the few remotely useful things I’ve learnt about in recent times. From a personal standpoint, it has wildly opened the realm of easily solvable algorithmic riddles I have run into over the years. Once again: practically anything is an LP-solvable linear problem, seen from the right angle (cue in hammer and nail analogy).
Oh yea, Graph Theory also has all sorts of useful applications for telecom and networks, but who uses these anyway?
This is how, endowed with yet another fancy useless piece of paper purporting that I knew as little about computers as I already did about math and physics, I got to start my actual Masters program at Paris’ Université Pierre & Marie Curie in the fall of 2006. I officially study “Artificial Intelligence & Decision“, short for: “We will bury you in math equations until something interesting (and hopefully sentient) comes out of it”.
To be honest, this is not exactly what I want to be doing, insofar as I have only very limited interest for what scientists today call “Artificial Intelligence”. Indeed, the real fun has since moved to Cognitive Science and is often called with better sci-fi names (“Artificial Consciousness”, “Emergent Intelligent Systems” etc). I briefly considered applying for one of Paris’ two Cog Sci Masters with my professors’ support, but it turns out their curriculum focused near-entirely on philosophy and neurology, with only a very vague idea of what a computer or a math equation was (OK, I’m slightly exaggerating here, but still didn’t sound tangible enough to my old-school cartesian taste). In the end, I figured I had better tough it out one or two more years with the math thing, before closing in on my dream scientific career of feeding mind-altering drugs to cybernetic monkeys.
As far as expectations went, it was pretty dead on. So far this year, I have seen very few computers in an academic settings and done more math-oriented stuff than I had in many years. Frustrating though it may be given its little use for my future academic pursuits, this is all interesting stuff from a general scientific standpoint and I guess it won’t kill me, therefore making me stronger. Or possibly barking mad, whichever comes first.
On the upside, I was accepted in a small team project with the university research lab, doing some truly nifty stuff with massively multi-agent systems, of which I will talk more on this blog, Very Soon Now™.
Plans for the near future (beyond this Summer) are still very much unsure. Originally, I was thinking of trying to transfer to Japan with a Monbusho grant. The main difficulty being that I need to find a Japanese research lab that may want my pale ass in, to work on cool Cog Sci stuff. Theoretically, this sort of exchange is helped a great deal by going to your current professors and asking them for formal introduction wherever it is that you want to go. Theoretically still, nothing should be easier, seeing how Japan has one of the most dynamic AI research community and my very own university keeps close ties to Kyoto University. In practice, though, much frustration arises from the fact French professors aren’t very interested in sending their pupils abroad. I was under the delusion that bringing in good academic results would greatly facilitate that. As it turns out, the more you show potential, the less pleased about letting you go your teachers become. In essence, Masters students are mere doctorate fodder for the adjoining research lab.
As a result, I have been given promises of great local prospects and prestigious programs if I stay here next year, but no longer count on the other hand how many times my inquiries for a transfer have been met with the phrase “why would you want to go abroad? it will make it much harder to find a good doctorate position in France afterward”… Slightly dispiriting both for my projects and the mind-frame of French academics, if you ask me.
I still have a few months before making that decision, knowing that staying in France one more year will make it all the more difficult to find a doctorate abroad, upon which my sanity hangs tightly (two more Parisian winters and I will have to start killing people to warm my heart in their still lukewarm blood).
I think this covers all you may ever care to know about my current academic situation (and probably much more than you ever would want to).
With that, we will shortly be resuming posting silly pictures of Parisian people and pretty cityscapes at night. With the odd Cog Sci ranting here and there.