A few of us at Pycon were nodding heads (+1ing) over the idea that our subculture / ethnicity could evolve these "canned talks" that different people deliver in their personalized style. More than that, they demonstrate new "teaching techniques" such that the audience might appreciate how advances in pedagogy -- and in andragogy -- still occur. Consider the O'Reilly 'Head First Into...' series. Like 'for Dummies', it explains up front that there's psychology at work, smart cookies have baked a new mix of graphic art, sound bites, who knows what's coming, and you, the reader / student are in for a treat. But then books, like videos, are a somewhat passive medium. Once you jump on that gym equipment, that treadmill, that weight pump, you know there's more to the educational experience than having your butt in a chair. Among the canned topics would be ArgsKwargs. Everyone learning Python needs to keep spiraling through the ArgsKwargs literature, wherein we do what in other languages might be called gathering and scattering. The star and double star, which C-language readers are used to seeing anyway in function headers etc., have become scavengers, accepting / liberal "all may pass" type guards at the gate (function entrance), and yet still there are rules (positionals before keyword). Used when passing arguments, the star and double-star are "exploders" (scatterers), setting free their tuples and dicts to mingle as individuals.
def baby(skin="soft", noise_might_be = "crying", **blahblah): print ("Hey baby, I notice the {} skin, and the {} noise you're making".format(skin, noise_might_be)) print(blahblah)
random_keys = {"safe":"12-15-44", "skin":"purple", "tomorrow":"wash car"} baby(**random_keys) Hey baby, I notice the purple skin, and the crying noise you're making {'safe': '12-15-44', 'tomorrow': 'wash car'}
Another canned talk -- could be lightning format -- is IterStuff, beginning with the difference between an iterator and an iterable, climbing through generators (with plenty of send use) to iterator defining classes, to itertools more generally, and a discussion of "just in time" versus pre-stocking memory with impossibly huge inventories. Here I'd suggest a lore-based approach wherein we go over how Python itself has become ever more fascinated with iterators. How is it that a range class object is a sequence (indexable) whereas the dict_items object is not (not indexable)?
dict(a=1,b=2).items()[0] Traceback (most recent call last): File "<pyshell#0>", line 1, in <module> dict(a=1,b=2).items()[0] TypeError: 'dict_items' object does not support indexing range(2)[0] 0
Then there'd be the protocol talks i.e. lets talk about interfaces in the abstract. The iterator is our first example, in being about having __iter__ and __next__. Then comes the descriptor and its interface / protocol. The point being: we should always have these talks. There will always be people new to Python (in this model), or people wanting a refresher and (here's the kicker) people needing practice in their teaching techniques in front of an audience that's already very much in the ballpark (already at a Pycon, not just casually dropping by to see what this might be about). Also: the people most interested in teaching Python, such as here on edu-sig, should be most involved in organizing this track. The track of standard topics, things we all need to know -- but how best to share? That track and that question are one of our angles / self-chosen responsibilities, along with the poster session. I would extend this philosophy to say edu-sig types should also take some 3rd party modules under their collective wing, by which I mean to include such worthies as: Visual Python, I-Python, matplotlib, numpy, Blender and web frameworks (including Google App Engine). OK, now that's starting to sound like a complete Pycon, not just a track. Fair enough. The edu-sig "base" is around a track of core topics. Then each topic is conceived to "branch off" into various "worlds" or "namespaces". E.g the IterStuff branches off into Twisted and asynchronous techniques such as David Beazely has specialized in inventing and teaching. We'd need more diagrams, roadmaps, to show the "lay of the land" (Pythonia). Seeing it one way doesn't preclude also seeing it in other ways too. Kirby
+1 Regarding the Args Kwargs, Matt Harrisons "Guide to: Learning Python Decorators" was a great read for this topic. http://www.amazon.com/Guide-Learning-Python-Decorators-ebook/dp/B006ZHJSIM On Mon, Apr 2, 2012 at 11:52 AM, kirby urner <kirby.urner@gmail.com> wrote:
A few of us at Pycon were nodding heads (+1ing) over the idea that our subculture / ethnicity could evolve these "canned talks" that different people deliver in their personalized style. More than that, they demonstrate new "teaching techniques" such that the audience might appreciate how advances in pedagogy -- and in andragogy -- still occur.
Consider the O'Reilly 'Head First Into...' series. Like 'for Dummies', it explains up front that there's psychology at work, smart cookies have baked a new mix of graphic art, sound bites, who knows what's coming, and you, the reader / student are in for a treat. But then books, like videos, are a somewhat passive medium. Once you jump on that gym equipment, that treadmill, that weight pump, you know there's more to the educational experience than having your butt in a chair.
Among the canned topics would be ArgsKwargs. Everyone learning Python needs to keep spiraling through the ArgsKwargs literature, wherein we do what in other languages might be called gathering and scattering. The star and double star, which C-language readers are used to seeing anyway in function headers etc., have become scavengers, accepting / liberal "all may pass" type guards at the gate (function entrance), and yet still there are rules (positionals before keyword). Used when passing arguments, the star and double-star are "exploders" (scatterers), setting free their tuples and dicts to mingle as individuals.
def baby(skin="soft", noise_might_be = "crying", **blahblah): print ("Hey baby, I notice the {} skin, and the {} noise you're making".format(skin, noise_might_be)) print(blahblah)
random_keys = {"safe":"12-15-44", "skin":"purple", "tomorrow":"wash car"} baby(**random_keys) Hey baby, I notice the purple skin, and the crying noise you're making {'safe': '12-15-44', 'tomorrow': 'wash car'}
Another canned talk -- could be lightning format -- is IterStuff, beginning with the difference between an iterator and an iterable, climbing through generators (with plenty of send use) to iterator defining classes, to itertools more generally, and a discussion of "just in time" versus pre-stocking memory with impossibly huge inventories.
Here I'd suggest a lore-based approach wherein we go over how Python itself has become ever more fascinated with iterators. How is it that a range class object is a sequence (indexable) whereas the dict_items object is not (not indexable)?
dict(a=1,b=2).items()[0] Traceback (most recent call last): File "<pyshell#0>", line 1, in <module> dict(a=1,b=2).items()[0] TypeError: 'dict_items' object does not support indexing range(2)[0] 0
Then there'd be the protocol talks i.e. lets talk about interfaces in the abstract. The iterator is our first example, in being about having __iter__ and __next__. Then comes the descriptor and its interface / protocol.
The point being: we should always have these talks.
There will always be people new to Python (in this model), or people wanting a refresher and (here's the kicker) people needing practice in their teaching techniques in front of an audience that's already very much in the ballpark (already at a Pycon, not just casually dropping by to see what this might be about).
Also: the people most interested in teaching Python, such as here on edu-sig, should be most involved in organizing this track.
The track of standard topics, things we all need to know -- but how best to share? That track and that question are one of our angles / self-chosen responsibilities, along with the poster session.
I would extend this philosophy to say edu-sig types should also take some 3rd party modules under their collective wing, by which I mean to include such worthies as: Visual Python, I-Python, matplotlib, numpy, Blender and web frameworks (including Google App Engine).
OK, now that's starting to sound like a complete Pycon, not just a track. Fair enough.
The edu-sig "base" is around a track of core topics. Then each topic is conceived to "branch off" into various "worlds" or "namespaces". E.g the IterStuff branches off into Twisted and asynchronous techniques such as David Beazely has specialized in inventing and teaching. We'd need more diagrams, roadmaps, to show the "lay of the land" (Pythonia). Seeing it one way doesn't preclude also seeing it in other ways too.
Kirby
_______________________________________________ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
On Mon, Apr 2, 2012 at 10:07 AM, DeanG <goodmansond@gmail.com> wrote:
+1
Regarding the Args Kwargs, Matt Harrisons "Guide to: Learning Python Decorators" was a great read for this topic. http://www.amazon.com/Guide-Learning-Python-Decorators-ebook/dp/B006ZHJSIM
I'm quite tempted to buy a Kindle. I had no idea there was a whole Kindle book on decorators. Yes, decorators would have to be another one of those Standard Gotta Have It track talks we edu-siggers are focused on. ArgsKwags, IterStuff, Decorators, Metaclasses, Introspection... Dialectical Differences Library: talks always welcome, standard usergroup fare (Portland's groups always has Module of the Month) 3rd party: IDEs (e.g. I-Python), VIsualization (e.g. Blender, VPython, Pygame, matplotlib). Web (Django, web2py, Google App Engine) Python plays well with others, so a lot of Design Patterns stuff relating to OO in general would could push off to those OSCON type events where we have Java, Python, Ruby, Perl, C++ all under one big tent. There should be like OO track topics that don't count against the Python quota, if ya know what I mean. Kirby
Dean- Thanks for including me on this topic. (Just subscribed to the list). Rest- As the author of said book, tutorial presenter at PyCON and co-wrangler of the local Python group, I think it is important to remember the newbies. My Intermediate Python tutorial has consistently been one of the top PyCon tutorials. It doesn't have really anything new, but condenses a lot of information that I wish someone had provided to me. It is nothing sexy, but is a stepping stone for more advanced stuff. My short books are an attempt to provide these stepping stones in a condensed format. The assumption that all attendees are experts at PyCON, local user groups, etc is not true. There are quite a few people interested in the stone stepping. -matt
We finally finished Riemann Sums! We had a major problem with internet access at my school over the last month, so we couldn't log into our customary SAGE server. But, we are now back in business. We wrote python functions for LeftSum, RightSum, MidSum, TrapSum and Simpson's rules: myLSum(g(x),a,b,n) myRSum(g(x),a,b,n) myMSum(g(x),a,b,n) myTSum(g(x),a,b,n) mySSum(g(x),a,b,n) http://shadowfaxrant.blogspot.com/2012/05/quarter-iv-week-2-screencasts.html HTH, A. Jorge Garcia Applied Math and CompSci http://shadowfaxrant.blogspot.com http://www.youtube.com/calcpage2009
participants (4)
-
A. Jorge Garcia
-
DeanG
-
kirby urner
-
Matt Harrison