I am currently a 3rd year computing science student at a Canadian University. I find it quite challenging, and extremely interesting. One thing that i have noticed is that each person i speak to that took a class 3 or so years ago learned much less than i did in the same class, and people who are taking 1st year classes are doing more than i remember doing in my 1st year classes. Is this just me remembering stuff bad, or do you believe that getting a computing science degree was easier 10 (or even 5) years ago?
I don't know if it's harder or easier, but definitely different.
I'm only a couple years out, but I've noticed that current students appear to me to have a more abstracted knowledge base, but lack fundamentals which cause them to falter on simple tasks.
It's the whole 'calculator debate': "They can do higher order math using a calculator, but can barely multiply without one."1
1 I'm not advocating the truth of that particular debate, just using it as a reference point in understanding my point.
Things change. 30 years ago, in computer graphics class, if you could light up a dot on a screen, you were doing good. Today, recursive ray tracing in C++ is a routine undergraduate programming assignment - and the images some of the kids produce are IMPRESSIVE.
Teaching methods change. 30 years ago, the introductory numerical methods class taught methods, and spent a little time on how to derive them, but not much on serious, detailed analysis. A few years ago, when I had the opportunity to retake the class, I discovered that it was now a SERIOUS math class: it could have been subtitled "Applications of Taylor's Theorem to Error Analysis". (I enjoyed the class the first time. I had a WONDERFUL time in it the second time.)
Your perspective on what is easy or difficult changes. A few years ago, I sat in on a vector calculus class, partly as something to do that summer, while unemployed and job-hunting and waiting for my formal university readmission to come through, partly to gear up for tensor calculus. I was surprised at how easy it was for me.
I think the only difference between now and the past is who is getting the degree.
When I graduated in 1990, most of us were in it because we had an affinity for computers. I suspect that that's no longer true, and that a larger percentage now are in it for the good career and salary. I don't think intelligence plays much part in it. I do think that the kids in school today have probably used a computer for more years than those of us back in the late 80's. But you either get computers or you don't.
Interesting question. You don't really classify why you think this or what empirical evidence you're using to come to this conclusion.
There was a period of time 95-05'ish or so where I believe that most CS graduates did not have the same level of problem solving, practical algorithms and language understanding that those that came before that time. With no bias nor cause, I attributed this to the mass introduction of Microsoft platforms into the University vs. the more time-shared systems.
I once helped with a mandated summer practicum where students spent quite literally weeks converting a 16-bit number to ASCII output. First, they didn't think about using something like
sprintf(), but second they didn't really understand 2's compliment or what ASCII even meant. Growing up in the FidoNet world, I just couldn't fathom how they didn't know ASCII.
We evolve though, and there are some seriously good languages now and CS certainly ain't the hip thing to do anymore, so our statistical population of CS majors is probably a little less diluted?
Well, at least at my university, almost all CS courses have been recently reworked, sometimes very heavily, to deal with parallelization. In quite a lot of cases, parallelization is relatively difficult, so I imagine that most of the new versions of the CS courses are more challenging just because of this.
While there are plenty of other things affecting the difficulty of modern CS classes, parallelization is probably the most visible, at least for me.
I have no idea whether things are easier or harder now than they were 10 or 25 years ago.
But I do know that my particular institute of learning (Imperial College, London) is not going to have let things slide...
The problem with computing is that things are still changing at a staggering rate - when I did my degree (82-85) there was very little notion of "objects", now OO is fundamental. Design Patterns was published in '94 - the things it addresses were in many cases not yet Phd theses then - yet now you'd hope they're fundamental (those patterns that have not further evolved) to a good course.
You will remember best that which you're doing now, your school should be developing its course continuously - and above all it should be teaching you to think not (just) to code (teaching you a mental/philosophical framework that allows you to write good code, not simply teaching you the mechanics of particular languages).
I guess it depends on your school.
I graduated with a compsci degree pre-Netscape, and I've kept in contact with my university over that time. In most cases, they still use the same textbook for the same course and have the same syllabus... only the textbook edition has changed.
Which makes sense, considering that the school is heavy on computing theory, and not "applied software engineering". There hasn't been a lot of advancement in numerical methods et al during the last 10 years, that would apply to undergrads anyway..
Good question. Given that I graduated 13 years ago, I do remember a lot of what I took pretty well, so I could likely compare some things but there are a lot of differences. There are some advances in the field that encourage a shift to some degree in terms of what courses should there be and how should this all flow. Another side is that the administrators of the program may try to improve things by adding another course here or there.
If you look at what Waterloo has today and what I took, there are more than a few differences. Man-made things tend to evolve and why shouldn't university programs be like that? In my day, this is the break down of my CS course run: 2 first-year(130/134), 2 second-year(246/241), 6 third-year(340/342/351/354/360/370) and then 4 fourth-year(464/466/486/487). Now, there were also a bunch of Math courses there too, but 2007-2008 lists 5 courses at the second year level, in addition to some other changes and that was only a few years back. I'd have had to take a different 4th year course as I didn't take any 4th year courses involving programming directly.
Would it be harder today? I don't think so, but there are more than a few other changes that would also impact things as in my day there was Grade 13 in Ontario high schools that was very similar to first year university in some subjects.
Compsci.ca may be a good place to ask this if you want to compare Canadian schools as the creators are from Canadian schools and some alumni may have had their degrees from years back.
For the question from the topic
Was getting a computing science degree easier 10 years ago
No, now there are lot more colleges which offer very rudimentary CS courses giving away BSc with little effort.
Now if you're asking about getting degree from same university, YMMV. Most definitely curriculum has changed, some courses are dropped, some merges, some expanded, some are new.
Also the advances in tools change a lot. What was 10 year ago really hard task, requiring lot of knowledge, no can now be done with a single click with right tool.
Computer science degrees are driven by the IT industry. Universities will churn out the type of students that companies demand (for the most part).
Things like parallel programming and mobile development are starting to come to the fore.
And don't forget as time goes on universitys get better at teaching their courses. The first class to take a particular module are basically the guinea pigs and as the years go on the university learns what's good, what's bad, what's useful and what's not. They can adapt their course.
Steve Brookes has a very interesting blog about a new course in functional programming that he taught last spring to freshmen at Carnegie Mellon. This is a very different approach than when I attended CMU ten years ago. I believe Object Oriented programming is now an optional course. They're putting much more emphasis on verification and parallel algorithms in the new CS curriculum. I'm not sure whether this new curriculum is easier or harder, but it's definitely different.