Additional profile information on Alfred Thompson at Google+
I spent two days are a Windows Phone event last week. One of several I posted date for at Your Chance to Learn Windows Phone Development for Free There are a lot more of them up and down the east coast. We had a few faculty members and students at this one and I think they all learned a lot. I know I did. [Ed Donahue wrote about her experience in Boston at Why I Do This. Bob Familiar wrote about his at Windows Phone Hackathon draws in Pro Devs and Students. They both have pictures!]
The Teacher Tech blog had an interesting featuring the work of Kelli Etheredge @ketheredge who I I met at the US Innovative Education Forum this summer. Read about it at Putting your students in the court room–mock trial, of course
Know a tech-savvy girl? Encourage her to apply for the NCWIT Award for Aspirations in Computing! I wrote about this earlier at 2011 NCWIT Award for Aspirations in Computing. This is a really great program to bring some positive attention and recognition of girls who are interested in careers in technology.
One of the ways Microsoft is using software to make things better is by Making Buildings Energy-Smart at Microsoft. Ideas like this not only reduce energy consumption but make everything more efficient. This is just one way that software is making a difference in solving the worlds problems. For students the Imagine Cup is an opportunity to come up with their own ideas for using software to make the world a better place.
Doug Bergman writes about his experience with the World Series of Innovation on his blog. I wrote about this event earlier at NFTE World Series of Innovation
I don’t know if you saw the very sad news that Dennis Ritchie (1941-2011), creator of the "C" language and co-creator of Unix, passed away last week. A lot of good things came from his work over the years. BTW the Windows Phone workshops I attended were in the heart of Cambridge’s Kendall Square where there is recognition of Steve Jobs, another pioneer we lost recently. People have been leaving various things there to honor his memory. I took a picture.
“What qualifies you to teach computer science?” The question took me off guard. The tone as much as the words seem to be more of a challenge than anything else. The man who asked it was visiting the school where I was teaching during an open house for prospective students. Private schools, such as that one, really have to sell themselves to parents so questions about qualifications are important. My reply what that I had a Masters in Computer Science and 18 years as a professional software developer. That seemed to satisfy him much to my relief. That sort of formal experience is rare in high school computer science teachers though. After all there are lots of opportunities for such people in industry. One has to make a life style decision to take a teaching job with that sort of background. I know a number of people who did just that and I have great respect for them. One day I hope to be back full-time in the classroom myself. It was a rewarding time for me. But this brings up a good question, one of several things that Garth Flint brought up in his post - What we need for CS Education to happen. That question is “how much preparation does someone need to be a good high school computer science teacher?”
A lot of schools seem to believe that having a FORTRAN course 20 years ago when one was an undergraduate Math major is plenty. At least that appears to be the case from some of the stories I have heard. The truth is that since there are few standards for what is required schools, districts, etc. are free to set their own standards. Some schools set them very low. I assume some set them very high – perhaps too high. There aren’t a lot of guidelines to help them out though.
I do believe that some formal training is a good requirement. Some professional development experience is helpful but not required. Nor is it generally sufficient. Knowledge along does not make a good teacher as a lot of people who have attempted the move from industry to education can attest. Some training on how to teach computer science is really helpful. I learned it mostly from a good mentor. Not every school has a senior CS teacher to mentor the new teachers though. We could use a lot of research based training as well. Mark Guzdial talks about that on his blog. Most recently at Learning how to prepare CS HS teachers: Why computer scientists have to get involved. There is no where near enough of that research going on and I agree with Garth that we can’t wait for it. We have to start training more CS teachers now. But what do they require?
A Masters Degree? Great but not really required. A four year bachelors degree in CS? Would sure be helpful but required? Maybe not. The AP CS course as it stands now is an attempt at a first computer science course at the university level. For most high schools this is as advanced as it gets. (Though not at all of them.) I guess in theory a thorough grounding in this topics would be enough but in practice I think it is far from enough. The old AP CS AB course included data structures which usually makes up the second university computer science course. That’s still probably not enough for a teacher. I’d like to see at least one more course, perhaps one in programming languages, as well as a course in software engineering. A web development course would be a good thing as well. So say four CS courses, a teaching CS course as well as some general education courses might be a good start. This is not dissimilar from an Endorsement In Computer Science Education program LEADING TO TEACHER CERTIFICATION FOR GRADES 6-12 available at Kennesaw State University in Georgia. My recollection is that this program was designed about the state certification standards in Georgia. As an endorsement program it requires that teachers already have a certification in some other field which is, in my opinion, somewhat unfortunate. Some people don’t really want to jump through the hoops to teach other subjects.
I don’t know of many other programs like this though I suspect that Georgia has others. Outside of Georgia I have no idea though. It’s a chicken and egg problem. Universities don’t design endorsement programs if there is not state certification standard. States tend not to set standards for which there are not training programs. In Georgia the state education people worked hand in hand with universities and the designed both the certification and endorsement program in parallel. It’s an example that perhaps more states could look at. It’s a start.
A tweet passed though my stream last night. Eugene Wallingford retweeted someone else’s statement “Teaching students how to operate software, but not produce software, is like teaching kids to read & not write. (via@KevlinHenney)” Apparently this caused some conversation among followers. I missed most of it the first time because of how Twitter handles replies but I was able to catch up on it later. One reply that Wallingford repeated several times was “@wallingf A computer is not just a tool; it is a medium of expression, and an increasingly important one.” Together there is an set of important ideas being expressed.
One of the reasons I tend to push computer science education so much is that I believe that students need to be creators and not just consumers. Computer programs are a medium of expression and a means of creation. I believe that understanding how to use computer applications is important. And of course many applications are tools of creation. Word is an outstanding writing tool. Excel is a great way to creatively deal with numbers and other data. The examples abound. But to me there is a step beyond using applications that other people create involved in creating ones own applications.
Turning consumers into creators is a huge part of the motivation behind programs like DreamSpark which puts professional software development tools into the hands of students. It’s why we have created curriculum resources like our web development course materials or our 5 week and full semester XNA based game development courses. It’s the reason behind Kodu for young students and Small Basic for middle school students. It’s also why we have the Beginner Developer Learning Center. It’s unfortunate that more schools don’t offer computer science courses though.
[Edit: Please see also Eugene Wallingford's post- Programming for Everyone -- Really?