Kirby Urner wrote:
I've taken a look at Learning Python and it doesn't seem to have the right structure if you're completely new to programming. My friend bought it and hasn't been too much use to her so far, though I expect it probably will be later on.
I like your approach Michael.
That's Martijn -- Michael is the guy whose thread I hijacked; my apologies to Michael!
Play in the interactive mode, show how this can be used to test your understanding of the various operators (sometimes I call them "toys" -- not in a deprecatory sense at all), then go right into combining statements into function defs (programs).
This is a great segue from Logo (which many kids learn), which likewise has the interactive command line, plus the short, atomic procedures.
A few comments:
* Those who can use IDLE will probably find it a lot easier than Emacs. The newest IDLE even prompts for correct syntax, plus the stepwise debugger (still rudimentary) gives beginners a fun way to watch simple programs in action.
Probably true -- I myself am pretty unfamiliar with IDLE so far, though (was just toying with it again yesterday), so I went with Emacs. For basic editing both are fine, and I wasn't beyond that yet.
* You can do a lot in interactive mode. I like to show students that it's more fun to calculate at the command line than on a TI. In part because calculators don't have any savvy about alpha operations, like 3*"CAT" = "CATCATCAT". Yet modern mathematics is a lot about symbolic manipulation beyond what we do with numbers.
Yes, I showed things like this. You can do some amusing things there, which will keep the students happy.
* Keep in mind that you, as a teacher, can pre-write simple modules which, when loaded, do interesting things at the command line.
That's a good idea -- I'll try that approach.
Then invite students to look at your code. [learning by studying other programs] I did some of this, but it's probably good to put some more emphasis on this.
If you haven't taken a peak, I invite you to check out my 3 part essay integrating learning Python within in a math class context. [snip] http://www.inetarena.com/~pdx4d/ocn/numerarcy0.html http://www.inetarena.com/~pdx4d/ocn/numerarcy1.html http://www.inetarena.com/~pdx4d/ocn/numerarcy2.html
These links don't seem to work, unfortunately!
My approach dovetails with yours, in that I'm focussing on the interactive command line at the start. What's not explicit in these pages is a lot of nuts and bolts about "types" (int, float, string), which you get into, nor even data structures (list, tuple, dictionary).
This isn't because I'd want to skip any of this. But first I want to get students to "buy in" by seeing Python do a lot of relevant work. Then we start dissecting the code, and phasing in the nuts and bolts stuff using a more "and by the way" approach. Start by showing relevance, then get into the guts of programming.
The problem in my case is that there's no 'relevance' as such yet; your students are in a math class, mine are in a 'what's programming all about' class and don't have clear goals yet. [recursion versus procedural] I hadn't gotten far enough yet to introduce those concepts. :) Thanks for the feedback! Regards, Martijn