I turned down a $600/day 3 day gig I might not have got anyway, because the textbook goes twelve chapters with no 'class' keyword, and that would define the full complement of our topics. My code of conduct forbids teaching Python that way.
The whole point of OOP was here's a way we think in natural language: about Things with properties and behaviors. Maybe some people don't like to be "objectified" and it's true, that can mean something bad, but in the context of the Django ORM, it means an integrated object has the records. The patient, the athlete, the student object, comes with a medical history. Lots of SQL behind the scenes. Rollicking good debate over on math-teach as we exult over the huge numbers turning out to take AP CS.[1] The Learn to Code movement is succeeding, has gained traction. The Coding with Kids that I work for has likewise spread to several more cities, and any successful business model attracts imitators (CwK has a great website for faculty, lets us track everything, including our hours). Is code school the new high school? https://medium.com/@kirbyurner/the-plight-of-high-school-math-teachers-c0faf0a6efe6 (an essay coming up on its first anniversary) The $600/day gig was teaching adults (andragogy vs pedagogy), over the wire, which is how I've been making ends meet. Unfortunately for me, a truck pulled up across the street and started moving wires from pole A (the old one) to pole B (the new one) and wouldn't ya know, my Internet, which goes right through there, cut out. The crew said "not us" (what are the chances?) and took off. CenturyLink is coming tomorrow, but will they have a long enough ladder? I've gotta do my wind-up session 10 of 10 for the Californians. Patrick offered me his office (Comcast). I'm tethered to Internet through my cell phone as I write this (not enough bandwidth for live screen and audio though). We introduce Python classes early because that's the promise of OOP. To sucker for that "ontogeny recapitulates phylogeny" thesis, that we need to slog through a whole semester of procedural programming, before we make a single instance of something, is impossible in practice, at least in Python, as just about everything one touches is an instance of something. This textbook seems to hearken from that era (fortunately receding in the rear view mirror). You'd think in Java at least it'd be classes right out of the gate as one can't but extend a class to get anything done. Python's the same way of course; I think of functions as another type, canned (built-in), with their own syntax, but an instance of the FunctionType nonetheless. Out here in Code School world, the pressure is on to teach Python in two main ways: as a web development language, using projects like Flask and Django, and as a Data Science tool, using pandas, numpy, Jupyter Notebooks and mathplotlib -- but then when it comes to visualization tools, there's a plethora of 2D options. Great talk on this at Pycon2017. I've always been more a 3D guy myself, writing to POV-Ray and later Visual Python. I had a good experience getting vpython over anaconda and embedding same in a Notebook, but that was a while ago. No one pays me for 3D stuff. Maybe we should learn to do stats that way, using more 3D models than we do. Fly through. Not just physics should have all the fun. As it is it seems precious few physics teachers take the "coding a physics engine" approach. Maybe Carnegie Mellon? I'm far from omniscient. Hey, TinkerCAD is loads of fun for simulating an Arduino, a great sandbox if you don't have all the components. I've made some screencasts showing that. [2] The Learn to Code movement is having a big impact, to summarize. Kirby [1] http://mathforum.org/kb/thread.jspa?threadID=2870615 [2] https://youtu.be/AB7fzNK6vjs
_______________________________________________ Edu-sig mailing list Edu-sig@python.org https://mail.python.org/mailman/listinfo/edu-sig