What would you put in a Computer Science Curriculum?
We get a number of resumés trickling through every week, with a fair proportion coming from Computer Science graduates.
I look at the list of modules they've studied, and although they sound very interesting, there seems to be little relevance to the current jobs market: neural networks, computer vision, artificial intelligence, robotics, compiler engineering, machine learning, quantum computing, Bayesian networks, embedded systems... How many of these graduates will go on to regularly use this information? And these aren't dodgy establishments teaching these modules; I took this list of modules from the curricula of the 'Top 5' computer science departments in the UK (graded by a respectable national newspaper).
Part of this mismatch (between education and skills) could be caused by the misguided notion that 'Computer Science' graduates don't necessarily go into 'Software Engineering', so are taught a more scientific approach, rather than vocational. However, the Computer Science graduates I know have software/programming careers, not science. Interestingly, from a random selection of about 10 or 15 university courses I researched for this weblog entry, only 2 offered Software Engineering.
The 'science' bias could also account for the large number of mandatory maths modules in these courses; one of the top 5 universities has 25% of its mandatory modules dedicated to mathematics (including 1 mainly on 3D maths). Another top university states that the final year project is to 'Develop a game'. Great for attracting students, maybe not a great idea for getting them a job? I just did a search on monster.com; there were 31 'games programmer' vacancies, and more than 1000 for 'software developer', and more than 1000 for 'web programmer'. Not much use knowing how to handle three dimensional diffuse lighting vectors when you're trying to create a customer feedback form for an insurance company.
And, quite surprisingly, only 1 course mentioned XML, which was in an optional module. Is there any modern software these days that doesn't use XML? So why can't computer science graduates tell me when to use SAX and when to use DOM?
So, what would you include in a modern Computer Science/Software Engineering course? I've started jotting some draft notes below (in no particular order, this is just a stream of conciousness...)
Dan Zambonini is the Technical Director of Box UK, a UK-based Internet Development and Consultancy company. An advocate of Semantic Web and XML technologies, he works with XML, XSL, RDF, SVG, P3P, OWL, XHTML, CSS, XForms, and a whole bunch of other acronyms.
Comments on this weblog
1 to 32 of 32
2005-09-12 05:15:11 MichaelTM [View]
2005-09-12 01:48:59 Dan Zambonini | [View]
2005-09-11 18:46:10 Dr.C. [View]
2005-09-11 13:50:23 boredandroid [View]
2005-09-11 12:34:45 snap [View]
2005-09-11 11:43:09 Michael_ELC [View]
2005-09-11 11:41:13 DaveCrist [View]
2005-09-11 11:09:46 jdb8167 [View]
2005-09-11 11:04:01 jmh_az [View]
On Computer Science Curriculum
2005-09-11 11:01:47 [View]
2005-09-11 10:27:22 VincentWinterstrom [View]
2005-09-11 09:55:15 matttheaiguy [View]
2005-09-11 09:06:19 email@example.com [View]
2005-09-11 09:01:12 ephel [View]
2005-09-08 15:35:12 bioinfotools [View]
2005-09-08 11:29:21 Christopher Roach | [View]
2005-09-08 10:25:52 Ming Chow | [View]
2005-09-08 09:54:02 Matt Doar | [View]
2005-09-08 09:12:18 Andy Lester | [View]
2005-09-08 05:57:15 fugu13 [View]
1 to 32 of 32
Return to weblogs.oreilly.com.