Additional profile information on Alfred Thompson at Google+
I found this article in the latest edition of American Scientist online. It’s an interesting and reasonably brief look at the history of programming languages. It also goes into the four basic types of programming languages – declarative, functional, object oriented and imperative. It talks about things like comments, expert opinions of what are and are not good languages – experts disagree believe it or not – and a variety of other related topics.
I think that this article alone has the potential to spark a wide variety of conversations in computer science classrooms. Take a look. There is information about obtaining permission to duplicate the article for classroom use at the bottom of the page of each article.
I was reading a blog by a Professor of Computer Science that said that many people don’t see computer science as creative. That took me a bit by surprise as I always thought of computer science and programming as being very creative. But I guess it’s probably true that many people don’t see computer science as creative.
Like Jane, the author of the blog, I suspect that some of that is a failure to teach computer science in a creative way. There are some books that use a sort of program by numbers approach. That is not in and of itself harmful as long as the class, and associated projects, allow for some creativity once the program by numbers exercise lets the student understand the basics. This requires a teacher that encourages creativity of course.
One of the things I think helps is when students are allowed to select their own projects. I know a number of teachers who use end of year projects as evaluation projects. Most of them allow students to select their own projects and even to make up their own. Another option is to allow students to modify and enhance projects for extra credit. There is also a lot of creativity in graphical user interfaces of programs. That’s often a tricky issue as one risks students spending too much time getting creative on the UI and not enough on the assigned parts of the project. But that is something that can be dealt with by properly managing expectations for grading.
For many people creativity and fun go hand in hand. I know that I love being creative when I write code, when I teach a class and when I do all sorts of things. I think it is a great part of computer science. We need to communicate that to students.
I see that PC Magazine is covering the recent report from the CSTA on high school computer science curriculum in the US. The CSTA report is available here and I highly recommend reading it. Computer Science teachers know most of the stuff in the report but getting others to see it and do something about it seems to be all but impossible.
I talked to the dean of a college at a major university who told me that the head of his state’s department of education will not even answer his mail or phone calls to talk about the issue of K-12 computer science education. He’s had some luck getting others in education to at least start talking about certification of teachers so that they can create a program of studies in computer science education. Do you know that in most states there is no special certification for computer science? In some states you have to be certified in business but that certification covers a lot more accounting than it does computer science? In other states, thought not many, you have to be certified in math – again without any real requirement that you know computer science. Yes, it’s that bad.
Now we can argue if computer science should be part of the core college prep curriculum (I think it should) but in many areas it is not even a college prep elective. In a lot of places its vocational education. Now I think that having a computer science program in vocational education is a great thing but I don’t think we should be keeping college bound kids from taking it.
Texas is now increasing the number of years of math and science that are required for high school graduation. But right now Computer Science cannot be used to meet those requirements. This is a disaster in my opinion. If you live or teach in Texas you should know that the TCEA (and CSTA) are behind a movement to contact your local state Board of Education representatives and urge them to include computer science in these requirements. If this doesn’t happen then the number of students who can actually take a computer science course is going to fall through the floor. This is hardly what a state as invested in hi-tech as Texas can afford to see happen.
The US really needs to get behind computer science education and it really has to start earlier. But unless the business community gets on the bandwagon I doubt much progress can be made.