Motivating high school CS students
I have been so fortunate over the past 12+ months. Last September I landed my first full time teaching position at a great high school and this month I've started a totally revised program of study at another great high school. All summer I contemplated the best first programming language for students and I have concluded that Java is not in my list.
I wanted to provide students with a positive first experience in CS.
I enjoy programming when the goal and the challenge of reaching the goal are so interesting that I simply lose track of time. The language and tools need to be simple yet powerful so they are never viewed as a barrier on your journey to "getting the code right".
What did I decide to use?
For my Grade 10 computer science course I decided to use the Mobile Application Development environment pioneered by MIT and Google - App Inventor.
I first heard about App Inventor from Peter Beens (an experienced HS CS teacher), and then I dug into the environment a bit deeper and had lots of fun making simple games and useful applications like a Restaurant Tip Calculator program for my Samsung Android phone. I dabbled with Apple's iPhone environment, but unless you are into XML and Java the entry point is fairly steep.
A surprise came in early August when Google announced the closing of Google Labs which included the Google App Inventor environment. Thankfully, Google also announced that they would open source the App Inventor environment and MIT established a new Mobile Learning Center and their first key project is App Inventor. This week in one of the App Inventor Forums MIT announced a job posting for a full-time engineer to work on the App Inventor project. This is great news for teachers and fans of bringing CS to high school students as a mobile app development experience.
For my Grade 11 Computer Science course I selected Python for many reasons and I'm looking forward to using the simplicity and power of Python and its amazing standard library and other fun libraries such as Pygame.
I haven't been updating my blog for way too long. I'll share some of the ideas from the two summer workshops I attended and I'll keep you updated on how the new year goes using App Inventor and Python.
You can follow my courses on my Moodle powered website.