On Tue, Jul 25, 2017 at 11:03 AM, Wes Turner <wes.tur...@gmail.com> wrote:
> > > On Monday, July 24, 2017, kirby urner <kirby.ur...@gmail.com> wrote: > >> >> 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. >> > > +1. > - "Namespaces are one honking great idea -- let's do more of those!" > - Classes are dicts with MRO. https://en.wikipedia.org/ > wiki/C3_linearization#Example_demonstrated_in_Python > > >> The whole point of OOP was here's a way we think in natural language: >> about Things with properties and behaviors. >> > > Maybe 'classes and instance of classes'. class Book(object): pass; > book_instance = Book() > > >> 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. >> > > ActiveRecord and DataMapper are both popular ORM patterns. > > From https://wrdrd.github.io/docs/consulting/knowledge- > engineering#object-relational-mapping : > > Object Relational Mapping⬅ > Wikipedia: https://en.wikipedia.org/wiki/Object-relational_mapping > - https://en.wikipedia.org/wiki/Data_mapper_pattern > - https://en.wikipedia.org/wiki/Active_record_pattern > > https://en.wikipedia.org/wiki/Object-relational_impedance_mismatch > - https://en.wikipedia.org/wiki/List_of_object-relational_mapping_software > > > >> The patient, the athlete, the student object, comes with a medical >> history. Lots of SQL behind the scenes. >> > > Medical history as a schema / informatics example and Python: > - GNUhealth > - (an actual application (with an install procedure and/or just Docker) > with example/test data) - https://en.wikibooks.org/ > wiki/GNU_Health/Different_ways_to_test_GNU_Health# > Option_4:_Run_GNU_Health_from_Docker_.28Lightweight_Containers.29 > - https://hub.docker.com/r/mbsolutions/postgres-gnuhealth/~/dockerfile/ > > - https://en.wikibooks.org/wiki/GNU_Health/The_Demo_database > - https://hg.savannah.gnu.org/hgweb/health/file/tip/tryton/ > backend/fhir/server/fhir/patient.py > - lots of XML (which can be digitally signed) > - lots of boilerplate > - (this is in the the server API) > > Normalization to records (rows) with fields (columns) and keys (identity) > AND/OR > Denormalization to composed, often nested, signable records (See: JSONLD, > ld-signatures, blockcerts) > > >> 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-mat >> h-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. >> > > We could start with > > import unittest > class Shape(): > class Square(): > class Rectangle(): > class Triangle(): > # def area(*args, **kwargs): > # def circumference(*args, **kwargs): > > ... https://westurner.github.io/2016/10/17/teaching-test- > driven-development-first.html > > >> 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. >> > > FunctionType type annotation: > https://github.com/python/typeshed/blob/1e04a8c1b8b2c7a1fc3d9fcfbc2d3d > 8ba2dc933a/stdlib/3/types.pyi#L25 > > >> >> 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. >> > > Mayavi (VTK), Blender > > >> 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. >> > > http://holoviews.org/ (Bokeh, Matplotlib, Plotly) > > >> >> Maybe we should learn to do stats that way, using more 3D models than we >> do. Fly through. >> > > We manage to understand so much about data through 2D (+time) > visualizations that don't have 3D camera and viewport parameters to just > reset to the best view. > > That said, these 3Blue1Brown professionally animated math videos are > outstanding (and sponsored!): > https://www.youtube.com/channel/UCYO_jab_esuFRV4b17AJtAw > > >> >> 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. >> > > https://en.wikipedia.org/wiki/General_relativity# > Relationship_with_quantum_theory > > - /search computational physics and python > - /search physics simulation and python > > - http://vpython.org/ > - https://docs.blender.org/manual/en/dev/physics/ > > - Are there other good tools in {Python,} for evaluating complex systems > at a point in time? (I think we've had a similar discussion in the past.) > A moving object with a headlight is traveling at velocity v. Is it v+c, or just c? #DefiningTheProblem #LIGO > > >> 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] >> > > Recently, I learned about LeoCAD (because LEGOs and a bricklayer.org > presentation): > https://github.com/westurner/wiki/wiki/bricklayer# > bricklayer-jupyter-extension > > >> >> The Learn to Code movement is having a big impact, to summarize. >> > > "Nine Policy Ideas to Make Computer Science Fundamental to K-12 Education" > https://code.org/files/Making_CS_Fundamental.pdf > > >> >> Kirby >> > >
_______________________________________________ Edu-sig mailing list Edu-sig@python.org https://mail.python.org/mailman/listinfo/edu-sig