Additional profile information on Alfred Thompson at Google+
Here is a cartoon from Office Offline that reminds me of the sort of messages students used to write.
OK maybe they were not that bad. But it was amazing the sort of things students though were acceptable messages. Messages that talked down to people, called them names, used generally impolite language, and just plain weird stuff. I think this is because, in part at least, they thought no one would ever read the messages but them and me (while grading.) Perhaps they would show it to friends and they wanted to have some fun. This is the sort of thing I often commented on in reviews of programs though. Why? Because I wanted to instill good habits and good practice.
Teachers can not reasonably demand full professional quality work (though it is a nice goal) but I think that teachers have to take assignments seriously and insist that students do as well. This is especially true for programs that have to interact with users. Many computer programs are just too hard and too unfriendly for people to use. Getting students thinking about fixing that problem early is the least we can do.
BTW look through the archives of Office Offline some time. If you can’t find a cartoon to hang on your wall or door I’d be surprised.
Leigh Ann Sudol has an interesting post titled The Beauty and Elegance of Computer SCIENCE. In it she talks about what makes a good example or exercise and the difference between an exercise and an example. One thing she leaves out, or perhaps just doesn’t spell out, is that good examples and exercises should take advantage of the power of a computer. I first heard that in a workshop taught by Mark Stehlik (who is on the faculty of Carnegie Mellon where Leigh Ann is currently a grad student). Mark pointed out that if you give a student a piece of code that does something they can do in short order with a calculator or worse still in their head their thought is going to be “well what use is that?” And they’d be right.
A good exercise/example should really require a computer. Some years ago I replaced the simple “convert Fahrenheit to centigrade” example that I used to introduce writing formulas in a programming language to an example where the formula was tied to a slider.
As an example it takes me a few minutes to set up which I would do before class. As an exercise it might be too easy for students to get hung up in the user interface so I might not use it. If I did I would give them the UI pre-built so they could focus on the formula and understanding how the assignment statements worked. For teachers who avoid GUI programming, and I know many who do, the possibility exists for creating a conversion table. Though the problem with that is that it requires loops so this would have to be saved until later. But the beuty here is that the GUI makes is so easy to try multiple values in seconds that students have more fun with it right away.
Which gets to the next big thing in Leigh Ann’s post – the beauty of computer science. Examples give an instructor a chance to go beyond the specific case and explore the wider world of the concepts involved. One of my favorite unexpected, unplanned moments was once when I was teaching loops in C++. Somehow I got off on the tangent of showing loop syntax in several other languages. I think that besides C++, I talked about FORTRAN, COBOL, Assembly language and of course Visual Basic. C# and Java were close enough that I seem to remember talking about them as well. It was short but let us really discuss what a loop was all about. What are its pieces and why does it work – beyond the syntax of a specific language.
Students later told me that they got a lot out of that lecture and that they found it helpful later on in their academic careers. Wow, who knew! But that is what can happen with a good example. It can start discussion and show off a lot more (and more interesting things) than just syntax. It can open minds to the possibilities. We really need to think about the examples we use more often then I think most of us do. I know I need to think more about them.
In my RSS reader (and in my blog roll on the sidebar) I have seven other blogs that focus mostly on high school computer science education. Some of those bloggers post more than others (Tom I’m waiting for another update) but they are all interesting and I learn from them. But I want more. There have to be more people blogging about pre-collegiate computer science education but I’m having no luck finding them. So I am hoping that my readers can help. If you have a blog that relates to K-12 computer science, especially if you are a practicing teacher, please leave a link in the comments. And if you read other related blogs and want to recommend one or several please leave those links in the comments as well. I’d really like to see the community online grow and be more helpful and supportive. There are a lot of great ideas out there that we can benefit from sharing.
It goes without saying that I am looking for more people to read here as well. Have you told a computer teacher about this blog yet? :-) And if you are interested in this blog please visit some of the other blogs in my set of lists.