Additional profile information on Alfred Thompson at Google+
I was reminded today that Computer Science Education day is December 8th. Visit the official web site for information. It's timed to coincide with Grace Hopper's birthday (which is actually the Saturday but apparently a lot of schools are closed on Saturday.)
I've hearing from a number of schools that they are having special events, guest speakers, and other ways to bring some attention to Computer Science. I think it's great. I can only hope that this idea continues to grow. If something is happening at your school please leave a comment about it so that others can get some ideas. Thanks!
Sometimes just when you think an argument is over and become a settled issue someone else comes up an reopens it. Sometimes what you discover is that people have been as much beaten into submission as convinced my the arguments. All they were waiting for was someone with some authority or credibility to come alone and express a contrary opinion. Something like that happened in the Advanced Placement Computer Science mailing list last week. The issue in question is if creating objects should be taught early in a first course or late - perhaps as late as the second course.
The proponents of teaching objects early have definitely been in the ascendency in the last couple of years. But all of a sudden someone reported that they had been asked for resources for teaching a first course as a strictly procedural, rather than object oriented, class. Well talk about opening Pandora's box!
Don't they know that java is all about objects? Don't they know that you can't program in Java without using Objects? Don't they know they are supposed to teach objects early? Well you get the drift. And them Stuart Reges puts in his two cents. Stuart Reges is a senior lecturer at the University of Washington and he is not one to shy away from controversy. He jumped in with mention of a textbook he is working on called Building Java Programs that takes a back to basics approach. He also talked about a paper he presented at SIGCSE in 2006 called Back to Basics in CS1 and CS2. Mark Guzdial takes on the Object Early question on his blog this week as well. Apparently this has come up on the SIGCSE mailing list lately as well. I think I need to get on that list.
What Stuart proposes (and this is simlar to what Mark Guzdial recommends) is that the first course avoid teaching students how to create classes. He does suggest using objects early. At Washington they apparently teach creating classes as part of the CS2 or Data Structures course. This seems like a pretty good approach to me. It feels a lot like the way I did things back in the Visual Basic 6.0 days. I taught the objects that are used to create a graphical user interface but we didn't actually create new objects. In the second course (C++ back then) we learned how to actually create a class and the discussion of Object Oriented Design began.
I do worry that we often try to cram too much into a first course in programming. There is so much to learn and it all seems so important that this is a natural trap to fall into. We need to be very careful that we develop a proper scope and sequence so that we can build a proper foundation without drowning students in more than they can handle. Syntax complicates learning how to program and the syntax used to create objects is among the hardest for students to learn. It may very well be better to leave that to later when students are more comfortable.
Teach objects? Absolutely! Maybe using them early and creating them later is the right way to go. It seems pretty reasonable to me. What do you think?
Terry Simkin is running an interesting new program at the New Hampshire Technical Institute in Concord New Hampshire. He sent me a job posting for a new position they have there. I've copied it below and if you know anyone who might be interested let them know.
NHTI is a beautiful campus and a great part of the community technical college system here in New Hampshire. Terry is a good guy - knowledgeable and enthusiastic - and should be a good person to work with. The Animation and Graphic Game Programming program is already generating a lot of excitement around campus and the state.
New Hampshire Technical Institute in Concord
Hiring a Professor or Associate Professor for the Animation and Graphic Game Programming Associate level degree at the New Hampshire Technical Institute in Concord. The key to being hired is experience in the computer game industry.
We are currently on the leading edge teaching console development. We have a computer lab with PCs and Xbox 360s. We will be using Microsoft XNA and Garage Games TorqueX. Join us as we learn and play with this new technology.
You can see the full curriculum below:
This is fun teaching as the students are extremely excited about learning and making their lab assignment look great and perform the way they want. Our official start of the degree program was September 2006 and we are full.
Come help me teach this challenging and rewarding degree. Looking for job stability and good medical and retirement benefits in wonderful New Hampshire? Send me an email to get copies of the detailed job descriptions.
Professor Terrance "Terry" Simkin
Program Coordinator Animation and Graphic Game ProgrammingProfessor Computer Engineering TechnologyNew Hampshire Technical Institute31 College DriveConcord, NH 03301tsimkin @ nhctc.edu