In my last blog I talked about what I do in my Programming I course. I do several languages to let the kids see different IDEs and work with different tutorials. I also let them have some fun. But I always have that nagging question “What should I be doing in Programming I”? I have yet to find a formal answer to that one. So I have to answer my own question. Does this imply I cannot be wrong?
What basic programming concepts do I want to target at the Programming I level? Here is what I formally target.
2. Comment everything
3. For loops
4. If statements
5. Sort of figure out a program solution/direction before typing.
6. The concepts of events, properties, state, objects, and instances.
8. Building algorithms
Here are some biggies that get hit incidentally.
1. Procedural thinking
2. Attention to detail
3. Problem solving
4. Do not reinvent the wheel – find something similar and adapt it.
5. In regards to the wheel – be able to pick apart someone else’s un-documented code
Most of my assignments are very general, i.e. draw a house with the turtle in Small Basic using at least two sub procedures. Since each kid wants to draw their own house no code is the same. The kids will help each other with a concept (like drawing a picket fence) but then they will modify the code to suit. When I was teaching VB out of a textbook there were a lot of kids cutting and pasting code from each other and the text. They usually had no idea how the code worked. Although the projects are now simpler, the code is much more original. Kids will spend an hour trying to get their picket fence just the way they want it. Although the resulting code may be trivial to the experienced programmer, the kid has just spent an hour on problem solving, algorithm development, troubleshooting, procedural thinking and incidental hair pulling. I love it.
Most of my Programming I kids will be done with formal programming forever after my class. I therefore put learning to code wayyy down on the bottom of my course objectives. Learning how to think on their own and work in a problem solving environment is the goal of any teacher for their course (OK, any good teacher) no matter if the course is Math, Art or Programming. I think that is the answer to “What should I be doing in Programming I?”.
Although I will never be satisfied with my Programming I course (or any course I teach for that matter) I think over all it is an OK course. I will continue to search the internet for modifications and improvements and things to keep my teaching from becoming boring. There is almost always something super cool to motivate a Programming I course (ex. Stephen Howell’s Kinect2Scratch) that can make the course fun and yet target what I consider important.