Reviewing the live adaptation of Ghost in the Shell has put me in the mood to present some other reviews and so without further adieu I will be presenting my Top Ten for Computer Science Teaching Tools. These are presented in no particular order or ranking and I would be very happy to have someone add to the list in the comments section below if I miss one of your favorite tools or programs.
One of my personal favorite programming tools will always be the Educational Java IDE Greenfoot. I believe that this is one of the most comprehensive and useful combinations of curriculum and tools available for teaching Java and the basic concepts of Object Oriented Programming. Notice I added both of those qualifiers. There are certainly more effective programming interfaces and some tools that make learning the basics of programming simpler but to combine both of those things into a single application, Greenfoot can not be beaten. The program creator, Michael Kölling, is first and foremost, an educator rather than simply a programmer, and this is apparent in the way that he designed the Greenfoot application to bring out the basic tenets of programming, and specifically Object Oriented design while hiding much of the complicated boiler-plate code that students will get to soon enough in Eclipse or Net Beans. Rather than begin in a procedural mode teaching loops and variables and other constructs and then bringing class into it (There I go…bringing class into it) Michael starts off with proper class design principles from the beginning and teaches constructs along with OOP design. The best time to build a mind-set, in this case, for Object Oriented Programming, is in the beginning and that is exactly what Greenfoot does.
My next favorite tool is the combination programming environment and hardware that make up the Arduino system. In order to get students interested in programming and code creation we need to get them engaged. Nothing creates interest and focuses attention better than creating something that works. Lights flash. servos turn. robots move. All of these things tie the attention of the young programmer onto the task in a manner that does not seem at all tedious or difficult. With the Arduino programming environment concepts like functions, methods, variables, loops, and program logic can be taught in bite-sized portions that don’t overwhelm the young programmer. Also Arduino provides an avenue to teach fundamentals of engineering, circuit design, and making in general. Considering the price of the hardware, this is an excellent investment for a part of your classroom budget each year.
With that, the first edition of my Top Ten Computer Science Teaching Tools comes to a close. I will continue the list tomorrow and try to finish by the end of the week. If you have suggestions or comments, please list them below. Also, “likes” are appreciated.