Annual self review of my Python course

It is the annual self-review time.  How good do I feel I did this year?  The teaching load was light, only two classes of Programming II with a total of 19 kids.  The rest of the time is spent doing IT work.  The second semester would have been an easy semester except for the little detail of having to learn Python faster than most of the kids.  (I say most because there are a couple that were learning it faster than I was.  One of the things I have learned with experience is that there are kids out there that are smarter than me.  The trick is to just get out of the way and let them go.)

Lessons learned:

  1. Unique assignments for each kid is a pain to grade.  I tried this in an attempt to reduce “sharing”.  It sort of worked but not enough to justify the added grading time.
  2. Most of the kids understand a lot less than you think they do.  Proper questioning technique is a solution but that still will miss some key knowledge.
  3. The kids are not as excited about programming as I am.  This is the hardest thing for me when teaching programming.  I do programming because it is fun, like doing puzzles.  Most of the kids are there because there was not another elective offered at the time slot.  One out of ten think programming is fun.  Most are not puzzle solvers.
  4. Small programming assignments with a single teaching lesson works better than a large assignment/project broken into smaller parts.  I can make a bunch of small but similar programming assignments pretty easily.  Sort of drill and practice.
  5. Do not assume that the kids remember what they did yesterday.  Most do not.
  6. Python is easy to learn but is a boring language.  I like Corona better but Corona is more difficult to learn and has considerably more overhead.  With Corona you can make a colored ball bounce around the screen.  Hypnotizing.
  7. In a dual-credit class do not attempt to keep up with the university teacher.  Most university students have a lighter work load than high school kids.
  8. Learning the language and an editor just ahead of the kids is not a good strategy.  It can be done but there are gaps that can grab you.  I had a number of “If you find out how, let me know” moments.
  9. DO NOT assume Python code is the same on Windows and Mac.  Next year no Macs in the Python course.  I had to learn two languages (very similar but different enough to really mess things up) and two editors.  Never again.
  10. A working projector is a must.  Trying to write code on the board is not so hot, especially with my hand writing.

Many items in the list are well known.  It just helps to write them down again so they get refreshed in my head again.

Right now I am considering offering a dual-credit Java course.  The dual-credit Python course gave the kids 3 General college credits.  The Java course would be 3 CS credits.  I have the text the university uses and it is extremely boring.  I am not sure I can do another semester of boring.  I want the kids to make a silly little game for their cell phone.  It is amazing how hard they will work if the objective is cool.  Making Hang-man in Python is nowhere near as cool as making Whack-a-Mole with Corona.  Right now I am considering the game “Don’t step on the white tile”.  (Look in the iTunes store.)  Looks like a Corona project candidate.  Of course this violates #4 above.  Nuts on #4.

Over all the year was a success.  Every semester I teach programming I try something different.  A new language or a new assignment or a new strategy.  Someday I will get the perfect course designed and then retire.

2 Responses to “Annual self review of my Python course”

  1. gasstationwithoutpumps Says:

    “The dual-credit Python course gave the kids 3 General college credits. The Java course would be 3 CS credits.” This is strange—the choice of programming language should not change whether the credits are “general” or “CS”. Of course, differences in the level of computer science covered may make a difference, but one can get just as far in Python as in Java in a first course—probably farther, except in static type declaration.

    Most Java books are incredibly boring, because intro Java is tedious (lots of ritual magic in the type declarations from a beginning programmer’s viewpoint). If you found examples in Python to be boring, you’ll find Java to be at least twice as boring.

    What were the Mac/Windows differences you encountered in Python? The only ones I’ve seen have been in what graphics packages were available and how you access the underlying operating system for things like USB devices—problems that almost all languages share because the access to the operating system is rarely part of the language.

    Of course, I usually use the same editor no matter what language I’m programming in, since learning a new editor and new “integrated development environment” for each language is a time waster—I don’t know what genius was responsible for that “improvement” in teaching programming.

  2. gflint Says:

    I have not quite figured out the Python/Java credit difference myself. The course are not that dissimilar. Python is a CSCI 100, while the Java is CSCI 135 and is meant for CS majors. Both courses seem to cover the same material. In fact the Java seems to not go as far as the Python course. I agree that course credit should not be based on a language but on topics. This university has been teaching Java for 30 years (I took it then). I think they are in a bit of a rut.

    The input and print were slightly different. I was running both on a PC so I would have to edit the Mac code so it would run on the PC. Not a major difference but enough that when I would run a kid’s code, it would not work and I would then have to remember what type of computer they were using. There were also some print formatting differences. I was having to have both a Mac and a PC available to write my program assignments on. The textbook I was using was PC so I was having to tinker to find the Mac alternate. A bit of a pain when I am not experienced with the language myself. A real pain for the Mac kids.

    On the PCs i was using Pyscripter, on Mac it was Wing101. Both are unique to the platform. Pyscripter is a much nicer IDE than Wing101 with some automatic formatting and text coloring.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: