Something must be wrong with me. I have almost nothing prepared for my Programming Research class. I still have computers that may not be totally ready in the school. School starts with kids on the 28th and yet I am excited and cannot wait.
I have been teaching off and on (more on than off) for about 30 years now. Most, if not all the teachers I know who have been teaching that long do not look forward to the end of their summer. Of course it might be that I will only be teaching two classes this year and tech the rest of the time. But ever since I have been teaching at this school I have always looked forward to coming back.
I will be teaching a section of Programming I and something I have labeled Programming Research. Programming I will be our usual intro course with Scratch, Small Basic and maybe a taste of Visual Basic. Just enough to give the kids a taste of programming without scaring them to death. Programming Research was so named because I was getting confused with the Prog II, Prog III and so on thing. I could not figure out who was in what because I get kids in different levels in the same period. Since I rarely do the same thing in any programming course from year to year it is much easier to call it Programming Research. They can do Programming Research for multiple years and do something different each year.
This year I am starting out with a bit of a math bend to their first assignment. The kids are not going to be happy. The exercise will actually be fairly simple code-wise and a real pain algorithm-wise. For a couple of years I have wanted to get the kids to focus on algorithm building and not just coding by trial and error. With my usual game building approach trial and error is a fairly viable strategy at times. This year we are starting out with some mathematical series problems. Things like compute pi or e using a series to the nth term. The code is not that complicated but building the algorithm to code is a real pain. Not only do they have to understand the math algorithm but they have to break it down into the steps to build the computer algorithm. Trial and error will simply not do the deed. Most of these kids have not seen series like these so there is a learning exercise involved there, and then understanding the nested for-next loops that usually result will be another exercise.
I will have them do the exercise in two languages. I will do my first example in Small Basic simply because the language has so little overhead. The second language is sort of up in the air. There are so many options out there that would be interesting to do this in. Python, Java, VB, C#, Corona come to mind. Maybe I will assign teams a language they are not familiar with and really make my work load a mess. I like making the kids do things they are very uncomfortable with. It makes them think outside the box. It makes them look for assets to learn from. The university CS profs I talk to say they do not care if their incoming freshman can code, they just want them to be able to think and problem solve. The kids are going to hate me.