Additional profile information on Alfred Thompson at Google+
This week Microsoft announced a new set of entry level certifications that may be of interest to many schools and colleges/universities. Personally I think that this is just the sort of program that many career/technical high schools have been waiting for. The program is called the Microsoft Technology Associate program. There are seven exams in two categories – Developer and Information Technology.
IT Professional Exams
More information from the Microsoft Technology Associate FAQ
Q. What is the Microsoft Technology Associate (MTA) certification? A. The Microsoft Technology Associate (MTA) certification is a new, entry-level certification designed to help individuals take the first step toward a career as an IT professional or developer. An MTA certification is based on 80 percent knowledge and 20 percent skills. The next step in the Microsoft certification path is Microsoft Technology Specialist (MCTS), which requires hands-on experience with the Microsoft technology platform. Find out more about MCTS certifications Students can download and install a complete developer tool set at no cost through the DreamSpark Program. Get your complete developer tool set (DreamSpark.com)
Q. What is the Microsoft Technology Associate (MTA) certification?
A. The Microsoft Technology Associate (MTA) certification is a new, entry-level certification designed to help individuals take the first step toward a career as an IT professional or developer.
An MTA certification is based on 80 percent knowledge and 20 percent skills. The next step in the Microsoft certification path is Microsoft Technology Specialist (MCTS), which requires hands-on experience with the Microsoft technology platform.
Find out more about MCTS certifications
Students can download and install a complete developer tool set at no cost through the DreamSpark Program.
Get your complete developer tool set (DreamSpark.com)
There seem to be a growing number of visual programming languages available these days. Kodu (below) is for creating games by younger people. It’s “When"/Do” model is simple and easy to learn. It’s a bit limited though. It is really a domain specific language for games.
Scratch is also a visual language that is widely being used to teaching young people, especially in middle school but as old as college. I love it and it has some wider applicability. And a richer language to some degree than Kodu.
Alice is the big elephant in the room in terms of visual programming languages for teaching. But it too feels limited to its domain and development environment. Great for teaching/learning but no one is going to program an accounts receivable package in it. BTW is it just me or does Scratch’s blogs look cooler and more fun than Alice’s blocks?
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.