The Death Of CS In Education?
JohnnyKimble writes "A provocatively titled article recently appeared in the 'Future of Computing' section of the British Computer Society website. 'The Death Of Computing' was written by a lecturer at De Montfort University in the UK, and considers the problem of falling interest in computer science courses in the UK and what needs to be done to encourage more students to take the courses." This ties in well with our discussion last night about Why Software is Hard.
then they might be failing because they are more math degrees than what I would consider "computer science". That is why I changed my major to web development here. I didn't want a math degree and that is exactly what I was getting.
Matt
You have 1 Moderator Point! Use it or lose it! Is that a threat? -vapid
Computer Science needs to die (well, shrink a lot). Industry does not need computer scientists. It needs software engineers, human interface engineers, and programmers.
A slashdotter who didn't build his own computer is like a Jedi who didn't build his own lightsaber.
More job security for those of us already in CS.
All you have to do is print lots of stories about how people are making hundreds of thousands of dollars a year "just because they can operate this computer". You know, kind of like back when I was a kid. The kind of thing that suckered me into getting into a field that is destroying itself.
"No problem. I have the capacity to do infinite work so long as you don't mind that my quality approaches zero."-Dilbert
CS is dying because universities and colleges require you to take stupid classes that are completely boring and have nothing to do with CS? That might be it.
People aren't interested because the pay is crap compared to a few years ago. Simple. It's not a desirable profession. And the reason the pay is crap is because there is an oversupply of IT services to the market. That oversupply pushes down the salary. The oversupply is typically coming from developing countries; India etc.
Deleted
I am frustrated at how many people persuing CS degrees don't properly understand basic data structures. Arrays, stacks, queues, vectors binary trees and the like are not really thought about as much as they should be. In too many places CS is becoming increasingly about a little bit of "CS theory" and a lot of "MS Applications".
Want to save CS? Put "Computer Science" back into it.
LK
"Hi. This is my friend, Jack Shit, and you don't know him." - Lord Kano
I chose between Comp-Sci, and a variety of different courses
The problem is Comp-Sci is too much maths, and not enough computers for my tastes
So i chose a buisiness and computing degree, and in my spare time have been learning java for 6 months
by the time i leave, i'll have a computer degree to get me in the door, and a portfolio of Java projects to show my Java Knowlege
Heres to hoping it pays off....
If you didn't know that studying Computer Science was mainly studying a branch of applied mathematics, then you obviously didn't do enough research into the program you applied to.
And what sort of university offers "Web development" as a major? Web development is the sort of thing you learn at a community college, or on your own time with the help of several books. You don't take three or four years at a university to learn web development.
"Computer science curricula are old, stale and increasing irrelevant. Curricula needs to be vocational, and divergent, widening the computing student's view of the world, not creating a sterile bubble, closed off from the wider issues in the world, and from the networking, the integration, the global reach of computers."
I don't know what CS program this guy is talking about, but the software engineering course in my program has been all about this issue. In this class we actually work with people/professors from different faculties and work on a semester long project, going through a software development cycle. The whole point of it is "get out of the closed off bubble you nerds!"
All forms of education should widen our world view. If it doesn't, you aren't learning anything except how to be dumber.
Free pints down at the pub and offer extra stipends to the female humanities grad students willing to blow cs majors before major tests.
I find many people don't even know what CS is anyway. Most people I meet seem to lump anything do with computers under the CS banner.
Science is hard and not sexy. There are also too few electrical engineers (not VHDL programmers), semiconductor scientists, material scientists, physicists and what not is needed to feed the entire information technology chain.
On the other hand - the other posts are probably right about the common misconception of computer science and programming.
A generation ago, back in the 70s, the science department on my highschool got a basic computer . I wrote a program that would show time with analog hands (calculated with sin(t),cos(t)).
I tried to get my son interested in programming by showing him how to write som simple software that could draw stuff.
His response was basically: "Why cant we make something like 'Grand theft auto'; This is boring"
don't cut it off www.mgmbill.org
If you want people to be interested in a difficult subject, give them lots of MONEY. Why do you think interest is declining? I'll bet it dropped right off the map when people stopped talking about how a CS degree was the easiest way to live like a rock star.
- because-they're-smart-enough-and-don't-want-to look-dumb-for-taking-a-job-that-pays-less" people.
Lets face it, people aren't rushing to CS anymore than they're rushing to mathematics and physics. There's a handful of people that dig it and all the gold diggers work in medicine and finance now. And you know what, THANK YOU. The last thing I need is working with an incompetent boob that can't find a job doing something else because software jobs pay through the roof for whatever they can get their hands on.
I'm not trying to be harsh, but this really is the best for everyone. People who like CS can get a job that pays decent money. People who don't aren't tempted to bust their balls just so they can be roommates with the next Wozniak. We need people who are genuinely interested in the material, not "smart-people-who-want-whatever-job-pays-the-most
The incredible decline in interest in the last few years is directly correlated to the decline in financial advantage over other highly educated careers in the past 5 years. DUH.
from the give-it-bawls-for-life-support dept.
Call me crazy, too many of those might have something to do with about 50% of the population not taking CS classes...
I studied at Cardiff University. The British Computer Society pushed so much unnecessary crap onto us (Accounting, Business skills, Information Systems, Distributed Systems, Information Management) that there was not enough room left for a hearty course. I've never heard so much bollocks. Things like compiler theory, functional programming and logical programming were optional due to lack of space. It's pressure from the BCS that's made the Computer Science degree a waste of time in the UK. Plenty (read: most) Computer Science graduates with first class degrees got them by being good at the bollocks, and mediocre (or useless) at anything useful. Of course, I'm bitter because I was never any good at the bollocks, so I got a crappy degree.
CS is dying because it is several different disciplines wrapped up into one, making it hard for students to get the education they want (or need). Some want to focus on the mathematical and theoretical aspects of computer science. And yes, we need these people because they are the ones who come up with the new encyption methods / exponentially faster alorithems / proofs that one way to route traffic is better than another / and so on. Some want to be software engineers (learning how to program and program in groups). Still others want to focus on user interface design or software design in general, without dealing with all the programming details. And of course there are niche fields like 3D graphics and AI that are important but not really large enough to split off on thier own. In any case the point I am making is that, by cramming all these together under one degree, CS programs tend to suck because you are forced to learn stuff that you don't want to, and so the degree you earn isn't necessarily relevant to what you want to do. Students are catching on to this and are thus migrating away from the standard CS degree, some of them never to come back.
Philosophy.
Once people sense that there actually are jobs available at a living wage, they will start studying Comp Sci again. It is the Free Market at work...
Excuse me, but please get off my Pennisetum Clandestinum, eh!
We've talked about this on /. before. Many of the things I'm about to say will probably be in other comments, or you've seen in the past. I'll try to give a whole picture though. I should also mention where I'm coming from. The article is from the UK, but I'm in the US (almost dead center). I graduated with a degree in CIS (Computer Information Services) around June, and I've had a job as a software engineer for about 6 months now with a great little company.
Now I'm the kind of person who has always been interested in computers. Like many /.ers, I would probably have pursued this field if it paid next to nothing. While my salary is nothing to sneeze at, it's nothing compared to the 60-70k number people seemed to like to throw around during the bubble.
When I entered college in 2001, there were TONS of people who were in it for the money. That was clear by what they knew, how hard they tried, etc. There were more who seemed to think it would be interesting but weren't sure they wanted to do computers. There were others like me who breezed through the early programming courses because we were self-taught already in such simple things (basic loops, etc).
As I went through school, the bubble burst and the idea of instant riches from computers disappeared. Biomed seems to be the new instant riches career.
The biggest attraction to the field I see now for the average person is games. Everyone wants to make games. You like video games? Why not make them! You can get a CS degree or go to one of the many colleges offering game focused degrees (both accredited and fly-by-night). If you're on Windows, you have no chance at being exposed to programming. When I was younger we had HyperCard on the Mac (fantastic), BASIC on DOS/Windows, and you could learn. Today, Windows doesn't come with anything to learn programming. There is free stuff out there, but it doesn't come on the computer. Combine this with the fact that in the DOS days you could make something decent looking with BASIC or Hypercard that looked somewhat comparable with "real" software. Try that with today with anything. GUIs aren't easy. Even VB requires some rather abstract concepts (like events).
Some schools are not much better. The school I attended (DeVry) has scraped their computer program (which wasn't bad) and has replaced it with the "tracks" system. Now you don't get a CS degree, you can get a degree that focuses on database programming, or computer forensics ("It's computers, combined with CSI! Fight crime!"), or something else. It is nowhere near as general and well rounded as it was.
CS degrees seem to be being dumbed down (which seems at least due to trying to attract more people during the bubble). My local state school (which I attended for a while) had a pretty good CS program, but they've were dumbing it down as I left (putting off harder classes, using "easier"/trendier languages, etc.)
But like the article said. Computers aren't magic boxes any more. They are a normal part of life. They are like cars. Most people don't care how to make a car, only some people will try to do that for a living. We may be near that point with computers. Most of the children I've met in the last few years may use computers a ton, but don't care much about learning how to make stuff for them. They don't even have a passing interest in trying to find out the beginning. I may not know enough to make a car (far from it), but I understand some of the principles behind it. I know about the internal combustion engine.
I don't expect them to want to know about RCU, radix-trees, elevator schedulers, memory mapping, and other relatively esoteric things. But many don't even know about programs/operating systems/processes, or even really understand the filesystem hierarchy. They can get around quite well, and they've been trained in how to make flashy Powerpoint presentations about pointless things (I can't tell you how great a skill I think that is that the public school taught my 13 year
Comment forecast: Bits of genius surrounded by a sea of mediocrity.
"The Death Of CS In Education?"
You know with all the "death of", "failure of", etc. I get the impression that you all have a secret fear about the longevity of your entire profession. Maybe you all should stop undermining it, and there'd be some future left..
What the profession needed - and still needs - are people who can communicate effectively. The subjects that are taught in a CS course - imho - are not always that. I've worked with CS graduates who can't present a technical subject to an audience, can't put together a design paper, can't explain their thoughts. BUT - they could write a mean compiler, explain (badly) NAND gates, etc ...
"The greatest lesson in life is to know that even fools are right sometimes" - Winston Churchill
You can spend an American price on an education for a job that pays competitive wages in India. It's a no-win situation. How is it justifiable to spend $50k on an education to make $6/hr as a programmer?
Government mandated course description pamphlets list the percentage of graduates who get jobs and their average salaries. The information I have gleaned from my course's pamphlet is that the local employers aren't hiring all our grads and they don't pay very well. Of course that means that we have declining enrolment.
All of the above is fine. It is supposed to show that the law of supply and demand is working. The thing that gets my goat is that these same companies are pleading with the government to let them hire foreign workers. If they paid decent wages and hired more new grads, there would be no shortage of potential employees.
Lawyers and accountants get it so where's our $400/hr?
We'll see more CS students when accountancy and legal jobs are outsourced to India.
The end!
you were the ones who did the bare minimum to get through university. Never read the textbooks. Pooled efforts with your friends to complete assignments, plagarising off each other, and getting away with it until the university introduced automatic plagarism detection software. You guys were the ones who came into the lab and complained that you couldn't get a terminal to complete your assignments due to those of us who actually chose to study this field out of actual interest taking up seats. You guys would complain that you couldn't concentrate because of everyone talking about programming. Yeah, I remember you guys.
How we know is more important than what we know.
I considered doing Computer Science at university but I decided against it (doing physics instead) as I was told by many people that job prospects were limited due to an already saturated market. Not actually being in that business I can't claim it's a valid reason but if I was told it then perhaps others were too and decided against it?
Of course, with tuition fees introduced in British universities there's been a fairly large decrease in students applying this year as compared to previous years. It could just be that people aren't taking this into account and are just claiming a decrease in interest in the subject.
If we can hit that bull's-eye, the rest of the dominoes will fall like a house of cards... Checkmate.
Public breast-beatings like these are generally political maneuvers by people in the field, who want more power and funding. I'm a physicist, and in my field you hear the same kind of thing: boo hoo, the number of students majoring in physics is dropping, it's a national crisis, please throw money at us to cure the problem. Usually the people complaining are faculty who produce 20 grad students over the course of their careers, and tell all 20 of them that they're failures if they can't make their way into careers exactly like their adviser's: teaching and doing research at a school that has a high-powered graduate program. There's always the nationalism, too: watch out, because the Russians (or Chinese, or Indians, or, ...) will beat us. They always leave out some of the relevant facts: that the U.S.'s graduate-level educational system is the envy of the rest of the world; that the number of people the U.S. is trying to educate at high levels is higher than anything that's ever been attempted before in all of history. People misuse statistics like crazy, too. For instance, they compare the number of students graduating in India with the number graduating in the U.S., but the degree programs in India they're including are basically like AA degrees, not programs that are comparable to a U.S. bachelor's degree.
Another issue that people tend to sweep under the rug is that there is a pipeline at work, and the reason people drop out of the pipeline is usually a good one. At every step along the way, some people are dropping out of the pipeline simply because their genes don't make them good at the field. Others are dropping out because they're low on motivation. Others are dropping out because they don't enjoy it, and can tell that they're not going to enjoy it once they're out of school and in a job. Still others are dropping out because they see the field as being incompatible with the family lifestyle they want.
And finally, these fluctuations in enrollment are usually driven by Mom and Dad. There is always a small core of people who were born to do a certain thing, whether it's music or plumbing or CS or physics research; they're in the field because they love it, and they love it because it's what they're naturally suited for. Layered on top of that core is always a much bigger number of people who majored in something because Mom and Dad told them they could make a lot of money at it. When times are good, the core still does well, but the wannabes bail out, because it's not turning out to be a good way to earn big bucks doing something that they're marginally talented at.
Find free books.
Give young students a sufficiently motivating introduction to computers with an open transparent system they can easily tinker with, and are allowed to tinker with. You already know which one.
Back at my high school we had a bunch of 20 MHz Macs, later replaced with Windows 2000 systems. The rules were: don't touch anything you dno't know, don't access at all outside class, don't do anything that could possibly ever be dangerous, don't tinker so that you don't break it, and no, you can't change your screen resolution because we don't want you to and we locked down the sytem to make it impossible... you get the idea.
At the same time, we were taught Word, Excel, basic Photoshop (that one was good), block diagrams, and a ridiculous subset of C++ (no pointers!). Oh yea. Inspiring.
Thank god I already knew the difference between schools and computing in the real world already then.
Why is computer science more important than software engineering?
Because even the world's most powerful super computer, without good algorithms, will take centuries to sort a phone book.
A clever algorithm is eternal, programming languages, operating systems, and hardware come and go. So if you want to make a BIG difference to the world, CS is the way to do it. We still don't know if P=NP !
I read the article, and I disagree utterly.
The problem is a much deeper-lying one. Universities are selling themselves as steps towards getting jobs. With very rare exceptions (divinity, for instance) this was never the case, nor was it intended to be. They are not vocational institutions, nor are they designed as such.
I have seen, and been in, vocational institutions. They are very fine places (called vocational schools, technical colleges, technikons or what have you) where pupils are drilled in particular modes of work to accomplish given tasks. They are very good at what they do, and they often work alongside other teaching systems such as apprenticeship schemes. They are not interested, institutionally speaking, in research, nor in high-flown theory. They are there to tell little Johnny that if he pulls the lever on the drill-press smoothly and evenly, it will produce an accurate, regular hole with little risk of breaking the bit. People who want to learn to be Java programmers would be well served by attending such courses. They will learn to crank out Java well, repeatably, and quickly. They won't learn in-depth knowledge about garbage collection strategies; that isn't why they are there.
Universities are not about drilling students. They are set up to expand minds. In principle a university could be a few comfortable seating areas around a vast library, with students exploring under the guidance of other people interested in expanding human knowledge. Add a few laboratories, maybe a few lecture halls for guest presentations, and you're there. In the computer science world, where the point is to have students truly understand on a deep level what is going on inside the computer, and even inside computers which only have theoretical expression, drilling them in Java would be a total waste of time.
The writer of the article wants student numbers up, and shows little or no interest in the raison d'etre of the courses and departments in the first place. His agenda, as revealed by the article, is for universities to be, or to become, vocational institutions. This is in line with the existing trend for universities to beg for students, tempting them with airy promises of gainful employment. The problem can be phrased as a question: where will those who wish for the services of universities, rather than vocational institutions, go?
Right now, the best bet would appear to be a library, or perhaps the web, because only there is pertinent information available with a minimum of time-wasting distractions. At this rate we bid fair, at least in computer science, to leave behind the benefits of university courses and return to a pre-academic level of support for research. I won't go so far as to say definitely that this is a bad thing, but I do think that to present what the author is suggesting as a university course is bordering on the fraudulent.
"When I entered college in 2001, there were TONS of people who were in it for the money. That was clear by what they knew, how hard they tried, etc. There were more who seemed to think it would be interesting but weren't sure they wanted to do computers. There were others like me who breezed through the early programming courses because we were self-taught already in such simple things (basic loops, etc)."
So when I read on slashdot about someone saying they have so and so on their programming staff, who has a non-cs degree, and they're one of the better things to happen. Can one conclude that it's the middle group that you and they are speaking of?
It's the U.S. too. For example, I'm going back to school and getting an engineering degree. Why? Because my InfoSci degree is pretty much useless.
Software is the future of business. All businesses will become fundamentally software companies. Many are already there. All work will have to be custom, because if you simply buy the same packages as someone else, you have no competitive advantage. It doesn't matter if the industry is farming, manufacturing, or high tech, the ability of your company to compete will depend entirely on your software and the people you employ to make, configure, and maintain that software. Companies that view IT merely as an expenditure will be the road kill of other companies that use custom software to compete in non-traditional ways. It's also a network issue - most companies will want to integrate systems with their partners. If your company doesn't have this ability, and specifically the ability to custom tailor your systems for the integration, then you will be out of the network and, in a few years time, essentially completely out of the economy.
Maybe it has something to do with the fact that high-school level CS courses are a total joke. Hell, the College Board has changed the official AP computer science language to Java. Where the hell am I going to use that? Once I got to college, though, the CS was very interesting and useful.
One of these days, I'm going to cut you into little pieces.
This discussion features a number of responses indicating disapproval or dismissiveness surrounding the field of web-development.
To all those who have responded in this tone, please stop being so fucking arrogant and elitist.
Just because you don't need to know how to code a bubble-sort in C to create a good website, doesn't make the endeavor any less valuable, significant or difficult.
Web development simply requires a different skillset than (for example) graphics programming, and is no less difficult.
Sure, its easy to build an awful website using Frontpage, but it's just as straightforward to create a crappy 3-d graphics application. Creating an excellent website or an excellent 3d graphics application are both "hard" endeavors.
Look, just because you understand math better than most people doesn't make you superior, it just makes you different (and probably more nerdy).
Get off your high horse and understand that there's more to intelligence than raw IQ.
Perhaps we are just getting tired of pretending the obvious doesn't exist --- or in other words we are becomming so accustomed to computer in general that we are naturally quantizing its purpose and functionality?? Or from another perspective, let's up gear and find a better way to calculate with more then just the numerical subset of abstraction, but with what ever abstractions we might come up with.
... well... us humans. Elements or facets of abstraction physics include the actions of abstraction creation and use, such as:
Lets try try this other perspective!
A course in: Abstraction physics
Introduction:
The physics of abstraction (abstraction physics)is of an outside looking in perspective, where rather than creating another abstract language (inside), instead sees the underlying action machinery enabling the ability to create languages (outside looking in). Since Abstraction is a human mental characteristic, there is an inherent subjectivity to the topic. However, through the use of computers we can be more objective about abstraction physics. See: Abstraction (computer science)
Abstraction enters the picture of computing with the representation of physical transistor switch positions of ON '1' and OFF '0' or what we call "Binary notation". However, computers have far more transistor switches in them than we can keep up with in such a low level or first order abstract manner, so we create higher level abstractions in order to increase our productivity in programming computers. From Machine language to application interfaces that allow users to define some sequence of action into a word or button press (ie. record and playback macro) so to automate a task, we are working with abstractions that will ultimately access the hardware transistor switches which in turn output to, or control some physical world hardware.
Programming is the act of automating some level of complexity, usually made up of simpler complexities, but done so in order to allow the user to use and reuse the complexity through a simplified interface. And this is a recursive act, building upon abstractions others have created that even our own created abstractions/automations might be used by another to further create more complex automations. In general, if we didn't build upon what those before us have done, we then would not advance at all, but rather be like any other mammal incapable of anything more than, at best, first level abstraction. But we are more, and as such have the natural human right and duty to advance in such a manner.
Abstraction action constants:
There is an identifiable and definable "physics of abstraction" (abstraction physics), an identification of what actions are required and unavoidable, in order to make and use abstractions. Abstraction Physics is not exclusive to computing but constantly in use by
0) Defining a word to mean a more complex definition (word = definition, function-name = actions to take, etc.)
1) Starting and Stopping (interfacing with) of an abstraction definition sequence.
2) Keeping track of where you are in the progress of abstraction sequence usage (moving from one abstraction to another).
3) Defining and changing "input from" direction.
4) Defining and changing "output to" direction.
5) Getting input to process (using variables or place holders to carry values).
6) Sequencially stepping thru abstraction/automation details (inherently includes optionally sending output).
7) looking up the meaning of a word or symbol (abstraction) so to act upon or with it.
8) Identifing an abstraction or real item value so to act upon it.
9) Putting constraints upon your abstraction lookups and identifications -When you look up a word in a dictionary you don't start at the beginning of the dictionary, but begin with the section that starts with the first letter then followed by the second, etc., and when
Too many employers look for checklists of skills rather than overall knowledge of an area. In a job interview I was once asked why I didn't ever get an A+ certification. I told them that since I had 6 years experience in the field, I didn't need it. They still pressed me to take the A+ test after I was hired.
Similarly, the fact that I'll have a related degree in the field won't matter to a lot of HR drones. They care more about MSCE and CCNP certifications than they do a Bachelor's degree. I know the underlying concepts of networking, routing, etc., but since I haven't worked directly with Cisco routers, I'm apparently useless to them. Who cares that I can learn whatever software package they're using in a week or so?
No wonder no one wants a degree in "CS". They just want a job in the field, and there are easier ways to get there than a 4-year degree.
Why is it in decline? CS jobs can be done in India for cheaper. People are looking for careers that pay well enough, have good job security, and can be done in their country.
One problem with "Computer Science" is that so much of the industry is now developed in secret. Everyone is re-inventing the same wheels, and much of these inventions are not generally available for education and science.
Perhaps the most useful course in our current world would be one on reverse engineering.
This only serves to show that the computer software is not science all.
The software field ofter degrades to one made up of "software technician".
Of course the openness open-source lines up with science more.
I've programmed as a hobby all my life and have a computing degree from Carnegie Mellon. I'll tell you what is hard: Finding a job coming out of college. Everyone looks at you like you have no idea how to code because you have no experience. It makes me mad I went to college when I coulda just coded for some startups in the mid 90s and been fine.
God spoke to me.
A lecturer from De Montfort? People only apply to De Montfort as their UCAS "backup" - it's last on everyone's list in case something goes horribly wrong at A-Level. I very much doubt De Montfort are getting the best CS-stock through their doors, and have had to adjust their courses accordingly. The author should talk to people from Southampton, KCL, Exeter or Oxford, and then re-visit this essay - the outcome will probably be a different picture.
And the BCS is a worthless organisation to boot. Approx $180/year for regular membership, and you get a quarterly newsletter. Maintained it for years, and I'm not even sure why.
Computer science needs to be theoreticl. It also needs to be practical. Programs should focus on the theoretical stuff (data structures,algorithms, etc) in the first few years as a base, then give the students an option to follow a more specific area such as software engineering, GUI design, AI, etc. To break into the field, you need a specific set of practical skills such as SQL, Struts, Crystal, etc etc. The CS programs are not providing practical skills like these.
in my 4th year, I can understand why it looks so unattractive. Well, for the first 2 years, all the courses were basically mandatory, and the only ones that weren't had to be non CS classes. Which is pretty stupid in my opinion. If i feel the need to take these other courses, I will. I had to take 3 mainstream courses. The first 2 was basically drilling java into my head. As a C/C++ programmer, I despised it and it felt like review. A lot of the stuff we were taught, I will most likely never use in the field I will be getting into (gaming). Basically, they felt like review courses to get everyone up to speed. Then we have to take a series of specific classes. This included various Calculus classes, Databases, Operating Systems, Ethics (useless), Assembly, Data Structures, Project Management, and the list goes on.
Considering my ideal profession, how useful do you think an entire semester of databases will be for me? Not very useful. Sure, a concept might come in handy here and there, but really, a full course devoted to it is mandatory? What about Calculus? A lot of people say it helps you get into different mindsets, but really, I took it in high school already, I know basic calculus and that should be good enough. Operating Systems? Not very helpful, interesting, but completely useless to me.
There is only one graphics course. There is a second, thats Graphics/Audio, and it JUST became a standard course (used to be available if the Prof. felt like teaching it). There are a couple other courses useful to me, but probably more than half of them aren't. And its very frustrating, paying all these tuition fees, and I can barely concentrate on what I actually want to do. Don't get me wrong, most of these classes are helpful, but a lot of it I can just quickly reference in a book and move on.
I definitely think it would be beneficial to split CS into different strains. We wouldn't be spending obscene amounts of money on courses that may or may not be useful in the future, and more on courses that will most likely be useful. A jack of all trades in CS is useful but I would gather most of us have certain areas we specialize in.
Absolutely, CS needs to include practical courses like Burger Flipping 101 and Cash Registers 101...
Excuse me, but please get off my Pennisetum Clandestinum, eh!
"But part of the reason for that is that there are TONS of people in the local market, and many of them are idiots."
As opposed to the quarter ton who let their CS "gene" go to their heads, and they think they're God's gift to computing.
"As the oversupply of get-rich-quick people slowly disappears as they go onto other careers and manage to find jobs, things will get better and salaries will rise."
Problem with that persumption is that when the situation doesn't improve and the "get rich quick" scapegoat is no longer around. People will turn to something else to blame while the situation steadily goes uncorrected.
The market itself will start having to pay higher salaries for professionals desperately needed and increasingly harder to find. This will attract more people to the field.
Your ad could be here!
Not syprised at all.. and I beleive students are right to flee the discipline. I personnaly got a bachelor in applied computer science and a master degree in software engineering. I went in because I didn't know what to choose and figured going to CS would expose me to a large spectrum of different problems and fields. I also really enjoyed building things and creating solutions to help people and save times. Solving hard problem is something I really like. And I had fun... .mostly because they have not been trained for it. You get so many people with community college degrees, business degrees etc. who get to be analysts and decide making many choices before anyone with in depth technical knowledge gets to say something. Even promotion possibilities seem grim since CIOs amnd other managers even of technical teams have no technical background.
Until I started to work the field is filled with people with no knowledge who thrive by throwing buzwords around, pushing the latest trend and repeating general statements they have read online or in magasines. Most of the time they have no idea of how to build systems..
Would you ever see a CFO without an acounting degree?
Sure games or start ups are more fun... but it's hard to live decently doing that, either the pay is bad or the hours are insane (even in games the true stars are the game or art designers... not CS people). Scientific applications are fun but hard to come by, mostly because scientists know how to program themselves.
Welcome the the CS people, clerks of the new millenium. They just do as they're told.
Sorry for being so grim... there is probably a lighter twist to it, but these days that is the way I see it.
Here at UT Austin we have one of the best CS programs in the nation. The non-honors teachers are getting head hunters coming to them for the first time they can remember. The honors program gets heavily recruited all the time. From here, CS looks perfectly healthy.
As for the mathematics, when working on real projects mathematic formalisms are a dime a dozen and absolutely vital.
I feel that we have a modern program and a good balance of theory and practice. There are plenty of hands-on classes as well (compilers, operating systems, robotics, right now I'm in a class working on the DARPA urban challenge, etc . . . )
Students don't like CS anymore!
Er Galvão Abbott - IT Consultant and Developer
when i was in high school i took VB and C++, the first two years the school ever offered programming classes. i worked with friends writing all kinds of programs in and out of class. we had a lot of fun doing it and went well ahead of the rest of the class - and the teacher ran it that way so we all were learning at different speeds based primarily on interest. i got to college fall 2001 thrilled about CS and found lazy people who wanted money. they looked up programs online and worked together to find a solution described by the text. not looking for out of the box ways to code. and the professors didn't enourage learing more, but only sticking to exactly what the book said. they only wanted 1 way to write the program. no one there had ever heard of linux or even XP or 2000 or OSX (i'd been using whistler since early betas) it was all windows 98. i dropped computer science and went into liberal arts. i took a few more classes for fun. maybe i should have transfered to another school since my liberal arts BA has me working for 8/hr at a bookstore while the kids who wanted to cash in as Computer Science all have.
...I would have to say that writing a game engine in c++ is much MUCH harder than writing something to run against a database in a browser. There's nothing wrong with writing web apps, but nothing hard about it either....after the first few it just becomes tedious repetition.
Seriously, if most people think computers = microsoft, then it's no wonder they got no interest in computers, at all.
That's like saying nobody wants to be a mechanic, but 95% of the cars on the road are from Lada.
(Disclaimer, I'm an Electrical Engineer).
I normally see just much of what the parent has listed as being part of an Electrical Engineering disciple. In my experience, Computer Science just does not take on these areas... (CS people studying information theory *today*, HA that's a good one!)
Isn't work in multimedia codecs typically done by Electrical Engineers (signal processing, embedded systems)? The design/implementation of MPEG video codecs requires background in signal processing, VLSI techniques, etc....
My somewhat biased view is this: if it involves calculus, (mathematical) optimization, advanced probability, adaptive algorithms, etc, it is usually part of electrical engineering. On the other hand, if it involves abstract algebra, applied linear algebra, heuristic algorithms (i.e. those not based upon mathematical optimization), discrete math, compiler design, it often falls under computer science.
I've taken a sizable number of CS classes. Case in point: the Fourier Transform is apparently a new concept to CS Graduate students in a highly ranked ("Top 20") US University. Even more disturbing: deriving the DFT of a simple sine-wave was considered overly difficult! Yes, I realize most CS majors don't do this every day... Then again, its only simple calculus, and is taught to EE sophomores/juniors! This is not the only example and I could go on and on....
I'm not trying to start a flame-war, I just don't see CS as being "math-based" compared to other fields. For me, CS is somewhere between Information Technology and Engineering in terms of math.
Perhaps students aren't as dumb as people think they are.
But let's see here. You could work your behind off getting a degree in software engineering and earn a good wage, but have to work 60 hours a week, in a cube taking crap from management and clients and deadlines; not doing much of the work you think you'd love and always under the looming threat of being laid off.
Or, you can get a nice stable job in healthcare or education or with the government. Paid a good wage with good benefits and security and actually be a social person.
Indeed. The glory days are over and kids are smart enough to understand that you work to live, not live to work. Leave that to the guys in India right? I wonder where the 'A' students are going to go?
1) He cites a 39% drop in students from 2000 to 2005. I contend that the numbers in 2000 were vastly over inflated and so a drop is a good thing. Gets rid of the riff raff and gets the numbers of graduates in alignment with the actual job market.
2) He speaks of CS, but muddles in things I would refer to as software engineering, computer infomation systems or managment information systems. CS should be research based while SE, CIS and MIS should be more vocational.
3) There a sort of 'what are we going to do if they slash the department' aspect to the article. My answer, find another job, just like the rest of us who have been laid off. No sympathy here.
4) He cites 100K IT graduates a year ready to do offshore support work but fails to mention that Indian companies are looking outside of India for labor. There just isn't enough labor out there to keep up with the crappy software. Hint: maybe CS departments should focus research and training on software quality. As a foot note, I wish I had the numbers or an economist would do a study, but in my gut I feel that demand for skilled IT labor is vastly outstripping supply. The US, Western Europe and India are all being depleted, or have been depleted, of skilled IT labor forcing them to look toward Vietnam, Indonesia and West Africa. And that is a huge chunk of the global population.
5) Another research hint, most software I have seen has been brittle and required much programmer attention as business rules changed. How about focusing on making software soft and flexible? This is very much where AI techniques might be used.
6) I agree that the best thing to do is to be cross disciplinary. That is where the most dynamic, chaotic wild and wooly problems live. The ones really fun to wrangle.
putting the 'B' in LGBTQ+
I went to college to get an education, not training. If the education was a good one and you're reasonably talented, you should be able to fill in any holes in your knowledge yourself.
Of course it helps to find an employer who can recognize this and is willing to invest in you. Rather than, say, one who might be trying to pay bottom dollar for recent grads while simultaneously expecting them to already know everything about programming in a business environment?
(just my $.02)
Software is hard, but it's refreshing to see that Slashdot is learning. Dupes are now posted by reference and not by value!
-a.d.-
I'm Erwin Schrodinger and I approve of this message, and I do not approve of this message!
In my experience, most people who've finished a CS course still don't know exactly what CS is. I'm pretty sure I couldn't give you a robust definition with which no-one equally or better qualified would disagree.
And this isn't just me. If memory serves, some big names in computing at various US universities recently produced a paper that was supposed to identify the differences between things like computer science, computer engineering, software engineering, and several other related courses. Even in that, they basically came up with a relatively vague definition with lots of overlap between many of the course titles. The differences cited were more in the flavour of the course -- the perspective, if you like -- than in the actual areas of study.
I think this is a big part of the problem today. No-one really knows what CS is, including most university CS departments.
If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
Smart people can go make a living else where. Sure I know software development != CS, but unless your pursuing an Academic career and/or Mom and Data are paying for your education, most people pursue a University Degree with the idea of earning their living in a subfield.
So why go $50K in debt to pursue a career with the following features:
1) If you have no experience no one will hire you. This was especially true if you graduated post 2000, can't tell you how many University graduates found themselves working at Best buy on the sales floor.
2) They want to retire you by 50, at the latest.
3) Forget creating new code. You will spend 90% of your career fixing other peoples mistakes, kludges and hacks. Get a start on that ulcer.
4) A career where you typically spend long hours working alone. I might like it, but most people are more sociable then me.
5) They will lay your ass off in an instant to export your job to the developing world.
6) They will kindly let you stay a few months to train your replacement.
7) You job will come back onshore, long after your gone, at a reduced rate, when management realizes the difficulties of managing a project from the other side of the world. By then there will be plenty of work(see point 3).
I sound more bitter than I am, but if some bright young person were to ask me if this the field to go into, I would recommend they run, not walk away.
the problem is two fold the way I see it. 1) The market wants tradesman programmers. Something like a carpenter who can just come in and build what the blue prints from the architect say to build. That's really what's happening to the market. It is cleaving into "practical" computing and "academic" computing. The other thing is, it is getting harder and harder to produce truly ground breaking work in CS. Seminal works like the Public Key Private Key exchange and RSA haven't occurred in recent memory (I am sure the ever diligent slashdot crowd could correct me). So, this brings me to a sibling field: Electrical Engineering. When I was working on my MS in CS, a huge portion of the work published and the very professors in the CS department were EEs! Even the field of CS where electronics benefits best (say, optimized wiring algorithms) is still done under the "CS" realm. And then, there is one of the massive trade publication that kinda speaks to this: IEEE (Institute of Electrical and Electronics Engineers). How many of the papers published in their are about the latest in analog circuit design? Sure, there is plenty in there dealing with EE work specifically, but not much. And, finally, 30-40 percent of the people who write code along side of me are EEs.
This is what I think computer related courses should be split up into:
1.Computer Science (this is where all that fancy math stuff comes from)
2.Software Engineering (this would have lots of practical programming as well as courses covering things like testing, code coverage, code quality, peer review of code and such that you see in real software engineering shops)
3.Information Systems (this would cover systems analysis, software design, database design and the other stuff you need if you are going to design programs)
and then some kind of internet or networking course that covers stuff like TCP/IP, HTTP, the internet, the web, HTML, internet programming (PHP, Perl, javascript etc). Maybe have one course for the lower levels (how to configure routers, subnetting and all that kind of stuff) and one for the upper levels (how to work at the application layer)
Quarterly corporate statements will never show a return on investment for training done during that quarter. "Investors" want the fastest, highest return possible, every quarter. They want any and all training to come from some other avenue than their pocketbook. If they had to "invest" in training, they would then want long term employees, meaning they would have to offer lifetime contracts, etc, like Japan used to emphasize, along those lines, or the olden days in the US where you could actually plan on a career some place and arrange your life around those expectations and levels. And this is now something which they certainly don't want to do and is nearing total extinction.
They want disposable tissue paper people, "human resources", worth nothing more than whatever they can exploit the most for, the quickest, and whenever possible, replace even cheaper at the drop of a stock option or a slightly better set of numbers in an SEC filing. You as an employee of some big corporation are the same as the latest desktop or copier or forklift or a supply of toner. You are just another "resource". Desktops and copiers don't need to be trained, just used up, beat up, milked dry, and then chunked in the rubbish and replaced whenever necessary. That's YOU now.
Change those market rules and onerous practices, put the humanity back into the equation better, and you'd see positive change. Until then, the long slide to oblivion and rule of the patent/obscure trivial "IP" trolls and the loyal to nothing but their wallets globalist/chartists/cabalists, the famed captains of industry now, welcome to the age of....
The Outsourcer-ers.
I recently started a BSC CS degree in internet computing, admittedly because I see it as the best choice for obtaining a good career that I also enjoy. I've always been enthusiastic about computing and was expecting a lot of others like me on my course. Oh how wrong I was. To start, my particular course - for my individual year of study - has 7 students including me. We do a lot of CS courses at our uni so we modularise certain aspects and as a result end up sharing lectures with up to 200+ others, but this will lower as the years progress and the modules become more bespoke to the course.
Out of everyone I've met in various seminars and lectures not a single person has a genuine interest in computing. Next to none had former academic experience in computing (the general trend was ICT), next to no one in the programming sessions had done any type of high-level or otherwise programming, next to no one had written a web page in html, the list goes on. Does this unnerve me? Yes. Don't get me wrong, there'll be some out there but the ratio is slim. I'm a little comforted that they teach everything from scratch so you can learn to enjoy it. Although I know a lot of the stuff being taught now it's fun to be taught it in person and to also learn new things I didn't pick up the first time.
Despite this, the view I get is that all people want is safe entry into a career, rather than academic knowledge. Who mentioned we were down to the enthusiasts?
I've been thinking of switching to computer science as a whole but I believe when I aim for a job (which will be web-related, it's what I want) this degree will suit me more. The thing is, I don't want a job which non-enthusiasts can obtain just as easily. Surely there must be some professions out there that value us?
http://www.tata.com/tcs/media/20060131.htm
a ces+labor+shortage/2100-1022_3-6040987.html
/ 2100-9589_22-5730972.html
f shoring/0,3800003026,39123944,00.htm
http://news.com.com/Indias+outsourcing+industry+f
http://news.zdnet.com/India+faces+worker+shortage
http://www.silicon.com/research/specialreports/of
It looks like they are going through the same cycle the US and Europe has.
putting the 'B' in LGBTQ+
I graduated with A Computer Science degree in 2002. I couldn't pay someone to give me a job, so I went back to school and worked on a Masters in Education (easy compared to CS). Now I teach computers to middle school kids. Computers are not on any standardized test and won't keep A school from making AYP, so I'm left alone to do what I please and actually teach these kids some things. For example, I going to start teaching them Linux next week, I not going to tell anybody, I'm just going to do it. No one would care even if I did tell them (its not going to cost money).
The 24 hours in Math pretty much gaurantee that I have a job for life due to the shortage of "highly qualified" Math teachers. Also, they haven't figured a way to ship teaching jobs overseas and the time off is very nice.
The downside is the pay but, you can take off and work as a programmer for a year or two and make some extra money (you can go back to teaching when they outsource, there will be jobs waiting).
Who would pick a career that is in the gun-sights of offshore outsourcing and cheap visa workers? Big biz lobbyists are working hard and sucessfully to do to IT what they did to farm work. Pick IT because you *like* it, not because it is a stable career. It is not predictable. Even before globalization, it was subject to 10-year-cycle recessions and constant change of technology. No we have free-trade in the uncertainty mix.
Table-ized A.I.
Smart guys adept at programming need a good challenge.
It would be sweet to develop realtime OS apps for lunar rovers, or missle guidance software, satellite software, etc. All really cool and really rare. Like a high school football player wanting to play in the super bowl...and ends up 2nd string cornerback in some arena football crap.
Yeah, just got through watching superbowl, my analogies are jacked.
Theres no way i could of got through school without Counter Strike! This is barbaric!
I have ridden the mighty moon worm!
It is the sales and marketing drones who nobody cares about - but they do make out like bandits anyway, so nobody should care about them anyway.
<^>_<(ô ô)>_<^>
I have a question for those who are disappointed with the excess of mathematics and theoritical classes. Which university are you attending?
Please do tell me, because the Informatique BS at the University of Sherbrooke has been extremely disappointing so far and I wouldn't mind having something more computer science-ish than what I am currently taking (I guess I can't really complain about the lack of computer science material, as the title of the program is "informatique" and not "science de l'informatique".
All these people bitching about "kids these days don't want to learn math" need to get a clue: what got me [and a lot of other students] off that career track after getting an associates was the huge amount of outsourcing being done.
All the jobs in the want ads that I saw called for "senior-level" people with 5-7 years of enterprise experience, and outsourcing was marching steadily onward, to places even cheaper than India.
Why bother with slogging through school racking up debt when there's no jobs?
~
As being a certified oil monkey at Jiffy Lube has to do with Automotive Engineering.
Which do you want your degree to be more like, "___ engineering" or "___ engineering technology"?
For most people, it seems to make more sense to get a theory-based foundation in the classroom and then learn/implement practical stuff on one's own than to do it the other way around.
"The use-mention distinction" is not "enforced here."
If you accept McBride's premise that CS is less relevant today to IT, it does not follow that CS is dying. You could use that premise to argue for why the number of students is dropping, but a drop in students doesn't mean a discipline is dying either. CS is an academic field, not a trade.
If you're going to claim an academic field is dying you should instead argue that it is no longer intellectually interesting. Specifically, you might try to should show that less people are interested in studying it for its own sake. Don't argue it is dying because less people are in it to get rich, or a career. The loss of such people is really only a loss of bodies that provide funding.
A reasonable argument that CS is dying would much more resemble the argument that alchemy is dead then the argument that the blacksmith trade is dead.
I just finished an undergraduate CS degree. I found the field to be interesting. I would like to study more, not to enhance my IT career, not to meet someone else's expectations, but for its own sake. I did observe one thing threatening the academic field of CS; the constant pressure from government and business to behave more like the ICT school Mr. McBride runs.
I discovered that CS departments like the one I graduated from are stuck managing a delicate balance. If they were to ignore government and industry pressure, they would have less career centric students, and less resources to offer a quality CS education to intrinsically motivated people like myself. But, if they overreact to the pressure, someone like myself could end up with an even lesser CS education than the one I'd receive if all the career centric students disappeared.
This is basically FUD. Computer Science is still the 6th most popular degree in the UK according to the BBC, above English and below Business Studies. Computer Science isn't dying, numbers have just settled down to normal levels. It's still much more popular than "traditional" subjects, including History, Mathematics and Physics. As for me, I'm doing a Maths & CS course. Gives me a powerful combination, assuming I don't fail both.
... to make money for living. At Lockheed Martin information session they said they're hiring 800 CS graduates this year only.
I could not agree more. I am finishing my masters, and considering PHD programs. I must say it is extremely frustrating finding a program that seems at_all interesting! The problem is not that there arent enough interesting courses research, but simply that 99% of the programs out there just seem to have such BORRING requirments! I am in theoretical computer science-algorithms , graph theory, etc... Every class I have taken formy masters degree has been cross listed as a mathematics course. It has been FABULOUS. Yet for some reason, in order to get a phd I must now go and learn about data bases, architecture, operating systems, OO theory, software practices,....etc Dont get me wrong, I am willingto beleive all of the above fields have some value and are interesting in their own right. But COME ON! Take OO-theory for example; the focus is on writting code in a certain way--designing classes, so that if we are good some OO fairy will appear and give us phraise for doing things `the right way'. Fine...excuse my synicism. I will cut to the chase: certainly we should all agree that ALGORITHMS is at least a branch of CS. Yet the background I need to be more effective in this area, are things like Combinatorics, probability, Optimization, Graph theory, which are all subjects typically offered through mathematics, and certainly NOT in any kind of core requirments. Why should I waste my time learning about OO theory?? I mean maybe there are worse ways to spend ones time, but in terms of academic background i might as well be in art history. so...my conclusion is--if you want to study CS for real, you should go into math... My problem is that I was suckered into the whole CS degree. I wanted to learn about how programs work so i took CS. it seemed obvious quite early on that the algorithms were at the heart of everything. In my undergrad degree i got 1 whopping course in algorithms--wasnt even required. If I want to go into a math program , well i might but i havent been given any advantages wasting my time in those OO courses...
Counterstrike should never stop educating our kids.
Jesus Saves
of projects is the norm. And no one wants to go into a field with negative job growth and essentially _no_ future. A job where, after working 20 years, at the age of 40 you'll be forced into another career flipping burgers.
Screw that. Go into medicine, law, or crime (become a cop).
The average cop makes only $40k to start, but starts working at age 20 (when they enter the academy), has no college degree, and can retire after 20 years on the job with a far better pension and far better insurance and health benefits than non-police workers. They also get extra jobs outside the usual 35-hour week (yes, that's right, most cops work 35 hours a week and lunch is paid time), paying $40/hour and up so they can earn as much as they want.
Cops are less likely to get hurt on the job than civilians (but they don't want the public to know that, so please don't repeat it publicly). When you're a cop and retire at age 40 to begin drawing a $80k/year pension, you can also get another outside fulltime job doing security analysis, diplomatic escort, or private-eye work. So at the age of 45 many retired cops are making ~1/4 million per year just putting in time. No overtime _ever_ unless you're paid for it.
When I went to university a major portion of one of the subjects I did was optimising programs for analogue computers. I've only ever seen one of those things possibly soon before it was scapped and certainly never got to touch it's patch cables - but the subject was very useful in terms of modelling systems and optimising the models. It really didn't matter that it was coding in amplifiers instead of a computer langauge - the same principles applied and it often really just comes down to syntax.
They care more about MSCE and CCNP certifications than they do a Bachelor's degree.
That's an understatement. Do you know why employers prefer MSXX certifications? The answer will come soon, but first, a story. I had my yearly review recently. This is my fifth year at this company. When I started at this company, I had no certifications (just a CS degree with years experience) and none is required. Each year, I get the usual jerking motion from my manager. "You did great, but you did too much of X and not enough Y". This year, we had an interesting conversation:
Manager: "You should to get MSCE certified."
Me: "Why?"
Manager: "It's necessary path for your career."
Me: "No, it isn't. What makes you think that?"
Manager: "It makes your resume good. Plus, we'll pay for it."
Me: "After five years at this company, you all of a sudden want me to get certified? That does not sound right. I built the good, quality software that makes this company money without those f***ing certifications."
Manager: "Well, it going to placed as a goal for this year." (He shows me the paperwork.)
Me: "It's not binding unless I sign it. From my point of view, there is no advantage for me to pursue a certification. It takes time that I really do not have."
Manager: "You are right. There is no advantage for you."
Me: "What? Why in the world do I need to do this then?"
Manager: "Remember, Joe, who left recently?" (Joe's not his real name, duh).
Me: "Sure."
Manager: "He held the majority of the Microsoft ceritifcations."
Me: "So?"
Manager: "We get a significant discount from Microsoft if we have professionals with the certifications. We will lose about $200,000 in discounts if we do not ramp up more certified people."
Me: "This is a load of bullsh*t. Why in the world would we put ourselves into this situation?"
Manager: "Well, we are dependent on them."
I will stop here, because it goes off into a wild tangent. For years, it always baffled me why some companies would rather hire MSCE's rather than professionals with CS or even Software Engineering degrees. This conversation basically shed a lot of light. I would imagine that A+ certification has similar perks for a company. But, it really shows what companies really care about. They hope to hire under-qualified people to "engineer" their vision, requiring the use of software from vendors, whose ultimate goal is to lock you into their substandard products and offer perks to "certify" engineers for those products. A deadly cycle, indeed.
Coderz 4 Life
in computer science. it is mostly software engineering, hacking, lots of business-related staff. whatever 'science' is in CS, it is mostly math. So if you want to do programming/other computer related staff, why bother with the whole CS, and if you want to do science, why bother with CS too?
In my case, I've ended up switching from computer science to math, and what I'm happily working on now. I simply want to learn something that does not change overnight, at the whim of the likes of Bill Gates, or 'new internet business requirmenets', or whatever. something more fundamental, if you wish.
what needs to be done to encourage more students to take the courses
Stop importing scabs when wages for computer scientists go up.
That's all.
http://www.dmu.ac.uk/aboutdmu/history/index.jsp
The article a large element of "look at all the useful stuff we do here, not like the useless theory they do at places like Cambridge".
Sadly, both government and students (not just in the UK) increasingly want two things:
There is nothing new about this. There are proportionately for more students far more money going into easy and "useful" subjects like media studies. De Montfort University offers a degree in lingerie design as well as "humanities" degress in dance, journalism and arts management.
There is less and less interest in hard and non-vocational subjects like maths, English, physics, classics, etc.
"Computer Science is no more about computers than astronomy is about telescopes." E.W. Dijkstra
I liked math until it got hard like in calculus, discrete math, etc. I loved geometry. However, I didn't do well math and hence didn't like programming. I managed to pass both CS (major) and required math classes.
Ant(Dude) @ Quality Foraged Links (AQFL.net) & The Ant Farm (antfarm.ma.cx / antfarm.home.dhs.org).
Nothing that is that immature a full of bad practices consistutes a solid foundation for your education. One will pick up enough crap during actual work. College is the time to put some order into your brain.
<^>_<(ô ô)>_<^>
We are reaping what we have sown. Rather a lot of schools in England latched onto the 'GNVQ scam' whereby they could get a boost in the league tables by funnelling large numbers of 14-16 year olds into vocational GNVQ courses where success is ensured by generating large amounts of coursework without a great emphasis on conceptual understanding. These courses are deeply unsatisfactory for the sort of people who would be interested in traditional computer science and there has been a steep decline in the number 16-18 year old students studying academic Computing and ICT A levels. Taken together with the decline in Maths and physical sciences this means there isn't a huge number of people who are both able and willing to study computer science at undergraduate level.
The author of the article has really appropriated the field of computer science for his own eyebrow-raising purposes. It seems to be working with most respondents here though. He basically said CS is not convergent, its not a science, its not applied math, it involves a broader range of disciplines and will ultimately fade away. So the response from every sane person should be, "It is math you idiot. It is probability, it is linear algebra, it is discrete math!" And you can't argue that; this is computer science and you can't change that. As long as there are computers there will be a need for computer scientists. His argument was really talking about software development in the face of industry, business and the almighty user. He should have been talking about how computer science departments are where most software developers and engineers are educated and that really isn't the right place for them. There should be a larger school of engineering and software development that teaches a broader set of topics for the ever broadening field of computation. This field will be technical, it will involve software and understanding of computer science, and the math that supports it. But it will also involve an understanding of other divergent fields that can be applied to the development of computer systems like information science, usability, anthropology, cognitive psychology, etc... There aren't too many reputable schools that do this well. Whenever I hear about this stuff, the graduates of these schools can't develop software worth a crap or design worth a crap. CS grads can't design worth a crap either because CS shouldn't teach that, it should be taught in software engineering and thats where the job demand is always going to be. There's always more engineers than scientists.
When i was in HS ( '73 - '77 ) being a Computer Scientest was meaningfull because they were the guys creating what today we call a "computer" along side guys with "EE" degrees. The EE guys built logic circuits that the CS guys wrote, by todays standards, primitive code that made them work. Compliers were extremely rare and we barely had "high" or "mid" level languages. Most stuff was writtin in machine code.
Now contrast that with today. Compilers, good ones even, are really a dime a dozen. Linkers and assembler are the same. The very talented have created languages, structures and frameworks that take most of the "programming" out of what people do today. Look at Java, Delphi, C#, C++, Ruby, Python, Perl, C, VB, all of them. How much really guts low level programming to the vast majority of programmers really do?
There are libraries and frameworks for practicaly everything. You need a database? Go download MySQL, Firebird, Oracle, DB2, Interbase etc. You want to build a UI? There is the entire MS-Windows API, Gnome, Aqua, KDE and numerous others. Need to talk TCP/IP, there are libraries for that on every platform, with simple invocations for just about every language. Almost everything low level these days has had a wrapper for your favorite dialect put around it.
The vast majority of programmers these days are more or less scripters. Yes you use the vocabulary of your favorite language, but lets be real here for a moment. Lets say you want to represent a list of files to a user via some UI. Are you going to go out and write the very low level code that will determine, with a mathematical proof, that you are reading the file entires on the disk drive to make sure you are doing it as fast as possble? Nope. In windows you are going to use the FindFirst / FindNext API. In *nix you might just spawn off a find thread and get its results back through STDIO. Thats not what a lot of people would say is programming in its classicle sense of the word.
A lot of the first programs i wrote that had a user interface sent me into long nights of just handeling field input, because at that time I was programming in Turbo Pascal 3.x and there were no librairies or API's that did that for you. So I was writing loops, capturing keyboard input, checking to see if was a function key that was pressed and if not then, well most of you know the drill. I had to build it all myself. But the best thing about that was that I had total control of the user expirience and I had total control of the way the software worked. There was very little in between me and the hardware.
These days its hard to even find the hardware, much less interact with it. Everything is burried under virtual methods or its being controlled by the underlaying OS which cannot give you direct control over it, because 8 other programs are all trying to use the same bit of hardware. I used to be able to stuff the keyboard buffer, now I stuff the message queue and its harder to deal with then the keyboard buffer.
The market forces really have not changed, as others have asserted, the nature of the beast has changed. I am 48 years old and 25 years ago there was barely a thing called a network, these days its ubiquitous. 25 years ago you had to either be one very smart mofo or you had to have a degree in Computer Science to be able to do anything other then what you got on a floppy. I was not one of the latter, and I worked HARD to understand what was happening inside tht box. I spent many many nights laerning about interrupt controllers, about drive controllers ( MFM anyone? ) about starting drive diagnostics with debug and understanding what the hell I was doing. I cursed IBM daily for dropping all the memory mapped hardware into the TOP of the address space instead of the bottom, OHHHH how I cursed them. I learned the LIM spec and how to shuffle chucks of memory around. but I digress...
Business embraced the beast and the beast grew and matured. Todays business does not need a person with a CS d
Hey KID! Yeah you, get the fuck off my lawn!
They want there to be more people in computer science.
Then others say, and quite correctly, that computer science is based on math.
Ergo, they want people to go into a branch of math.
As some other poster said, MATH IS HARD - and most people don't want to go through the pain and torture of learning that much mathematics. I didn't, and that's why I dropped out of the computer science program (after I got a BS and MS - was working on a PhD), and am now working on another degree.
Bottom line, though, is that computer science will continue to be hard pressed to get students until it is no longer equivalent to math - which unless you count the more pragmatic aspects (i.e. programming), it will never be. Math is not something a lot of people major in or ever will.
I'd say it was 75% math, 24% programming, 1% other junk they force you to fill your required credits.
It was hard. I didn't really know what to expect going into a CS program that gave you a degree that read "Bachelor of Mathematics", but those math courses were some of the most difficult things I ever took. Some of the third and fourth year courses which combined both math and algorithms were the litmus test of a true computer science student. We had a third year course (345 or 360?) that was focused on exactly what I just mentioned. We just to joke (grimly, downwardly) that if you could pass this, you were basically a CS major. The count of false fire alarms/bomb threats/suicide notes during the examination period of that course indicated how hard it was. My exams got rescheduled 3 times just for that one course. 2 bomb threats, 1 suicide note.
I don't remember programming anything interesting or useful or dot-com like. The algorithms and problem solving techniques were pretty interesting but only here and there. A lot of it was a lot of grunt work through very obscure material 99.995% of the human population does not care about. And you will not use in your future job. I think I used recursion once, and a binary search once in the 5 years since I left the university. And both tasks were easier than the first year homework assignments they gave us (and also everyone in the industry would know about it i.e. manufacturing bill of materials, and calculating the COGS in financial applications).
I felt a lot of the material was very academic in nature and unless you went all the way to a Ph. D, you weren't going to be able to leverage the material in a job. Interesting in it's own right if you are into these kinds of things.
That being said, my interest from computers originally came from doing little programming things on my spare time and playing computer games, which I'm assuming most guys get their thing for computers. But it doesn't translate into being a CS major. I'd say CS majors were people with an affinity for mathematics, and not very much interest in why Linux is better than Windows. Sure there were those kinds of people in my class, but out of a class size of 50-80, I'd say only 5 fit that bill. I managed to make it through the curriculum but if I had to do it again, I'd major in something like law and do a minor in information technology which is a lot more useful.
The worse part is, I think CS majors now have exceptionally difficult times landing a first job with little job experience. When I graduated, outsourcing was already moving ahead and many fellow graduates were being sent down to the states, Mexico, India or China to train their own replacements. I can only imagine what the situation is now.
As far as job security, a bachelor CS is pretty bad unless you have a well-established set of technical skills. A CS job != comfy Linux admin job with 3 monitors and a free reign to abuse your peon users. This you can get from any technical college. If you are really interested in the material itself, go all the way to Ph. D and consult big firms who will pay for your brains.
People drop their CS major when they realize computer science is the science of computing, not the science of computers...
--<Mike>--
I read Slashdot mainly though RSS and initially came here to read about another school shooting...
Well, what do you expect, when you have the words "death" "CS" (which can or can not stand for CounterStrike) and "education" in one line...
Could be worse. Could be raining.
The type of work I do, knowledge of data structures and algorithms isn't essential but useful. Those who are familiar with the fundamentals generally write better code (optimized and not resource-hungry). I interview people that have multiple degrees and Masters and sometimes a PH.D. that have difficulty answering questions and vectors and bubble sorts. Further, when new employees come in whom I didn't interview sometime we "chit-chat" and talk about algorithms and more often than not they don't have a clue despite their Master's degrees in computer science (I've never been able to explain why but isn't always the case but is more often than naught -- in my experience, of course, YMMV). We have had a few mathemeticians that are absolutely steller at all things math, computer science, and physics but having a "chance" mathemetician start in this company (in my 4 years there) is quite rare.
Anyway, I don't even have a degree or certification but I do have 10 years professional experience and I very much am familiar with algorithms and data structures and can even conjure up mathematical proofs of some of them (with complete understanding). I'm just a self-study, is all. I started to get a degree in comp. sci. since I was practicing it for many years but got sick of earning crappy crades because I didn't follow things step-by-step as per the textbook but actually optimized or found more efficient ways of achieving the same -- getting ahead of the class mostly. I'm not really cut out to be a robot.
These days I do a lot of research in things like autonomic computing (self-healing software) and nueral networks and genetic algorithms (which really are just another type of algorithm and data structure in my opinion, nothing magical). Trying to get learning into my business services and elements of healing and user-usage pattern recognition. In the self-healing and learning erea, I mostly have to decipher various doctoral theses and other scholastic publications to get any useful information; not an easy task for someone who at most has about 2 semesters of college edumacation and no industry certs (but well over 800 software programming & related book on my shelf that each have been read cover to cover mostly).
Computer Science is often misunderstood, too, by everyone in the employment chain. Computer Science is more about research and in a sense, pioneering, and coming up with better ways to solve problems or even identifying new problems to solve at a fundamental level. Comp. Scientists will even offer "proofs" of various solutions and so on and present initial implementations.
I view Software Engineering more as "vocational". Not necessarily research and acedemics, but more or less puting well-known practice and knowledge into implementation; designing architectures and frameworks and such. I'm not sure where the overlap is, if any. I don't picture computer scientists really creating business applications and data entry programs but I do view them creating something like photoshop and flash and operatins systems, for example. There's much research and fundatmentals in those things. I don't view software engineers proper as doing fundamental research but I woudln't rule out them doing research and coming up with creative ways to solve problems that might interfere with the duties of a scientist if requirements dictate.
My point in all this is that most employers want programmers, coders, or developers (whatever you want to call it) but actually try to hire scientists when comp. sci. isn't about programming as much as it is about research. Most companies don't want researchers, they want people that can take known research and knowledge and put it into practice for the company.
Most people that want to be software developers don't necessarily want to be scientists; computer science is the wrong field of study for them. MIS or Soft. Eng. is better for them. Though I agree that all programmer types should be familiar with the basics, there's a difference with being
I agree with the parent: software engineering and computer science are different diciplines.
CS studies theoretical and hard practical problems, comes up with new theory and constructs for use by software engineers and designers. The latter solve relatively easy practical problems and use the theory and algorithms that CS has produced. CS is closely related to mathematics, but typically studies discreet problems and logical constructs. SE is a much more practical field that procudes large pieces of software, requiring software development tools and methods, many man hours and management.
Computer scientists produce typically small programs that demonstrate a particular algorithm works and produces theoretically predicted results. SE tools and methods can be used but are not essential.
It would be a good thing to have different schools for the different diciplines.
That way, students who like working out theoretical problems, choose for CS. They'll propbably end up in an academic career or corporate research facility. Students who want to work on practical problems and just produce software should choose SE.
Ofcourse there is some overlap in the curriculum, e.g. both software engineers and computer scientists need programming skills. But these days, almost every scientist, in any field, needs programming skills.
It's just a skill many people need, like a basic grasp of mathematics.
In fact, here in The Netherlands, we have a distiction in universities: some are called 'higher school' (hoge school), others 'university'. The first provide SE education, at a high level, but aimed at practical skills. They turn out good software engineers and software designers. Universities provide CS studies, but the curriculum contains both practical and more academic courses. The universities turn out scientists, but also software engineers and designers. Arguably, the engineers with a higher school education are actually better prepared for the job that the university people, as they have less theoretical baggage and more practical skills.
assignment != equality != identity
De Monfort is a very! lowly rated University only Luton ranks below it - so its a bit cute that the BCS published this where is the article from someone from a Good university with a rep in computing (imperial, Cambridge etc)
It used to be a polytechnic and the bit that used to be based where I live was renowned for teacher training mainly PE teachers.
You will never get to heaven with an Ak 47... But A Zu 30 is good for Low Flying Cherubim
Good! There are far too many people on this course who have no idea what they're doing -- about 90% of them, I'd say -- and the course has to slow down to accomodate them :( Just the other day I was in a math lecture, being introduced to the idea of straight lines. I thought "we're in uni, surely it's assumed that we know this already?", and then someone behind me stuck up their hand to ask what y=mx+c was about...
I mod down anyone who says "I will be modded down for this", regardless of the rest of their comment
Computer science is a very valid subject, but the problems faced by the software industry have changed since the CS curricula were originally devised. Basic knowledge of algebra, logic and data structures is good to know. But knowing how to get a 20% improvement in execution speed of an algorithm is now less important than knowing how to reduce calls to the System Help desk by 20%.
Knowing about project management, the problems of estimating project cost and time, is now possibly the most useful skill to have in the IT industry. Educationally this requires knowledge of statistics, psychology and economics.
If logic and discrete maths is what interests you, then I would suggest your place in the IT industry is going to be related to low level device drivers and kernel development. In this case focus on physics, electrical engineering and maths in addition to traditional CS skills.
If you want a 'job' in IT then you need to focus on project and risk management, psychology and economics (and possibly statistics )in addition to CS.
I'd hazard a guess that for the foreseable future, software development is going to be undertaken in India. The IT jobs in the US/EU will be in the domain of managing that off-shore code development. This involves ensuring the requirements passed to the developers are complete and correct. That the design of the software is complete and correct. And that the returned code is complete, without bugs, and delivered to cost and schedule.
No, this isnt traditional Computer Science, but closer to what is understood as Software Engineering. The world and the IT industry has changed. The problems that need to be solved have changed. Either what is understood as Computer Science needs to change, or a new subject, probably Software Engineering, will evolve to satisfy the needs of the wider world. Lamenting the loss of long loved, traditional skills taught as part of the CS curriculum is as useful and relevant as lamenting the loss of the skill necessary to design slide rules.
I have to disagree (but strongly suspect that I am working in a very different area than parent...)
For the type of work my team does, CS is invaluable. We deal with issues related to multithreaded and multi-core synchronization daily. People without CS (or maybe Maths/Physics/Electronics major) just don't 'get' the issues we have to deal with. I find it very difficult to recruit graduate level engineers (MSc/PhD generally) with the skills I need.
What *I* look for are CS/Electronics/Maths/Physics majors with an interest in computing. I do want to see an education and not just 'training' (many UK universities seem to have basically turned into Java training shops - fine as far as it goes, but it doesn't cut it in my team).
The bottom line is that different roles within the computing world require different skills. Some basically just require training, others require deep theoretical knowledge (and of course, the applicable knowledge varies from position to position).
However, there will always be a place for the highly educated with a strong theoretical background - and those will generally be the best and most interesting jobs. Must add, however, that it probably won't be the *majority* of jobs...
Reading the comments and the article I'd like to argue that its math, that is the issue. Most the comments here talk about people dropping out because Computer Science was so Math orientated. In my first year of University we had a basic refresher math course in the first term we started with a electrical/communications/robotics/computer engineering group of 70 and by january the group was doing to 35, some because they never attended, a few realised it wasn't what they wanted to do and a surprising number (That I talked to) quit because they had failed so much of the maths module the previous term. The second year a group of 39 went down to 12, surprisingly many people found statistics to hard and started failing it because they saw it as stupid and pointless. I'm in the final year and theres no maths module this year we have started with 20 and there are still 20 people in the electrical/communications/robotics/computer engineering group.
Perhaps its not that Computer Science is boring but how maths is taught in schools, I've had some incredibly interesting labs over the years which even socialogy students think are cool, but if you don't know math well and have been taught to see it as a geeky pointless subject your not going to stay on a course which involves lots of it.
You sound a lot like Ptolemy I (Soter) when he spoke to Euclid and asked if there was some kind of short cut to an understanding of geometry. Euclid's famous reply was: "There is no royal road to geometry." Computer science doesn't just have a lot to do with math: it IS math at its most fundamental. If you recall where the very idea for the automatic computer came from, it grew out of the quest for resolving the most profound issues at the foundations of mathematics (google for the 'Entscheidungsproblem' and Alan Turing). Just as there are no royal roads to geometry, there are no royal roads to computer science either.
If too many people in your educational system think that math is too hard, then maybe your educational system, especially at the lower levels, ought to be rethinking itself if it has as one of its priorities the training of more people who can really make use of computers and computer technology properly. I can't really say this with smug satisfaction as the case is the same here where I come from, but frankly the last place to go about fixing the problem is to water down the mathematical aspects of computer science as you're suggesting might be good. To do that would be to water down the essence of what computer science truly is.
Qu'on me donne six lignes écrites de la main du plus honnête homme, j'y trouverai de quoi le faire pendre.
the job requirement is so boring to someone with CS that they are seriously under motivated to even "learn" it. Whereas someone with a "business" degree who has never been exposed to real computer science will actually have the motivation to do it.
Most people in CS are seriously over-educated for the 99% of business activity and "programming" jobs out there. And they still have to go through the idiotic "interview" process and get asked do you know language X, yet another triviality when someone learns to program on abstract Turing machine, or arbitrary syntax/language.
I have a masters in pure math and in the last 7 years have not encountered a problem or a challenge at work that required 0.01% of brain activity needed to understand and prove an average theorem in for example measure theory.
I guess this advice might be a little late for you now, but hopefully it'll be of use to others. The best way to get a reasonable job out of college is to bite the bullet and do some kind of internship or work experience thing. My university didn't offer any particular assistance with this on my CS course, but I contacted employers in the area and basically offered to work for pittance for a few months to "gain professional experience". I ended up working for a month for a company in the local area during a break and at the end of it they offered me a job purely on the basis of my work during that period, with no interview whatsoever.
You have to target the right sort of company; in particular, the company has to be structured in such a way that you -- as an intern -- are reporting directly to someone with hiring clout so that you can actually be noticed. I picked a little company, but I suspect a larger company with the right sort of culture would work out as well.
When it comes down to it, it's that old adage of "it's not what you know, it's who you know."
The comments thus far seem divided between contempt for community college/technical school level "hands on" training and frustration that many employers may not reward the critical thinking skills taught in college.
d _universities_in_Philadelphia)
In fact, there are both too many software mechanics who do not understand the greater business problems that require solving, and too many paper tigers who did wonderfully in college but who struggle with delivering results in the real world.
I have been fortunate enough to benefit from both and I will encourage my children to do the same. Some of the best teachers I ever had were at the community college and technical school levels. They were professionals who often brought decades of real-world experience to the classroom.
At the same time, my graduate studies did indeed challenge me and force me to develop skills to see issues from multiple perspectives and solve issues using techniques from many different fields.
As a result, my career has not only been financially rewarding, (my employers have always rewarded my technical knowledge with $) but my everyday work consists of solving problems that keep me interested and excited to come to work (as my creative problem solving abilities tend to get me interesting work).
One post implied that as employers paid more money for the skills they need, that students would gravitate toward C.S. and similar important professions. If so, the message is taking decades to get get across.
An integrated approach is offered by Drexel University (Philadelphia, Pennsylvania, USA).
For more than 25 years, I have been hiring "interns" and graduates from Drexel. At Drexel, the normal 4 year B.S. program is elongated into 5 years of trimesters where one third of each year is spent working at a different employer.
By the time you hire a Drexel grad, they already have years of real-world experience lacking by many graduates of so-called prestigious universities. (No, I didn't attend Drexel, but I did sleep in one of their dorms for two semesters in 1977 while dating an E.E./C.S. major.)
To the best of my knowledge, despite Drexel's 30+ years of success with this approach none of the other local universities have adopted Drexel's approach. (http://en.wikipedia.org/wiki/List_of_colleges_an
Know this: If you only do the trade-school-level stuff, you have to read and teach yourself the critical thinking stuff on your own. If you only attend university, you may emerge with an initial salary less than the tech-school graduate and take a few years before passing that person as you move up into management or more responsible staff and consulting positions.
Consider both.
Live Long and Prosper - Thanks Leonard. You are missed.
1) More workers are available outside the US, and they work for less.
2) It is becoming a specialized field, yet the education remains broad in scope, and expensive.
3) Most people when asked if they want to work hard for less money, or just
tell others when, where, and how to work and make 200%+ more are going to lean
towards the jobs that pay MUCH more.
4) people born in the US typically speak one language, maybe two or three fluently,
In Comp Sci to be diversely available to the full scope of working languages
you need to know a dozen, and you need to RELEARN them as they change and progress.
5) Working with something tangible that once defined as a method/procedure in
most engineering is a semi-static, in programming radical changes to methods/and tools
can change rapidly and leave you out of the loop.
6) Time/Expectations/Deadlines for code projects tend to leave people with a lesser
family life, and for most ppl family comes first.
7) Supporting spaghetti code written by numerous other ppl with modern styles,
and legacy styles all "hacked" together to work across multiple threadings
and operating system ports induces layers of dependant intrcacy that most sane
beings would find unnerving.
8) The lack of unified software and hardware standards, and interoperability,
and code and hardware cross tested against other apps for interoperability.
Often writing good code, that once deployed doesnt interoperate with
legacy app "x" and makes management think "he doesn't know what he is doing",
when if fact the sometimes hundreds of apps at some large corporations
would take innumerable hours to fully cross test with every revision check in.
9) The people that are often your boss not only could not do your job,
they don't understand your job, and the ppl making marketing decisions
ask for things that will either cause a bottom up redesign or are just
not feasible with the current framework/hardware/dependencies,
and the marketing decisions for "features" don't come in the 11th hour,
they often come at 11:59....
10) Intricate levels of version control and dependencies, on the same
OS from version to the next no longer supporting code that used to
work fine on the presvious OS version is now broke.
Add it all up and that is why less and less ppl want to "endure" what CS
has become for lower pay, and the likely hood of being laid off as soon
as they can find ANYONE, ANYWHERE, who will do it for less.
google "32 trillion offshore needs IRS attention"
Let market forces work. Less CS students means less qualified CS grads to fill positions which means higher salaries and benefits as companies compete for workers which means that you'll have more students interested again in CS.
I get the feeling new college students look at the lifestyles of their older peers to come up with a college major. As US & UK companies outsource everything they can, it makes sense to learn things like Nursing and people-facing skills which cannot be outsourced. Hey, I'll put in the extra effort to get a CS (and perhaps Math) degree so I can be unemployed like Johny! --edfardos
As I've read through this thread the problem seems obvious to me. I'm an IT professional, who did graduate from a Tech School with a degree in EET (Applied Electrical Engineering). The parent poster is absolutely correct, the vast majority of IT professionals aren't Computer Scientists and could care less to be. We are wrench turners and hole drillers. The problem as I see it is that employers don't quite get that yet. I'm a SysAdmin (and manager of SysAdmins), the practical troubleshooting skills I learned from the old electrical wrenches in tech school serve me far better than any computer theory that I ever learned. Every employer I look at, as well as my own institution, seems to think that a SysAdmin needs to be a CS major. The same can be said, to some degree, across the IT Career path. Help Desk? CS degree. Desktop Support? CS Degree. It's starting to get better with places realizing that MIS is a valid alternative degree path, but the vast majority of IT professionals in my opinion don't need an advanced degree, certainly not a theory heavy science degree.
There is a need for people to develop the next great google algorithm, and the next idea for database management systems. There's a larger need for people that know the right spot to apply the sledgehammer when these systems screw up. The problem is that business seems to think that the cost of entry into the later is the qualifications of the former.
What if it is just turtles all the way down?
"what needs to be done to encourage more students to take the courses..."
Girls? Just a thought...
I am a psychology major right now at a four year university in the US. I have no interest in being a shrink and want to go into experimental work. Needless to say as a /. member I am also very much into computers. Working in AI or on CNNs (Computer neural networks) would be a pretty sweet fix for me.
However there are 2 problems:
1. I suck at math, this has been addressed in other posts.
2. Labs. As a psych major I have to take a ton of em. In fact, the way my schedule and timing is working out, I'll take way more than most psych majors do. If I were to double major or minor in comp sci, I'd have to take more labs. Thing is that I don't have room in my schedule. This is painfully ironic as all (most) CS labs are is showing up to do your hw. This means that CS majors don't actually go to their labs. So this means I have to pay for a lab I won't go to and that will possibly be a scheduling conflict with something else. Needless to say this frustrates me to no end.
There is more to science than physics!
www.iomalfunction.blogspot.com
This is so right!! I'm currently a CS student at Edinburgh UK, have been for four years now. I managed to fail first year twice, and dya know why? Cus of a mixture of two things. One they couldn't teach for shit and I lost interest!! And two, the material was sooooo boring!! I've been programming bits and pieces since I was twelve so I go to uni to be taught what an integer is, and how to use a for loop. Cmon!! Stupidity.
Hi. I am the realisation of the person you believe that you are, that you are not.
I've been coding since an earlier age than yourself. I found many elements of my first year in CS boring. The difference between you and me though, is the results I got. Damn near 100% in every assignment and the exam, and I finished at the top of the class.
I hate to break it to you, but you didn't fail because it was boring. If it was boring, you would have sat the final exam after three hours half studying the material, and half watching cartoons, like I did, and also topped the class. You would have been doing your assignments in twenty minutes and polishing them for a few hours before getting top marks. For fun, you'd help out some other people too.
I've had lousy teachers/lecturers before, and through my degree I discovered it is just best to avoid the ones who can't teach, even if you like the subject. But one thing I do know is that if you know the material well enough (and can learn it on your own) it is very hard to fail, even if your lecturers and markers are blithering idiots. Sure, your mark at the end won't be fair, but failing you would take quite some effort on the part of the markers.
The difference between us, you may notice, is that you managed to fail first year twice. If the material was boring, and you had a complete mastery of it, this would not have happened. Even if the markers were completely incompetent, a hotshot would have been able to produce answers of such quality that it would have been hard to fail you. You would have passed without effort, and probably with distinction.
But you didn't. Ask yourself again why you failed.
I need 1337 skillz to take out those n00bs! It will be a shame if they eliminate CounterStrike 101 from our children's curriculum. :(
"Never give up, for that is just the time and place when the tide will change." -Harriet Beecher Stowe ^_^
I don't think playing round after round of counter-strike has any place in school.
In my degree - 10 yrs ago, Birmingham Uni (UK) - I took only one course that had any real maths: Computer Graphics.
Everything else had a different flavour:
- Software Engineering Methodology
- Object Oriented Programming
- Data Structures
- Computer Architecture
- Databases / SQL
and most importantly:Programming (ie regular assignment of code we had to write).
The course was pretty good (although all the SQL was theoretical; we never actually ran any SQL statements). There was hardly any maths in there, and frankly that's suited me very well - in 8 years of commercial programming, I have NEVER needed anything beyond basic arithmatic.
Obviously not every will have the same experience, but there are plenty of serious programming jobs that don't use maths. A good CS course should teach the basics of software design along with a good selection of coding techniques - as others have said here, the sign of a good CS grad is that they can work in multiple languages as they're comfortable with the underlying paradigms.
Some of this might have been covered in other posts and in "Why writing software is hard", but oh well.
1. Calculus. Not designed for easy understanding, and arguably not necessary for CS. It may be part of programming, but is that because it is necessary, or because CS people know calculus and want to do something with all that painfully acquired knowledge? It's also a barrier that keeps out extremely intelligent people who could do great in CS, but didn't go down that particular mathematical road. Not knowing calc, I am not qualified to say whether or not it is indespensible, but it IS possible to live without it. I guess it is the old CS/CIS divide. Left and right brain, all that.
2. CS people are perceived as supercilious, arrogant, dissmissive, know-it-all antisocial males. This is a cliche, which is synonym for "obvious truth". Not many want to hang around such a social group. They also run heavily to objectivism, which makes for strained relationships with anyone to the left of Robert Heinlein.
3. No women. See above #2 for why.
4. Ageism. It is obvious that anyone over the age of 35 is not really welcome at the table. Unless you are in management, teaching, or are just the very best, you are not at the front of the line when you are applying for work at CoolTech. There are exceptions, and they are growing in number, because of the sheer pressure of so many aging tech people. But the perception, based on reality, is that you have a 15 year career and then you are not welcome at the D&D table at lunchtime.
5. The profession has been... no word for it, so let's call it "corporatized"? "Downprestiged"? "Bluecollared"? In the early 2000's, a little H1B magic and outsourcing work to cheaper countries gave employers the ability treat their formerly royal employees like janitorial temps. Wages plummetted, management grew rich, resumes were used as kindling for the boss's fireplace. People who spent a decade or more working long days found out that they were as disposable as a Bic lighter in the management's view. Wrong of course, but perception is key and they weren't about to admit they were wrong, so the bitchslapping continues. The bosses *hate* the CS people for having the upper hand for over ten years, and the payback is not going to stop.
6. Not everyone wants to leap around the country year after year following contract jobs. Can't raise a family or grow equity in real estate that way, and it is a pain in the ass besides.
7. No unions allowed. Rightist attitudes amongst CS people themselves and a host of labor laws gone unenforced for over 25 years have seen to it that no collective bargaining can be performed, or even be legal. A bit of elitism ("we aren't blue collar lazy union asses!") doesn't help.
8. What the HELL kind of mess has programming become? Where do you even start anymore? It's in every direction at once.
9. When exactly did programming become so "businesslike" we have to dress like bankers? Not everyone wants to be a suit. Especially when it's not necessary.
10. Wages down. Manipulated to stay that way.
11. It's a lonely profession, and if you are gregarious, the silence and enforced isolation (even if its in your own head) is wearing. Not everyone wants to be a mathematically inclined loner.
12. No women, not many anyway. Worth repeating.
"people skilled in programming. People who can realize thoughts and concepts in code and execute them"
The ability to do this is very rare. And many people who have degrees in math, science, and yes, computer science, can't!
>We all know there's a crisis in university computer science departments. Student numbers are dwindling - down 115 >just last year. Down 115 where? At De Monfort? This is hardly a clear sentence to begin with. On a deeper note, the number of students enrolled in Computer Science dropping does not imply that the field is dying. Nearly 50% of American technical PhD's are imported from other countries. This doesn't imply that technical subjects are unimportant, it just suggests that American's don't appreciate their importance. Intellectual pursuits are to be judged by intrinsic merit, not mere popularity.
The # reason for flagging interest in computing/IT degrees is....
OUTSOURCING TO INDIA/CHINA/WHOMEVER
And don't kid yourself or waste your time on any other reasons.
In the states, we also have the insidious slave-labour scheme called H1B. The use and abuse of the H1B is widespread and pervasive.
shock the monkey
"Computer science is as much about computers as astronomy is about telescopes."
- E. W. Dijkstra
"Assembly is like C"
.com boom; They look good on paper but have no clue what they're doing typically because they don't even care about technology, they're just here to make a quick buck.
WTF???
Based on that statement, I wouldn't hire you, nor would I work for you if your job involved anything more technical than "Do this project". Please tell me exactly where the similarities between these two programs lie (besides what they actually DO):
[snipped DOS int 21 "Hello" and C StdLib "Hello"]
Actually the GP has the better understanding on this one. You may want to consider that you were not comparing C and x86 asm per se, you were really comparing the libraries the respective languages come with. Using "library" loosely wrt the DOS asm interface. C is often considered a medium level language since it generally maps onto an architecture much more directly than other high level languages. Hence the comparison to asm.
Actually, in my experience, it's the total opposite. Nearly everyone I've met/hired/worked with over the years that has gone to school for computers turn out to be totally incompetent. From their total lack of understanding of how programming works to complete sytems built on idiotic quick hacks tied together with shoe strings of copy-and-paste code from google, CS majors tend to be like paper MCSE's of the
Having been both self-taught and formally trained, worked full-time before and during the university, I believe that you are either biased or have had limited exposure. Formally trained or self-taught has very little to do with competence as a programmer. The real factor is whether the individual has a genuine interest in programming, or if they became a programmer merely because it seemed to be a good career opportunity. I've seen plenty of people with both motivations in both training categories, the career path folks seem to make up the majority of both camps as well. Programmers guilty of the shoddy work you describe are found in both camps.
The one area that the self-taught often falls behind in is breadth. Very few self-taught individuals read and study an equivalent breadth, they tend to focus on fewer areas, often merely what interests them. Breadth has an advantage because problems to solution often come from unexpected areas. For example a self-taught individual fixated on gaming may study graphics and AI and skip database and operating systems, failing to realize that important concepts will come from the later two.
My current employer actually hired me because I don't have a CS degree. I'm completely self taught in technology/programming which directly states that I love it enough to learn it and do it during my free time. I actually care about my work and about technology in general.
I think you are deluding yourself, or perhaps you have misdiagnosed yourself. What make you better is not being self-taught, it is having an inherent interest in the work. Myself and many others who have the formal training also love it and do it for fun in our spare time, many of the self taught are also doing it merely for the paycheck and have no inherent interest in programming. Those who love the work are a minority in both camps.
Too much theory, not enough practical. If you can't apply the theory that you learn, what's the point in learning so much of it?
... Now I sometimes reapply those old theories in C++ and perl. We used old dinosaur mainframes running BSD Unix, students bitched-and-moaned that there were no practical classes where we could learn Windows programming, ... We learned graphics on dedicated graphics terminals with GPUs that implemented the low-level details for us, students bitched-and-moaned that we were not learning the more practical SVGA raster graphics programming ...
Theory often lasts much longer, the practical is often temporary, the fashion of the day. I learned a lot of theory and applied it a little bit with FORTRAN in some classes, Pascal in some other classes, C in some later classes,
Doug Comer explains this best, in "How To Criticize Computer Scientists/ or Avoiding Ineffective Deprecation And Making Insults More Pointed."
In recent exchanges, members of the faculty have tried in vain to attack other Computer Scientists and disparage their work. Quite frankly, I find the results embarrassing -- instead of cutting the opponent down, many of the remarks have been laughably innocuous. Something must be done about it because any outsider who hears such blather will think less of our department: no group can hold the respect of others unless its members can deal a devastating verbal blow at will.
This short essay is an effort to help faculty make their remarks more pointed, and help avoid wimpy vindictives. It explains how to insult CS research, shows where to find the Achilles' heel in any project, and illustrates how one can attack a researcher.
The Two Basic Types Of Research
Most lousy insults arise from a simple misimpression that all researchers agree on the overall aims of CS research. They do not. In particular, CS has inherited two, quite opposite approaches from roots in mathematics and engineering.
Researchers who follow the mathematical paradigm are called theorists, and include anyone working in an area that has the terms ``analysis'', ``evaluation'', ``algorithms'', or ``theory'' in the title.
Researchers who follow the engineering paradigm are called experimentalists, and include most people working in areas that have the terms ``experimental'', ``systems'', ``compiler'', ``network'', or ``database'' in the title.
Read the rest of the essay.
I am currently a second year student at De Montfort University (DMU). I'm currently studying SE, so can't speak on behalf of the CS students. I do, however, feel there are a few things I should say.
I feel insulted and demoralised. I spent the first year of study programming low level languages, learning the foundations of CS and other such fundamentals.
Throughout the course, the lecturers would emphasise how important this study was - that without it we would flounder in the future, be inefficient in our work and never actually gain a true understanding of the subject. Now, in my second year, I find that they were perfectly correct. Without the knowledge they have so far imparted, I'm sure I could write some SQL, program some Java, perhaps even some very basic C. But would I actually *understand* what I was doing and why? Unlikely.
It's important to note that SE shared ALL first year modules with CS - that is to say that those studying CS were taught exactly the same as I was.
Imagine then my surprise, frustration and anger that this guy, WHO DOESN'T EVEN TEACH CS(!), feels it is acceptable to publish something that is not only incorrect, but also completely at odds with the beliefs and thinking that have been displayed (as per MY perception) by those involved with the subject here at DMU. I'm also suspicious - this reeks somewhat of an attempt to promote the course he actually does teach as a viable alternative to CS.
Does he understand the fundamentals himself, or did he just lose sight of their relevance since being enveloped in the subject which he now teaches?
I will not, as he seems to have (intentionally or not) speak on behalf of the university - I have no right to do so. I can however speak from personal experience, and my experience at DMU leaves me with the impression that the fundamentals of CS are valued here, and recognised as essential.
I would invite Dr McBride to justify what he has said to those of us studying CS, SE and related subjects at DMU. We'd certainly like to hear what he has to say...