Yes, note that my Pascal&#39;s includes it, with an embedded zip.&nbsp; Another place list comprehension comes up is in our naive definition of totatives as:<br><br>def totative(n):<br>&nbsp;&nbsp;&nbsp; return [ t for t in range(1, n) if gcd(t, n) == 1]<br>
<br>i.e. all 0 &lt; t &lt; n such that (t, n) have no factors in common (are relatively prime).&nbsp; Then our totient function is simply the len of this list, giving us a quick way to assert (test) Euler&#39;s theorem:&nbsp; b ** totient(d) % d == 1 where gcd(b,d)==1.&nbsp; There&#39;s an easy enough proof in &#39;Number&#39; by Midhat Gazale, a must have on our syllabus (I&#39;m suggesting).<br>
<br>Kirby<br><br><br><div class="gmail_quote">On Thu, Jan 15, 2009 at 6:35 AM, michel paul <span dir="ltr">&lt;<a href="mailto:mpaul213@gmail.com">mpaul213@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
I like this.<br>
<br>
I think another &#39;must include&#39; for math classes would be list comprehension syntax.&nbsp; Not
an algorithm in itself, but an important way of thinking.&nbsp; It&#39;s what we try to get them to do using set notation, but in math
classes it seems simply like a formality for describing domains, nothing more.&nbsp; In Python, it DOES stuff.<br><br>- Michel<br><br><div class="gmail_quote">2009/1/14 kirby urner <span dir="ltr">&lt;<a href="mailto:kirby.urner@gmail.com" target="_blank">kirby.urner@gmail.com</a>&gt;</span><br>

<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div><div></div><div class="Wj3C7c">Candidates:<br><br>&quot;Must include&quot; would be like an intersection of many sets in a Venn Diagram, where we all gave our favorite movies and a very few, such as &#39;Bagdad Cafe&#39; or &#39;Wendy and Lucy&#39; or... proved common to us all (no suggesting those&#39;d be -- just personal favorites).<br>


<br>In this category, three candidates come to mind right away:<br><br>Guido&#39;s for the gcd:<br><br>def gcd(a,b):<br>&nbsp;&nbsp;&nbsp; while b:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a, b = b, a % b<br>&nbsp;&nbsp;&nbsp; return a<br><br>Then two generics we&#39;ve all seen many times, generators for Pascal&#39;s Triangle and Fibonacci Sequence respectively:<br>


<br>def pascal():<br>&nbsp;&nbsp;&nbsp; &quot;&quot;&quot;<br>&nbsp;&nbsp;&nbsp; Pascal&#39;s Triangle **<br>&nbsp;&nbsp;&nbsp; &quot;&quot;&quot;<br>&nbsp;&nbsp;&nbsp; row = [1]<br>&nbsp;&nbsp;&nbsp; while True:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; yield row<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; row = [ a + b for a, b in zip( [0] + row, row + [0] ) ]<br>


<br>and:<br><br>def fibonacci(a=0, b=1):<br>&nbsp;&nbsp;&nbsp; while True:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; yield a<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a, b = a + b, a<br><br>IDLE 1.2.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&gt;&gt;&gt; from first_steps import *<br>&gt;&gt;&gt; gcd(51, 34)<br>17<br>&gt;&gt;&gt; g = pascal()<br>


&gt;&gt;&gt; g.next()<br>[1]<br>&gt;&gt;&gt; g.next()<br>[1, 1]<br>&gt;&gt;&gt; g.next()<br>[1, 2, 1]<br>&gt;&gt;&gt; g.next()<br>[1, 3, 3, 1]<br>&gt;&gt;&gt; f = fibonacci()<br>&gt;&gt;&gt; f.next()<br>0<br>&gt;&gt;&gt; f.next()<br>


1<br>&gt;&gt;&gt; f.next()<br>1<br>&gt;&gt;&gt; f.next()<br>2<br>&gt;&gt;&gt; f.next()<br>3<br>&gt;&gt;&gt; f.next()<br>5<br><br>Check &#39;em out in kid-friendly Akbar font (derives from Matt Groening of Simpsons fame): <a href="http://www.wobblymusic.com/groening/akbar.html" target="_blank">http://www.wobblymusic.com/groening/akbar.html</a><br>


<br><a href="http://www.flickr.com/photos/17157315@N00/3197681869/sizes/o/" target="_blank">http://www.flickr.com/photos/17157315@N00/3197681869/sizes/o/</a><br><br>( feel free to link or embed in your gnu math website )<br>

<br>I&#39;m not claiming these are the only ways to write these.&nbsp; I do think it&#39;s a feature, not a bug, that I&#39;m eschewing recursion in all three.&nbsp; Will get to that later, maybe in Scheme just like the Scheme folks would prefer (big lambda instead of little, which latter I saw put to good use at PPUG last night, well attended (about 30)).<br>


<br><a href="http://mybizmo.blogspot.com/2009/01/ppug-2009113.html" target="_blank">http://mybizmo.blogspot.com/2009/01/ppug-2009113.html</a><br><br>Rationale:<br><br>In terms of curriculum, these belong together for a host of reasons, not just that we want students to use generators to explore On-Line Encyclopedia of Integer Sequences type sequences.&nbsp; Pascal&#39;s Triangle actually contains Fibonaccis along successive diagonals but more important we&#39;re laying the foundation for figurate and polyhedral ball packings ala The Book of Numbers, Synergetics, other late 20th century distillations (of math and philosophy respectively).&nbsp; Fibonaccis converge to Phi i.e. (1 + math.sqrt(5) )/2.&nbsp; gcd will be critical in our relative primality checks, leading up to Euler&#39;s Theorem thence RSA, per the review below (a literature search from my cube at CubeSpace on Grand Ave):<br>


<br><a href="http://cubespacepdx.com/" target="_blank">http://cubespacepdx.com/</a><br><a href="http://mathforum.org/kb/thread.jspa?threadID=1885121&amp;tstart=0" target="_blank">http://mathforum.org/kb/thread.jspa?threadID=1885121&amp;tstart=0</a><br>

<a href="http://www.flickr.com/photos/17157315@N00/3195148912/" target="_blank">http://www.flickr.com/photos/17157315@N00/3195148912/</a><br>
<br>Remember, every browser has SSL, using RSA for handshaking, so it&#39;s not like we&#39;re giving them irrelevant info.&nbsp; Number theory goes into every DirecTV box thanks to NDS, other companies making use of this powerful public method.^^<br>


<br>You should understand, as a supermarket manager or museum administrator, something about encryption, security, what&#39;s tough to the crack and what&#39;s not.&nbsp; The battle to make RSA public property was hard won, so it&#39;s not like our public school system is eager to surrender it back to obscurity.&nbsp; Student geek wannabes perk up at the thought of getting how this works, not hard to show in Javascript and/or Python.&nbsp; Makes school more interesting, to be getting the low-down.<br>


<br>By the same token, corporate trainers not having the luxury of doing the whole nine yards in our revamped grades 8-12, have the ability to excerpt specific juicy parts for the walk of life they&#39;re in.&nbsp; <br><br>Our maths have a biological flavor, thanks to Spore, thanks to Sims.&nbsp; We do a Biotum class almost right away (&quot;Hello World&quot; is maybe part of it&#39;s __repr__ ?).&nbsp; I&#39;m definitely tilting this towards the health professions, just as I did our First Person Physics campaign (Dr. Bob Fuller or leader, University of Nebraska emeritus).<br>


<br>The reason for using bizarre charactersets in the group theory piece is we want to get their attention off numbers and onto something more generic, could be pictograms, icons, pictures of vegetables...<br><br>Feedback welcome,<br>


<br>Kirby<br><br><br>** <a href="http://www.flickr.com/photos/17157315@N00/3198473850/sizes/l/" target="_blank">http://www.flickr.com/photos/17157315@N00/3198473850/sizes/l/</a><br>^^ <a href="http://www.allbusiness.com/media-telecommunications/telecommunications/5923555-1.html" target="_blank">http://www.allbusiness.com/media-telecommunications/telecommunications/5923555-1.html</a><br>



<br>
<br></div></div>_______________________________________________<br>
Edu-sig mailing list<br>
<a href="mailto:Edu-sig@python.org" target="_blank">Edu-sig@python.org</a><br>
<a href="http://mail.python.org/mailman/listinfo/edu-sig" target="_blank">http://mail.python.org/mailman/listinfo/edu-sig</a><br>
<br></blockquote></div><br>
</blockquote></div><br>