I'm currently studying Industrial Engineering in Spain, one of the broadest degrees here that includes the subjects of Calculus, Fluid Mechanics, Electronics, Materials and Programming in C, among others.

However, there's one subject, Introduction to Computers, that I think has an outdated course. While this is a personal opinion, I do some extracurricular projects based on robotics (electronics + programming) and I see that there's a huge difference between the subject and what is being used in the industry.

In this subject we are being taught really low level computer operations and iteration, learning how to reinvent a wheel that probably no one of us will ever need to reinvent in our career.

How should I approach the professors about making the course oriented to the current years? I know I will not benefit from it, but at least my fellow mates would. As most courses here, it was probably written 15/20 years ago and hasn't changed much in the time being. Besides that, another related question would be, is teaching outdated material the norm in most universities?

A small example of what I mean: We had a programming exam with the Outdated LibraryTM, in which I decided to write the function map() as found in arduino. This made my code much easier to program/debug and faster to write. Most of the other students don't know something like this is even possible and need to go over each individual operation manually to map the different conversions.

  • 2
    I don't see any convincing evidence that this course is out of date. You describe the course as teaching low-level operations and the concept of iteration. These are things that every engineer should understand. Understanding how things actually work doesn't go out of style or become unnecessary over time. – user1482 Apr 10 '14 at 1:31
  • In Spain you don't have elected representatives in the didactic council/academic senate or any similar institution? Because in Italy the professor cannot completely decide the program of a course, it is decided by a council so talking to the professor wont change anything per se, you'd have to ask your representative to point this out during a council session. – Bakuriu Apr 10 '14 at 8:22
  • @BenCrowell , I completely agree with that, the more we understand the better. However, with limited time and resources, I think that we should learn something oriented to the industry at the cost of not learning some great -but not used everyday- theory. Besides, we're being taught how to do, for example, bitwise operations in C while most of my classmates cannot even program in C. – Francisco Presencia Apr 10 '14 at 13:10
  • @Bakuriu, that concept doesn't even make sense in here nowadays from the university structure... although it'd be great. Maybe there was at some point. Also there are some variants. My idea is talking with the professors and leaving the task of changing it to them if they see it fits. – Francisco Presencia Apr 10 '14 at 13:14

There is always some tension between teaching considerations in computer science and other fast-moving technology fields, and modern practice.

Since the field itself moves so fast, it is not necessarily desirable for a computer science course to really be up-to-date. Even if you taught students up-to-the-minute programming libraries and paradigms in their freshman CS101 course, by the time they graduate, many of these libraries will be outdated anyways. Furthermore, developing new course materials (or updating existing materials) takes a considerable amount of time and effort.

Also, modern programming paradigms are often too complicated to introduce to complete beginners. A deliberate decision is often made to miss out on "up-to-date" in favor of "simple for newbies."

The usual goal, therefore, is to teach students fundamental ideas and concepts that are timeless. The context in which these ideas are taught will probably become outdated pretty quickly. It's understood that students won't use this specific context again, because it'll be obsolete by the time they graduate; the hope is that the ideas stick, so that the students can understand the new programming paradigms they will be expected to learn on their own in the workforce.

For example:

ASCII is dying, replaced mostly by its vastly more complicated superset, UTF-8. But UTF-8 would be crazy to teach in full, with all its byte-stuffing practices that mean different characters take different numbers of bytes, and all the combining characters and normalisation and so on. ASCII has the fundamental idea of characters-as-numbers, which is a useful (and timeless) principle, even if the exact encoding itself is getting more complicated.

Source: Teaching programming: Modern or Educational?

Having said that,

  • This seems "stupid" and is demotivating to students who are aware of current practices
  • In practice, teaching ideas and concepts is more difficult than teaching specific technologies and syntax. So often students miss out on learning the "timeless" ideas - which were really the whole point of the lesson.

In answer to What can you do about it?

You can certainly tell the professor, "I did XYZ as part of my project, and I think it would be interesting to share with the rest of the class." I often supplement my "fundamental" courses with "modern" concepts, and I love when these supplements come from the students themselves!

You can always ask the professor, "How is concept ABC used in practice, today?" I love getting this question from students - it gives me an opening to talk about fun stuff :)

But understand that teaching outdated material is the norm in many cases. There are good reasons for this; there are also good reasons not to do this. It's a difficult balance to strike.

  • See also: Why don't they teach these things in school? – ff524 Apr 9 '14 at 21:14
  • This answer is absolutely great. While there are some points I had considered (like trying to teach timeless concepts), there are many other valuable ones, like pointing out this argument has been going on for years and that there's not a simple solution as I naively believed. Thank you so much. – Francisco Presencia Apr 10 '14 at 13:16
  • I am wondering why the Q&A linked in the previous comment was closed as "Not Constructive". It seems that what makes sense in Academia (e.g. this question and answer) is not constructive for SO users? – scaaahu May 1 '16 at 9:29
  • 1
    @scaaahu Every SE site gets to define its own scope. The scope of Stack Overflow excludes "soft questions" like that one, just like the scope of this site excludes shopping questions while they are perfectly on topic on Software Recommendations. – ff524 May 1 '16 at 9:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.