Can Academia Prepare Students for the Real World?

Note: This is skewed toward computer science courses. I’m interested to see if it is the same in other subjects.

I have long had a belief that universities are, by and large, completely out of touch with the real world. This may not count for all universities/colleges or their staff, but in my experience most work given is largely pointless and taught by lecturers that have never been out of the academic environment – meaning they have no idea how things happen ‘out there.’

As I said, this probably doesn’t count for all lecturers and professors, but most that I know have finished high school, gone straight to study in a university, perhaps undertaken research, then right on into lecturing. It is this lack of real-world experience that prompts them to issue work that does not help prepare students for the outside world.

There are certain things that I believe that all students should learn, and while they might not be used generally in the workplace, they are things they provide a solid grounding for future thinking. This kind of work is fine, but there is so much pointless work that doesn’t fall into this category, and I honestly feel sorry for those students that leave university with no concept of the workplace. I have spoken to several students in this exact predicament recently.

I have with me an assignment that was issued in an Australian university just a few weeks ago, one which I believe perfectly highlights this point. I will not reveal the university it was given at, nor will I reproduce the content in it’s entirety, but I will highlight a few points that I feel are, quite frankly, ridiculous.

To start, this assignment requires the student to write a CGI application using C/C++, and includes the line:

“…your CGI program will need to update a data file (using a database from C++ is simply too painful).”

Not good enough. The course that this assignment relates to specifically targets programming for the internet, and this is a third year subject – by this point, database usage should be mandatory for this kind of task.

“It is not common practice to write client-side JavaScript from scratch! Instead, you notice a web-site that has an interesting feature – view source.”

Sure, in a lot of cases developers don’t write code from scratch, but they also don’t steal code from other pages. Many developers write Javascript code with frameworks such as jQuery and Prototype (myself included), students should be encouraged to explore code reuse through these methods instead of just ripping code off other websites. It is a complete lie that it is common practice not to write code from scratch – a lot of work requires it.

“Your overall task is to write a report detailing how you completed the various subtasks listed below. You will be marked on your report.”

Yes, not marked on the work itself, but instead a report on you doing the work. Surely the marker can at least take a gander at the work itself.

“Your web should be composed of material that you might later wish to post to your Facebook or MySpaces web site”

Sorry, just had to highlight the poor grammar as well.

The ‘web’ must include:

“A section using an IFRAME to include a separate file that contains visitor comments presented in a HTML table. This separate file gets updated by the CGI program when a viewer submits a comment.”

There are so many reasons why having a CGI program that writes out a static HTML file that is included with an IFRAME isn’t the best way to do comments on anything. Again, this is a final year subject, this should all be dynamic.

“The comment should be checked to detect < signs, or the % equivalent, in case a hacker is trying to inject scripting code or other problematic data.”

With no explanation at all why this would be problematic, or indeed any pointers to how to better protect yourself from injection attacks.

“The file with the table of comments (‘Comments.html’) should be created initially with simply the HTML markup for the table and its column headers. This file should be placed in a ‘data’ subdirectory of your public_html directory and should created with global write permission.”

Clearly, anytime that a web server needs to write to a file, said file should have global write permissions.

“Traditionally, [removed] involved a lengthy but easy exercise on Apache configuration … but things are just becoming too simple. On Windows – install Apache means double click on a file icon. Most Linux systems these days come with Apache pre-installed … it just isn’t fun any more.”

So instead of actually covering the setup of a web server in a course that’s description references ’server technology,’ the student is instructed to just use the defaults provided by install packages. It might be right that Apache and the like are far easier to install these days, but this doesn’t mean a student shouldn’t learn why the defaults set up by these installer scripts are the way they are, and how to change them.

I really could go on and on about this, but this assignment is comprised wholly of tasks that are either never used in the real world, or that point students in the wrong direction on practices that are used in the workplace. From what I have seen, this kind of thing is the norm rather than the exception.

I am not trying to start a flame war here, but instead to highlight the fact that students leaving university should be prepared to face life outside of academia. If you have had better experiences, please post a comment. Please also do the same if you agree.

Comments

  • Snipergirl: Thanks for that very thoughtful comment. The post was done to try and get opinions from people in other fields on the merits of courses, and that is a really insightful one. Indeed, it seems as though IT is falling behind the standard set by subjects like medicine.
  • I'm from a completely different background here, so bear with me.

    You just can't be a doctor or a scientist without the proper academic background (Einstein of course being a 1 in a hundred million sort of occurence guy). You just can't.

    My medical course, sure, had issues with how much it really prepared us for the real world, but the biggest comment coming out of there was that having had a dramatically changed course (slanted more towards the vocational side than previously) there was a lot of anatomy and some other quite clinically relevant academic detail we had missed out on.

    In fact my biggest disappointment last year was learning that my intern year in many ways was not equipping me adequately for my further training and career development (due to lack of professional development skills, training and support) - even though my academic knowledge HAD.

    Similarly my father, a very senior electrical engineer states fairly frequently that the reduced basic sciences content in engineering degrees has led to a drop in long term ability in the workplace.

    And then of course there are scientists and researchers- who need the theoretical framework because that is what their everyday work is all about.

    In those fields in particular, the job can be picked up "on the job" as it were- and mostly is, whereas the theoretical frameworks cannot.


    IT and computer science is a different kettle of fish as I am constantly reminded by my programmer/IT/comp sci friends. On a close to daily basis.

    For one thing it is a new field and a lot of its innovations have not been incorporated into academic learning in a worthwhile or applicable manner... and a lot of the theory is still in development anyway. So I can imagine that comp sci degrees just suck balls for that reason.


    Anyway that's my 2 cents. Academia is good for some fields and not very good for others. I think universities provide a very important role but seem to be less applicable to programming than to other professions.
  • These are some really interesting points guys.

    A recurring theme I have picked up on is that it is the tertiary skills you learn at university, such as researching and problem solving, that bring the real benefit. I argue, however, that these skills could also be learned when taught in conjunction with work that is more relevant to the modern workplace.

    It seems as though many universities do not have strong enough links with the real world, and I think businesses should be far more involved in the planning and development of a course.
  • I graduated from a CS / Software Develpoment degree a couple of years ago now, and sure enough, there was a wealth of essential knowledge that I was missing when I started at my first job. Really basic stuff, like version control, build testing, automated unit tests, etc. My course did lay down a bit of useful theory that I couldn't have got by without, I will grant that, but there is so much more that could have been covered, and been of actual use to a fresh programming grad.

    I was lucky enough to find an employer who did me a huge favour by taking me on in a very junior capacity so I could find my feet, and gradually let me move towards what I actually want to be doing (i.e. coding!). Fortunately for me, I'm doing that now, but I still feel the wealth of knowledge that I don't have, at least some of which I could have learnt at uni.

    Ah, well. I suppose there's really no substitute for actual working, hands-on, in-the-trenches experience. But it'd be nice if education providers did actually try, for example, with internship/work experience programs (which, as far as I'm aware, my course didn't even offer, let alone require).
  • They often are totally unaware of many important, high order skills obtained at university: thinking, problem solving, research, analysis, communication, and so on.
    The problem is that too many people seem to 'escape' with a degree, without picking up these skills. This is obvious to me in Computing / IT, because that's my field, but it appears to me that it's similar in many other 'non-professional' degree areas.
  • Brad,

    Although you raise a point, its validity I would argue.

    One could argue that the assignment that you provided doesn't actually represent majority of work output by a university. I do however agree.

    Through my own experience at university, especially in the last few years - the quality of education has slumped. Why? Well like any economist would tell you - incentives!

    The main reason for the lecturers to teach [if one may call it that] - is money. Not for the love of their work, not to progress humanity, but pure greed. Now the lecturers aren't the only ones that are at fault here, its the university that facilitates the delivery of such poorly standardized and managed work.

    By focusing the course work to be slanted towards international students , the lecturers, as well as tutors are instructed under the table to 'take it easy' on these inbounds. Why? Because they pay $8000 per session, and not $2300 that a domestic student would. Incentives - lets get more students in that pay us more, and we better make sure they pass - otherwise they don't pay!

    Who suffers in the end? The students that come out with these pseudo-degrees, which have been dumbed down.


    Cheers,

    Roman
  • I think it really, really depends on the university in question. The extracts you've provided here are frightening. No doub, there are plenty of poorly written CS courses out there, but I've found the lack of a good CS background more problematic in 'the real world' than the converse.

    I bailed on my Eng/Comp Sci degree years ago in order to pursue my professional career. What I've since realised is that in doing that I missed out on a lot of valuable theory. Because of this, I've spent a lot of time teaching myself some really important stuff that I would never learn 'on the job'. It's required a lot more energy to learn it myself than if I'd taken advantage of the structure of a good CS course to guide me in the first place.

    It should go without saying that there's no substitute for experience, but everyone becomes experienced over time. It's not so easy to learn the tricky theoretical stuff, especially when one can easily get by without it in practice. (To the detriment of the quality and efficiency of the code.)

    I question whether it's relevant to teach web development in a CS degree. It might be worthwhile in a Business IT degree or a TAFE course, but CS is about learning how computers work, and about the science of computer programming. Once you know that, it's a doddle to understand how the web works. (Whereas it'd be substantially more difficult to go from 'just' understanding the web to something more low level.)
  • The complaint that universities do not prepare people for the real world is a common one from both graduates and employers -- particularly in the IT industry. Graduates often relate that they learn more in the first month or so of a job than they did in three or four years of university education.

    The problem is, that people often don't know what they know, what they have learnt, how far they have come. They often are totally unaware of many important, high order skills obtained at university: thinking, problem solving, research, analysis, communication, and so on. There is typically a large difference between university graduates and others in these areas. Further, the fact that students can learn "real world skills" quickly on the job after graduation is usually a testament to their education.

    Assignments such as this are not meant to mimic specific workplace tasks. They are designed to assess whether particular learning outcomes have been met. Unless you have the mapping of the assessment items against the learning outcomes, it can be difficult to judge an assignment by comparing it to a real world project. Furthermore, the fact that somebody can undertake a certain project in the workplace is not always a valid assessment of their skills and knowledge and how they may be applied in a range of contexts.

    For this reason, the assignment asks for a report on the steps because the assessor is not an employer, and so would be interested in how the student goes about the task rather than the completion of the task. Further, the completed task itself could have been done by anybody, not the student -- the report helps with the validity of the assessment.

    I know you don't want a flame war, and that is not what I am starting here. You have raised many important issues that should be raised, and it may well be that this assessment is from a course that has little relevance today. However, I am merely giving the perspective from the "academic" side. Doing something is not the same as knowing how to do something. And learning how to be something is not the same as being it.
  • Brad, when I studied IT at uni, I was already working in IT and was just doing the degree to validate my skills. My database assignment was so crap that I actually built the database to correct database coding standards, fixed all the lecturers errors and included the reasons why in my report. I also included a suite of reports that I thought the application required. I got a great mark for the assignment but that's not the point. It was very similar to the points you've raised above. The uni lecturer was just trying to make it easy for himself rather than make it anything like a real world example. Now, I'm showing my age here, but that was 10 years ago - obviously nothing has changed, if this is the sort of crap they are still dishing out. I did a double major of Management and IT and I can safely say that I did not learn much in my IT degree other than maybe the definitions of inheritance and polymorphism (and I probably would not have ever learned anything about OO programming out in the real world).
  • kd
    Well I dropped out of a CS program at uni because it seemed that I wasn't learning anything terribly useful. There are an awful lot of auto-didacts out there in professional computing roles - with and without degrees.

    With subjects like teaching and nursing, while a tertiary education is required and necessary, they spend so much time on immediately pressing tasks that the reflective practice that the university environment encourages is not so practical.

    On the other hand in the quantitative sciences (engineering, science, the less fluffy end of psychology &co) lots and lots of education is really required because the rules are complicated and the practice is reflective. TBH if you're interested in computers, a degree in maths or statistics, engineering, science or cognitive science is probably more useful than a CS degree in the long term, in my opinion.

    Actually you see the same thing in business schools > 50% of the academic staff there are refugees from other academic disciplines too.
blog comments powered by Disqus