Problem: We need teachers who can teach programming, and we don't have enough
The premise of this website is we can connect students to careers in computer science and in engineering. Further, that we can extend these to hands-on learners, a group that is sometimes left behind.
But to teach these materials, or any similar class, we must have teachers who can teach programming.
And we don't have enough.
Possible solution: Train our own
I do not believe a teacher with no background in programming can be turned into a highly skilled instructor for AP Computer Science in the short period of a semester college-level class. But we can prepare them with enough programming and class skills to facilitate student learning. Click here to see the syllabus we have poposed for such a class. Further, we can do it in about 10 hours of intense instruction, if we choose the material with care. Here, step by step, is how:
Step 1: Choose the correct material
The common programming languages in demand from industry are C, C++, C# (pronounced "sea-sharp", and Java. Fortunately, these four languages have a strong family resemblance. What is learned in one transfers easily to another, with the exception that some of the high-level features of C++, C#, and Java do not transfer back to C, which was the first of these four languages.
So, we do not need to teach all these languages, nor even all about any single one of these languages. All we need do is teach an implementation of one of these languages. Fortunately, thanks to the Massachusetts Institute of Technology, we have access to an implementation of Java that is called Processing. Processing has the following characteristics that make it especially suitable:
- As it is designed to be a teaching tool it the basics are easy to learn.
- As it is true Java, what is learned is applicable to all of the Java language and transferable to other languages.
- The development tools and supporting website make exploring the language and learning more something the student can do for herself.
- The programs written with Processing produce stunning, high quality graphic images and animations and, thus, are rewarding for students.
- Processing is Open Source, meaning it is free to license.
- The Processing website, processing.org, comes with its own tutorials and examples.
To this we add working with the Arduino, a small single-board computer used for robotics. The tools used to learn Processing work with the Arduino and the language, C, is similar. This provides a link between programming and robotics.
Step 2: Offer a Professional Development (clock hours) class of about 10 hours in total length to introduce and provide practice with Processing and Arduino
This has been done. This very class has been proposed to both Seattle Pacific University and to the Lake Washington Institute of Technology in Kirkland. The proposal submitted to Seattle Pacific University may be read by clicking here. We are in discussions with both institutions as this is being written, in August of 2016.
Step 3: Make the class available in multiple formats, and at different locations
We hope to offer teachers choices:
- Meet for two hours once per week over five weeks. Each meeting includes an optional third hour for help.
- Meet for a two or three day workshop with the ten contact hours spread over two or three days.
- Take the class for credit online, with scheduled access to an instructor for individual help, if needed.