Additional profile information on Alfred Thompson at Google+
The Christian Science Monitor has an editorial about the decline in Computer Science enrollment. [Link from Kevin Briody] They point out that the number of students taking the Advanced Placement Computer Science (APCS) exam is down as is the number of people majoring in CS in college. The drop in women is even worse. This is scary to me.
People, especially students, have the wrong idea about computer science. They think it is boring work done by people locked in windowless cubicles. They think computer science doesn’t matter.
But they are wrong. OK sure some people work in cubicles but that’s about as far as it goes. Increasingly projects involve more interaction with people and not less. Developers today need to share ideas and plans with their peers. It is more social today. You need communication skills. And what developers do can make a difference.
There is a bigger message though. Bill Gates has been quoted as saying that after medicine computer science has the biggest opportunities to make a positive difference for society. I happen to think he’s right. When I talk to high school students (which I do a lot but would like to do even more) I tell them to think not about money, though the money in computer science is good, not about jobs, though there really are lots of CS jobs, but to think about the chance to change the world for the better.
I think that computer science teachers as the high school and younger level are important for the future of the US and the world. It is up to them to communicate an excitement for the opportunities that computer science provides. As the motto for the Computer Science Teachers Association (CSTA) goes, “CS Rocks!”
We have to let kids know the truth. We have to let school boards know that CS education is important. We have to start making a difference. If you are a teacher and I can help you please let me know.
BTW if you are a K-12 computer science teacher you will want to look into the Computer Science Teachers Association.
As I write this teacher friends in Texas and Florida are getting ready to go back to school in the next week or so. I’m sure that many other teachers in other states are also getting ready. My wife, a middle/high school librarian, is a few short weeks from going back to work herself. It’s and exciting time filled with promise. Well it is for most teachers. But for teachers of computer science there is some uncertainty on the horizon.
One of the things I am hearing from teachers around the country is that school districts are cutting back on computer science. I know a teacher who used to teach a number of programming classes who is once again a full-time English teacher. Now there is nothing wrong with teaching English. I loved English as a student. But I do not think that dropping programming is a good idea.
Before I was a teacher I did not see a lot of value in teaching programming to high school students, let alone students younger than that. Nine years in the classroom changed my mind. In fact now I not only thing that high schools should offer programming as an elective I think it should be a required course. When I say that someone almost always responds with one of a couple of objections:
I think that all three of these objections miss something important. Programming is about problem solving and critical thinking. The last I look those were important schools for college bound students, students headed straight for the work place or trade schools *and* knowing how to solve problems is often useful when taking a standardized test.
I agree that many programming courses are hard. I would not suggest that a student with no programming preparation should enroll in an Advanced Placement Computer Science course. (Although that is the first programming course in far too many schools.) I can’t imagine someone accepting a student in AP Calculus if they had no prior courses in mathematics. Can you imagine an AP Calculus teacher teaching addition, subtraction, multiplication and division in there class? I don’t think so. And yet many AP CS teachers have to start from scratch. No wonder students find themselves in too deep.
That being said, a programming course can be fun and approachable for any student. Languages like Visual Basic .NET are not scary. Windows Forms, a key part of Visual Studio .NET, allows students to create real Windows programs with very little code and achieve real success early on in a course. There are free resource materials including a complete curriculum available at MainFunction.com. Check out the Curriculum Center.
I’ll have more to say about programming for everyone and teaching critical thinking and planning skills in future blogs. See you soon!
I found this interesting article that talks about the different ways that teachers use computers. One of the things it mentions is that most teachers think that the right ratio is one computer per student. Apparently if you get a group of students sharing a computer they start to talk about other things. I must admit that I've seen that myself. But I wonder if 1:1 is really best for teaching computer science, specifically programming.
One of the ideas behind "extreme programming" is pairs programming where two programmers work on the same computer at the same time. I think there are times when having each student work on their own computer is great. At the same time, pairs programming is one of those things I experimented with briefly as a teacher but would like to do more with. Have any of you used paired programming in your assignments? How did it go?