Quite often the most frightening AntiPattern
to a young Computer Scientist or Software Engineer: the realization that your professor hasn't written code in quite a long time. Years, decades, or never. That last one frightens highschoolers more often, as colleges tend to not have professors who have no expertise in their field. Field and industry experience is one thing, but more often than not one will run up against a professor whose experience is gospel truth and cannot be debated. Either that, or they'll dismiss elegant solutions such as SwitchCaseFallthrough?
as "improper coding practices". It is often speculated that such professors would die of apoplexy upon the moment of discovering Obfuscated Code.
The benefit of this practice is that it prepares the student for the "real world" where ArchitectsDontCode
In the Computer Science dept. where I was taught (and a fairly well respected one), there was only one professor who had actually made a living as a programmer before going into teaching. And it's no surprise that he had the toughest programming assignments - he actually made us handle errors in the input, unlike all the other profs.
In the UK, we used to have three kinds of further education establishment, FE Colleges, specializing in vocational training, universities and, bridging the two, polytechnics, which did courses leading to degrees, but mostly in applied arts and sciences. This worked well, since the lecturers at the poly's were primarily teachers, and often had industrial backgrounds, vs the lecturers in universities, who are primarily researchers. I did my bachelor's degree at a university, and, to be honest, the teaching wasn't very good (but the lecturers were at the cutting edge of their subjects - maths and physics in my case).
My master's was done at a polytechnic-ish, where the teaching was excellent. Some of the students were part-timers, released from their work to attend the course, and some of the lecturers were part-time too, teaching a couple of days a week in between building systems
out there in industry. Some other of them spent the long summer vacation working as contractors or consultants. I say politechnic-ish, because a year or two before I got there the government increased the number of "university" students in the country hugely at a stroke by deeming all the polys to now be universities. That's all very fine and democratic, but it now means that the lecturers in the ex-polys now have to spend a lot of their non-teaching time doing research to secure their funding. Ooops. -- KeithBraithwaite
I wonder what RalphJohnson
has to say about this topic.
One of my professors wrote floppy drive device drivers for Cray. He really liked it when your program used as little space as possible; no matter how difficult it would be to maintain.
Another professor graded me down because my comments were above lines of code and not in the right margin.
(I did math, but) our professors in ComputerScience
seemed OK. After I graduated and worked for a computer manufacturer, I ended up being the technical contact for two professors (Norman and Mycroft) who wrote the first complete compiler for the ARM for us (Acorn, late 1980s). In early versions, it might have syntactically been in C, but it was clearly really BCPL... See http://www.arthurnorman.org
for Arthur Norman quotes :-) -- PaulHudson
My tutor and Compilers lecturer is the third Prof. in codemist (other two being Norman and Mycroft). He's the sterotypical ComputerScience
Prof, beard, glasses, long hair. He most definitely codes in C, and claims that "Thought is lisp" :) At some stage I think all the technical lecturers at Uni of Bath have coded something "hardcore". -- MarkSwanborough?
I find I have similar problems with my professors, and because I'm one of those more inclined to the practical side, I find it distressing. A fellow student made a comment a while back about how one class was too strict because 'it has to compile for you to receive points for functionality.' That's just disturbing.
Also, while it's excellent for a professor to have a solid grasp of *ComputerScience
*, they should also remember the ends to which it is ultimately bent, and the predominant applications of ComputerScience
in the real world (which last I checked was coding). My favorite professors always have been and always will be the ones who can outcode me any day of the week. -- SomeoneWhoDoesntPostHereEnoughToHaveaUserName?
(but wishes he did)
I disagree. That's SoftwareEngineering. ComputerScience should be about the theory and the limits of what's possible at least as much as it is about coding. If we adopted that view about mathematics, for instance, we'd spend all our time on loan calculations, completing your tax return, and basic statistics :-)
I find it fairly amusing (at least for the moment; if I thought about it too long I might get worried) that practically nothing that I learnt at university is actually being used now that I'm out in the workforce. Although, to be fair, I had already been programming for 12 years (as a hobby, not commercially) before I went to university. But the major emphasis in university assignments was commenting. If your code didn't have several pages full of comments, you were marked down sharply (or sometimes got zero, even if your program worked). By contrast, at my new job we're into ExtremeProgramming
and have been told that if you have to write even one comment you've probably done something wrong. So somebody can't be in the loop :P -- GavinLambert
I suppose it's somewhat amusing, but I suspect most people use very little of most other degrees in RealLife (English Literature? Political Science? History?). I'm not sure when ComputerScience became supposed to be a vocational course, but I don't think it should be.
Another aspect to this issue is the funding of open source. OpenSource
, it seems to me, is a "public good", very similar economically to scientific knowledge. Funding it is a tricky problem, because it benefits society as a whole, but only if it is freely available to the public. We already have a system for dealing with this sort of thing; part of our taxes go to paying professors, who produce the "public good" for the public. It seems to me it would be most logical to use the existing infrastructure to fund open source; i.e. those who want to program open source full time should be able to become professors of open source (or, I guess, ComputerScience
, specializing in open source).
Of course, right now the obstacle to this is that ProfessorsDontCode
(or rather, professors are not given tenure based on actual usable projects that they produce, but rather based on the excitingness and amount of their cutting-edge research).
I feel, however, that this could change with a little help. I would like for someone (maybe I'll do it in a few years if no one else does) to start a fund with the goal of endowing a Professor of Open Source at a major university. I think we need in between $500K and $2 million to endow a chair. If we raise money at the same rate as the Free Blender project, then we should be able to do this in a couple of years.
There are already many professors who create or contribute to open-source projects, using them as a way to test and publish their research. Examples: DonaldKnuth
I have been meaning to write in this page, but was too busy writing code. In the U.K. I am not a professor, but I am an academic with nearly 40 years service, including the last 3 as Associate Dean in Engineering and Applied Science. I also write code, in FORTRAN, C and C++, with some work in Ruby, Python and R. I have been too busy to write here over New Year as I am using the holiday to write code. -- JohnFletcher
See also HowMuchDoYouLearnInSchool