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.
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
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
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.
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
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.
Are you refering to the Linear Algebra or the English for Engineers?
KFG
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.
If you don't like being a well-rounded person, there's always ITT Tech or other technical schools that doesn't require any thought or reflection on life or learning skills useful to distinguish yourself in the global market.
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.
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.
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.
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.
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.
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.
(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.
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)
I really don't know what you see yourself doing if you AREN'T using those on a regular basis.
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.
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.
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.
<^>_<(ô ô)>_<^>
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.
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.