Additional profile information on Alfred Thompson at Google+
You’ve heard it said many time that “No one who takes a high school programming course is qualified for a software development job.” Sounds reasonable. But how about people graduating from universities not being qualified? That is the question that shows up in a number of posts and news articles lately. Keith Ward asks the “Over-Educated, Yet Under-Qualified?” question in a recent editorial post in MSDN Magazine. He references an article from InfoWorld Web’s site, “The sad standards of computer-related college degrees”. Is it that bad? Well I hear mixed reviews on recent graduates.
One VP at a major software company said that it takes an average of a year and a half for a recent college graduate to become a fully productive member of a development team. On the other hand I do know high school students who have gotten software development or testing jobs while still in high school. Some of my students were in that category. Hélène Martin reports that she has “I’ve got 5 students doing technical internships this summer” as an aside in a great post she has reviewing a Teach SCHEME workshop she is attending. (The post is TeachScheme Workshop at Brown University and brings up a lot of important points that are very worth reading and considering. )
As usual the truth is really between extremes. Some high school students do get technical internships and some of them even involve programming or at least software testing. And some university graduates are not as prepared as many employers would like. Part of the problem though may be expectations. One expects a lot more from a university graduate than from a high school student. Entry level positions, rather than just internships, usually want more experience with larger teams and larger projects. A large university project may include 3-5 students working for a couple of months. A small commercial project may involved 20 people working for a year. Vastly different scales.
I’m not convinced that the problem is a dumbing down of university curriculum though. I don’t think that is happening. Yes many programs are trying to make their programs more interesting by adding robotics or game development and similar creative areas of case study. But they are working hard not to do so in a way that waters down the curriculum. Fun and dumb are not synonyms. The XNA Game Curriculum resources that Microsoft has are serious and often complex materials for example. (XNA Resources and Teaching Tools for your Classroom) No I think that the problem is that professional development has gotten more complex at a faster rate than education programs have adapted.
When I was an undergraduate the sort of projects I worked on as a student were much closer to the much smaller projects that were common in the early to mid 70s. Those days are gone but have universities adapted? Maybe not enough. Some have. As an industry advisor to Taylor University's computer science program I have been pleased to see them make real world projects a key part of the department’s programs. (Challenging, Real-World Projects) Obviously I’m biased as a graduate but I think they have been doing a great job of connecting to the real world for a long time. I do think there are models that could be replicated in other schools.
Other universities have great co-op and similar programs that place students in the work force while they are still in school. These are great ways to learn the “real world” at the same time that students build theoretical knowledge in school. Having the chance to move from theory to practice and back again can be an outstanding opportunity to prepare for post graduate careers. Students can and should also try hard to get internships during their summers. There are probably not enough of those opportunities and they can be hard to find and get. But you know if someone works hard to find and get hired for internships they are going to be better prepared for careers later.
So I am not convinced that university computer science education programs are really in tough shape. I think most of them are even very good. But some could be better. Well, when push comes to shove everyone could be better.
I spent some time in California at the CSTA CS & IT Symposium last week. Great stuff to learn and a lot (though never enough) of time to talk to friends both old and new. Doug Peterson has a good review of the event (2010 CSIT Symposium) as does Hélène Martin (Computer Science Teachers Conference (CSTA CS/IT 2010)). I hope to see you at next year’s event.
The good people @Microsoft_EDU that Microsoft Institutes for Education Leaders are coming to Cambridge MA and New York City in August. There is still time to get in on these three day workshops.
From the @TheOfficialACM twitter account I found that both the ACM and CSTA are quoted in a new EdWeek piece "Schools Fall Behind in Offering Computer Science" Microsoft and Google are referenced as two companies who are championing computer science education. Personally I think more companies need to jump in and help.
From @XNACommunity there are some new samples now available on the XNA CCO Education Roadmap! They include some Windows Phone 7 samples by the way.
Speaking of which, the new Windows Phone Developer Tools Beta Released.
Lastly I wrote a little post at the Educators Royal Treatment titled Assessment and Trust that has a little something to upset almost everyone. Please comment.
The never ending debate over where Computer Science fits in the curriculum continues. Mark Guzdial asks why computer science is not in the latest set of STEM standards from the National Academes of Science (What are we? Chopped liver? CS left out of National Academy STEM standards) There are lots of comments there BTW. Leigh Ann Sudol replies in her blog (What are we? Chopped liver? CS left out of National Academy STEM standards) with a statement that these are “Science standards not STEM standards” and aren’t we pushing for CS to be adopted as a math? Well not everyone agrees with CS as a math but people are often willing to take what they can get.
Part of this is because we compartmentalize f too much in education. Why is Physics not a math subject? Just try and teach it without math. In fact any schools worth its salt makes sure that the math department covers a lot of the math that physics requires to save time in Physics classes. The distinction feels artificial. And the various math courses are worse still. Why do we have algebra, geometry, trigonometry, statistics and calculus all separated out as if they were independent of one another? Why not just math, more math, still more math and lots more math? As it is, the way we separate things out allows, almost forces, students to think there is hard math and easy math when really its all math. Bah! And while I am at it, why is statistics in the math department and not in the science department? Or perhaps the social studies department?
Coming back to computer science. Sure a lot of us would prefer there be a separate computer science requirement for graduation. It fits the way we have traditionally thought of things. Failing that we look to include it in math or science. Of course it fits equally well in either. And doesn’t fit in either in much the same ways. How about pushing to get it accepted as a “foreign language?” I’ve heard that one before and it makes a sort of sense. Programming languages have their own culture of sorts. And many think that people who program (or computer scientists) have their own culture that is foreign to many. Personally I think that means that using logic and planning to solve problems is a foreign concept to many people but so what? Actually it means they should learn computer science.
I agree with Mark Guzdial that computer science should be included in national science standards. This is especially true if there is any claim to be including technology in those standards. And if states what to give math credit for computer science I can live with that as well. After all I took my first computer science course to meet a general education requirement and avoid taking a math course at the same time. Ironic isn’t it!
In the long term, computer science should be a requirement for all students to graduate high school. I really believe that. In the short term it isn’t going to happen so in the mean time let’s fight the battles we can win. If that means getting CS accepted as a science in some states and a math on others so be it. We’re computer people – if nothing else we know how to be patient. We’ll wear them down.