I just finished teaching a semester high school course of survey of
programming languages, intended for students who already had learned
Java (a handful of whom sat for the Comp Sci AP this year). If I teach
it again, I may reverse part of my sequence:

First quarter: I taught Python using notes that had been translated
from C to C++ to Java to Python along the years. Because the students
had already seen the Java version of the lectures (their Java
instructor got the original notes from the same C teacher that I did),
we were able to plow through the equivalent of a year-long programming
course in a little less than a semester, leaving some time for special
Python constructions like lists, dictionaries, string libraries,
tkinter, etc.

Second quarter: language of their choice, with projects of their
choosing (potentially with guidance); one student chose COBOL, several
perl, a Ruby, an assembly, and a C#.

Final project (which, in retrospect, would also have made a good
intro): I gave them pysteroids, a pygame package, and they were to
*make the asteroids either really fast or really slow; *make
themselves invincible (without crashing the game -- some students
learned quickly that having their health grow, perhaps through
multiplication of the computed damage instead of subtraction, would
make their health "too big" and crash the window); reverse the
controls so that left goes right and right goes left; and do at least
one other thing to dork around with the code. They were solidly
engaged for 80 minutes, even after being graded on the assignment, and
afterwards said that it was the best programming assignment they had
received. In the future I would strongly consider starting out with
this "final project." I was surprised by what some students came up
with when I suggested that they do "at least one other thing" without
specifying that other thing, and this also encouraged them to be
original (rather than, say, copying their neighbor's code) and to give
each other positive reinforcement.

For context, this class is intended for magnet seniors (roughly 18
years old) in a combination traditional (neighborhood) and magnet
school with a population of roughly 2000 students in Maryland. A
magnet school draws students from around the district who have an
interest in a particular field; in our case, they should be interested
in math, science and/or computer science; and they are required to
have passed Algebra I in middle school. I'm including this last
paragraph purely for context, not for discussion per se. Thanks!

-Lloyd Allen
_______________________________________________
Edu-sig mailing list
[email protected]
http://mail.python.org/mailman/listinfo/edu-sig

Reply via email to