From urner@alumni.Princeton.EDU Fri Aug 4 06:24:52 2000 From: urner@alumni.Princeton.EDU (Kirby Urner) Date: Thu, 03 Aug 2000 22:24:52 -0700 Subject: [Edu-sig] Re: Propositions re Math Education etc. References: Message-ID: > = Kirby (for original post, to which this is a reply, see: = Wired News http://www.deja.com/getdoc.xp?AN=654047866&fmt=text >** SCHOOLS NEED TO DEFINE THEMSELVES IN CYBERSPACE >We desperately need public and private schools to develop a >more on-line presence so that home use of computers is better >integrated with homework of the more traditional sort. Many >schools are working in this direction, with the most successful >models including the students as web masters and content >providers. And some are, certainly. See: http://www.wired.com/news/culture/0,1284,21359,00.html The district -- which has eight schools covering an area the size of Ohio but only about 150 students -- has its own server, and a Web site connecting all the schools in the district. Kids can access schedules, homework assignments, and save their own files in a digital locker for retrieval from any Internet browser. "I think it helps out a lot. We have Internet access, so you can research all kinds of things -- math projects and science and all kinds of stuff," said Robert Stumpf, who starts his freshman year in Copper River on Monday. "We have our own personal folders on the servers so we can access them from everywhere instead of carrying around floppy disks and losing them." >The web naturally serves as a gateway to other media, such as >audio and video. Classroom assignments tend to focus on creating >sharable files, such at web pages, slide shows, computer programs >-- as well as the more traditional hands-on projects (dioramas, >models, science exhibits -- the booth-oriented presentation, >good prep for the trade fairs and professional symposia, with >poster sessions, many students will eventually face). > >** MATH IS NOT STATIC, TECHNOLOGY MATTERS > Faulkner will be rolling out a 30-unit lab of the stand-alone computers when school starts in two weeks. The units are stripped-down terminals that cost only about US$500 each, and can boot from one server in the district office. A new interface has made thin clients more user friendly than previous configurations, Faulkner said. Eventually, he hopes to put thin clients all over the district so all of the schools can be connected. "This thin client product will allow us to populate classrooms with several of these, and they're full-powered but they're very inexpensive," Faulkner said. "They give the teachers maximum flexibilty -- it frees them up to go about the business of teaching instead of managing technology. At the same time it gives them maximum control. It's the best of both worlds," Faulkner said. > >** NEW PILOT SCHOOLS WITH UNCLE SAM AT THE WHEEL > >Specifically, some pilot schools will be experimenting with >math classes featuring screens and keyboards at every desk, a >big projector screen up front. The screens will be recessed, >so as not to obscure the student's view of the front. Some >documentary films will be showing up on those screens -- pulled >from the DVD jukeboxes in the back room. > >Kirby From urner@alumni.Princeton.EDU Sat Aug 5 21:38:57 2000 From: urner@alumni.Princeton.EDU (Kirby Urner) Date: Sat, 05 Aug 2000 13:38:57 -0700 Subject: [Edu-sig] Re: are there any tutorials that someone completly new to programming can understand? References: <8l4klm$2kl$1@slb6.atl.mindspring.net> <398B88C0.C9F68EA1@nycap.rr.com> Message-ID: gbp wrote: > >There are a lack of books on Python in general so there's a really big >lack of books on niche things. All the books on python are for people >who basically know how to program already. Thanks for taking the time to look back and summarize. I think you're providing useful guidance to people venturing into computers and programming and wanting some overview/perspective. I used to work for a textbook company doing stuff for junior high schoolers. This was 1984 and Logo and BASIC (not Visual Basic) were the two teaching languages most used at that level. I would agree with you completely that Python is a good teaching language and that we need more teaching materials which phase in programming and computer basics at the same time. Or we could blend programming, computer, and basic math concepts (the approach I prefer, and call the 'Numeracy + Computer Literacy' or 'math through programming' approach) If I were to go back to that text book company (McGraw-Hill) now that 15 years have gone by, I'd be pushing Python as the "new BASIC". DrScheme is another good one, for giving the flavor of a LISP-style approach (which is quite different -- takes some getting used to (Logo is also LISPish)). The "Computer Programming for Everybody" initiative, which did get some funding initially, was about taking advantage of Python's teachability. The DARPA grant has run down, but there's still a special interest group (SIG) exploring the topic. See: http://www.python.org/sigs/edu-sig/ Also, maybe check out my "math through programming" essay, which starts with easy Python (3-to-8 line functions) and builds up to more complicated stuff, getting quickly into 3D graphics (by joining forces with Povray, also free): http://www.inetarena.com/~pdx4d/ocn/numeracy0.html At the bottom of the first section, is a link to the high school in Virginia where Jeff Elkner teaches. His program is one of the more dynamic and Python-invested. I suggest you explore his school's website for Python- learning resources (or, if you already know Python pretty well, point your friends just starting out to this resource). Kirby >Python really is a good teaching langauge because its both 'correct' and >fairly complete. You can write a lot of cool programs in python fairly >easily compared to C. I think that college professors and high school >teachers should teach Python insted of BASIC. BASIC is often taught to >lower level programming classes because its accessable. However, basic >is a pretty bad langauge. For higher level classes C (now C++, or even >Java) is taught. C is great if you have 4 years and are highly >motivated to learn about computers. >When your learning on your own the quality of the book can be as if not >more important than the langauge. Python is a great language but... >People have learned with all different kinds of langauges. There is no >right way to learn. Real programmers usually know 2-5 langauges fairly >well. Since the demand for programmers is so high theres a whole new >bred of paid visual basic programmers who barely know anything about >programming langauges-- a similar thing is true for network >administrators. Some people who have gone through school or have a lot >of work experience may have been exposed to ten or even twenty. >Langauge nuts may 'know' even more. I'm only 25 and iv'e written >programs in basic(many flavors), logo, pascal, C/C++, lisp(weird), >Perl(very weird), bash(sucks), SQL, and javascript(not that good), a >little java, and now python (yeah!). >Different langauges are good at different things, so there is never >going to be a best langauge. People may argue about what the best >langauge is in a particular niche. >Since the major obstical is going to be motivation you should pick a >language that you think is cool. After that try to lacate decent >teaching materials. If you can't find them move on. If you have an >interest in a particular field try a langauge that you know is used in >that field. >My advice to you is that the best books for learning programming come >out of the acedemic world. Try to get a book that is meant for a first >and second semester course in Computer science and is written by a >professor or other acedemic. Try writing some toy programs. >This is my short list of ones to check out: >**** Logo: A fun little langauge that has a built in graphics engine. >This is often used to teach kids but unlike basic it is actually a good >langauge. >*** C: Not for the faint of heart but if you want to know the internals >of how computers actually work this may interest you. Note I said C not >C++. >*** Pascal: This is actually designed as a teaching langauge. (I think >Logo was too) Not bad but it may be hard to write something cool in >it. Lots a lanagues like Delpi and modula-2 are pascal-like. >*** Java: The OOP is kinda tough but this language is solid. Good book >essential. IDE recommended. >*** Linux: Not a programming language :) Good way to learn about >computers and operating systems. Also includes about 10-20 free >langauges. SUSE Linux has the most stuff. >** 1/2 Visual Basic: Easy to actually build things with. Just don't >let it go to your head. Your not a real programmer until you know TWO >langauges :) >*** HTML: Not exactly a langauge either but may be interesting. You >combine this with other stuff to make web sites. >*** SQL/Databases: Kindof a career thing. Databases are kindof >interesting in there own right. SQL is a special lanaguage to >manipulate databases. Access programmers are kindof like the Visual >basic programmers. (Your not a real DBA until you know a 'real' >database like Oracle, DB2, or Sybase :) From urner@alumni.Princeton.EDU Mon Aug 14 20:41:04 2000 From: urner@alumni.Princeton.EDU (Kirby Urner) Date: Mon, 14 Aug 2000 12:41:04 -0700 Subject: [Edu-sig] Re: reducing fractions References: <7j2qmsstdgrh66sf625eeekqgt7jdn7gh7@4ax.com> Message-ID: "Janet Johnson" wrote: >I teach 6th grade and every year my students seem to have a lot of >difficulty with fractions, specifically, reducing or recognizing that a >fraction isn't reduced. I have given them many ideas on how to tell, even >to the point of writing out the factors for both the numerator and >denominator. Does anyone have any suggestions on how to get this concept >across to the students? Any suggestions would be greatly appreciated. >Janet Johnson You could unsimplify some fractions e.g. 2/3 -> 10/15 i.e. show the inverse of what it means to "simplify". If 'prime number' is already a concept, you could try 'relative prime' meaning no factors in common (i.e. "a fraction is in lowest terms when the numerator and denominator are both integers and are relative primes"). Along these lines, I really like your idea of writing out the prime factors, crossing out those in common e.g.: 150/210 -> (3 x 5 x 2 x 5) / (7 x 3 x 2 x 5) -> 5/7 That ties back to "intersection of sets" i.e. the intersection of {3,5,2,5} and {7,3,2,5} is {3,5,2} (multiple appearances of the same factor constitute unique members of each set). As the other poster mentioned, you're looking for the greatest common divisor or "biggest gzinta (goes into)", in the above example 3 x 2 x 5 = 30. Pictorially, you could do a pie divided into 3 wedges (thirds) and then slice each third in half (sixths). Getting 1/3 of the pie is the same as getting 2 x 1/6s or 2/6s. Lots of pictorials along these lines -- including in 3D (i.e. volumes in space).[1] Historically speaking, finding the greatest common divisor (gcd) is one of the oldest algorithms on record, and is credited to Euclid. Here's how Euclid did it: Setup: Consider two numbers a and b. Which is greater? Lets say a (call the other one b). Step 1: Divide a by b. Step 2: If it goes evenly (remainder = 0), we're done, and b is the gcd. Step 3: If there's a remainder r > 0, then we can refocus the problem to finding the gcd between b and r. So rename b, r to a,b and loop to step 1. Note that 1 always goes evenly, so if the remainder is 1 in Step 3, we'll get 1 as the answer in Step 2 -- which is OK. A gcd of 1 means a,b are relative primes. Trying the above with b=150 and a=210 i.e. gcd(210,150): Step 1,2: 210/150 -> remainder of 60 Step 3: now find gcd(150,60) Step 1,2: 150/60 -> remainder of 30 Step 3: now find gcd(60,30) Step 1,2: 60/30 -> remainder of 0, so answer is 30 In a well-equipped math classroom, one with an internet hookup and a projected computer screen (big up front), I'd show students (even 6th graders) some of these ideas using Python notation (a free download, no strings attached).[2] You can use the % primitive to get the remainder, i.e. a%b -> remainder of a divided by b. Here's what that looks like (>>> is the prompt (teacher types), with the next line, in a different color, being Python's reply): Python 1.6a2 (#0, Apr 6 2000, 11:45:12) [MSC 32 bit (Intel)] on win32 Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam IDLE 0.6 -- press F1 for help >>> 210%150 60 >>> 150%60 30 You could even show a little program implementing Euclid's algorithm. Here's one way to write it: >>> def gcd(a,b): while 1: # loop until break r = a%b # step 1 if r == 0: # step 2 break # we're done else: a,b = b,r # step 3 return b >>> gcd(210,150) 30 Here's another way (even shorter): >>> def gcd(a,b): r = a%b # step 1 if r == 0: # step 2 return b else: return gcd(b,r) # step 3 >>> gcd(210,150) 30 It's fun to have a computer in the picture because then you can play with larger numbers than in the text books, or than calculators can handle. For example: >>> gcd(72534982347852342L,6276912736644L) 6L The L mean "long integer" and cues Python that we're going beyond the scope of "ordinary" integers (a type casting consideration handled more transparently in another language, also a free download, DrScheme).[3] Here's one way to write gcd using DrScheme: Function: ; gcd: number number -> number ; to find the gcd of two numbers (Euclid's Algorithm) (define (gcd a b) (define r (remainder a b)) (cond [(= r 0) b] [else (gcd b r)]) ) Usage: Welcome to DrScheme, version 101. Language: Textual Full Scheme (MzScheme). > (gcd 210 150) 30 > (gcd 72534982347852342 6276912736644) 6 So the above gcd means: 6276912736644/72534982347852342 -> (6 x 1046152122774)/(6 x 12089163724642057) [practice long division!] -> 1046152122774/12089163724642057 and 1046152122774, 12089163724642057 should be relative primes, since we've already divided by the gcd. Checking: Python: >>> gcd(12089163724642057L, 1046152122774L) 1L DrScheme: > (gcd 12089163724642057 1046152122774) 1 Yep! Long division problem (good to show because calculators and even floating point processors choke on this many digits, but our paper and pencil algorithms do not): 12089163724642057 ------------------ 6|72534982347852342 Doing a long divisions such as the above on paper needn't be too tedious if the whole class works together a few times. Good review of the times table for 6. I teach putting the remainder as a tiny digit to the upper left of the next, so we don't have this huge long series of subtractions trailing down like the tendrils of a jelly fish. E.g. 6|7... leaves 1, so the 1 goes to the upper left of the 2, making 12, and so on (I'm sure all the K-12 math teachers know what I mean). I think it's important to clue kids early about these limitations of floating point and even long integer arithmetic on computers, plus most calculators won't even touch 17-digit numbers (or greater). As I wrote re the Math Summit in Oregon (1997): "(as the official note taker, I managed to interject twice -- once about the wierdnesses in floating point math as implemented in computers, reason enough to learn the algorithms on paper as well)"[4] I.e. this is how to respond to students who ask why we're still learning long division on paper when we have calculators and computers: because calculators wimp out, and with computers you may need to check its math, especially if any floating point operations were involved. For example in Python, using floating point: >>> 72534982347852342.0/6.0 12089163724642056.0 Which is off by a digit (because of the limited precision of floating point numbers). DrScheme gives the same answer, but warns the result is imprecise using the # symbol. From the manual: * Print inexact numbers with #i -- Prints inexact numbers with a leading #i to emphasize that they represent imprecise results (or even effectively incorrect results, depending on the intended calculation). > 72534982347852342/6.0 #i12089163724642056.0 If the above were really the right answer, then 72534982347852342 should be divisible by 36, since 12089163724642056 is again divisible by 6. Python might lead us to believe this is true, because the / operator is designed to give only integer answers no matter what -- unless one of the arguments is floating point (i.e. we'll get the wrong answer whether we use / as an integer or floating point operator in this case). So: >>> 72534982347852342L/36L 2014860620773676L -- but we can't really trust this result. The way to check is to ask for a remainder is to use the % operator: >>> 72534982347852342L%36L 6L ... which shows 36 isn't really a 'gzinto'. DrScheme doesn't implement the / operator in the same way, and 72534982347852342/36 gives a correct answer, a fraction: > 72534982347852342/36 12089163724642057/6 Kirby [1] Too much emphasis on cubes and rectangular prisms when doing fractions leaves students deprived of a stronger conceptual grasp of polyhedra, which derives from using a richer set of fractional relationships. My school is very much into using a modularized set of polyhedra with easy whole number and fractional relationships, as per my web pages: http://www.teleport.com/~pdx4d/volumes.html [2] http://www.python.org/sigs/edu-sig/ [3] http://www.cs.rice.edu/CS/PLT/Teaching/ [4] http://www.teleport.com/~pdx4d/mathsummit.html From jasonic@nomadicsltd.com Thu Aug 31 18:04:52 2000 From: jasonic@nomadicsltd.com (Jason Cunliffe) Date: Thu, 31 Aug 2000 13:04:52 -0400 Subject: [Edu-sig] CP4E VideoPython learning to teatch / teaching to learn ..[xpost: was {'cpl',"don't laugh"}] Message-ID: <012001c0136d$9486d040$c3090740@megapathdsl.net> Hello everyone At Guido's suggestion, I am forwarding this rather impassioned reply-post I made to a recent thread on comp.lang.python. I have also just now subscribed to Edu-sig@python.org I have been following CP4E at a distance since I first heard about it and look forwards to sharing skills, ideas and inspiration together.. - Jason ________________________________________________________________ Jason CUNLIFFE = NOMADICS.(Interactive Art and Technology).Design Director ............................................................................ .................................................... Ken Mossman wrote in message news:8oi3s4$8km$1@nobel2.pacific.net.sg... > I have some JUNIOR staff > and they are asking > if there any CBT or multi-media > courses for Python > > They are NEWBIES !! Hello. This is long post because you touched a nerve here... I am not only laughing, but crying too - at you folks for not appreciating what a good question this really is! In fact I am wondering if in part this does not get at the heart of CP4E [computer programming for everyone]..or what is missing in that regard.. Personally I would love to spend a couple of hours sitting next to an experienced Python programmer who could show for example the process of putting to together a program, testing it, shaping, how they react to error messages, how they sculpt the code, how they might look at the problem a couple of ways, how they use the tools, how many windows open, what they look at.. the real-world rhythm of a few hours in the life of a python program.. even better if this was intelligently structured and re-playable with examples. It would be nice to have a human being talk and type me through some code. Yes there is no substitute for hands-on learning doing. But there is no substitute for great teachers either! And since we don t have the joys of python class in school or at our corner adult-education center, we go to the web and read and download and hack explore till hopefully it clicks. Some experienced folks can transfer their previous learning fast, but for others who may have no experience or com from another background, the first steps are very important.. But consider for example what happens when you open a high powered version 9 piece of multimedia or 3d.modelling.animation software.. How many of your here would last 15 minutes before a deep and overwhelming sense of drowning mingled with your wide-eyed ambition and fascination. But try to get something done... Ok so you get your hands on 1 hour video which shows you the basic features, some examples and give you a reasonable grasp of what it the rhythm of working and how many times you have click and open, where some shortcuts are etc.. Lord I would love a Python video from the masters at work and play. In any field there are rare few people who _really_ understand it, and even rarer are the ones who can teach it. Python seems easy, well documented, has a great community etc.. and it does. But fundamentally all the source code in the world does not help one understand the process of programming. It does not show a newbie what to do with all those modules and definitions after your put them under your pillow! [http://www.python.org/doc/current/lib/lib.html] Would someone just explain what all this stuff is and what are the 20 most important things needed to know to get going..and then put the rest into some context so one understands what to look forwards to. I will give you a very simple few example of the sorts of things which drove me nuts when I first tried to run python on win32 1 - PYTHONPATH... where is this thing and how do I set it [in DOS ?, in Python under some menu, by editing autostart.bat, in some hideous registry sub.sub.sub.location.attribute 2 - The manual says just make this cute 'helloworld.py' example and save it. So you do, but you don't save/drop it into the main python directory [that would be dumb right?] .. no like a good kid you make a nice folder four yourself and put your first examples there. 3 - Now when you do this and go 'import helloworld' you immediately get an informative precise error reply written in Python[Babylonian]! What's with that? For god sakes the newbie default for python should be a: make a folder called 'newbies' and tell newbies to save their scripts there so they WILL run first time b: add an auto-include folder paths python routine which means any folder added to the default installation will be seen and run ok. 4 - You get enthusiastic and a little braver and download some cool package. unzip and put it into you python directory or maybe even somewhere else [god help you poor soul]. Try to import that more errors..arggh. Eventually you find somewhere after scouring the docs and newsgroups a couple of VITAL commands: import sys, os sys.path.append('c:\program files\python\coolnewpackage\') os.chdir('c:\program files\python\coolnewpackage\') os.listdir(os.getcwd()) - And after this there is the problem of packages and how modules behave with namespace voodoo like the difference between import * from somewhere import something from somewhere import * - how to get them work properly - how to deal with the typical top 20 error messages python throws at you in zealous yet Zen-like bliss - What is the relationship of import, os.getcwd(), os.chdir(), '__dir__', '__builtins__', '__doc__', '__name__' to the mysteriously named, ubiquitous, but frequently blank files named __init__.py ??? Can you explain that one to you mother? All the super tools in the world do not help if one does not know how to use them or have a grasp of what they are capable of. IDLE and PythonWin get better all the time, and now we are about to see lots more cool Python on Windows via ActiveState etc. But this only ups the ante for what a great idea it is to make some Python training Videos/DVD/CBT. Go to Barnes and Noble for example, there are precious few python books visible and they are scattered around in odd corners. This is sad but not surprising since the Python booklist has grown well over the past year. I fear the situation may not change much in the future unless there is widespread adoption of Python ++ big marketing push to make it happen like WROX, MS, QuickStart, EASYthisEasyTHAT. Even if a newbie cannot afford the stack of $40+ dollar books VB and others tout, at least they can hang out their for an afternoon and browse and read and scan the range of uses, abuses, approaches and devotions of all those authors. Python is slim but elegantly represented. Yes the online docs are admirable, but believe me there are many beginners who need all the help they can to get going. What are you going to recommend to the nearest 12-year old who is itching to learn some programming? RealBASIC, Python, VB, JavaScript, C, C++, Dflat, Rebol, HTML, DHTML, XML, GML, Lingo, LegoMindstorms... ??? My answer is: 1. Start with Macromedia Flash5 and maybe LegoMindstorms for Xmas 2. And then learn Python... [but what am I going to give them for help?] 3. Then Blender v2.x [gaming version with python scripting http://www.blender.nl] Flash it turns out is a brilliant intro to object-oriented programming and a ton of instant fun for all ages also. The new Flash5 has a real language in it now [ActionScript = Java/ECMAScript syntax] behind a cool multi-dimensional interface and frees humans from most of all the ghastly invisible stuff which object-oriented programming was supposed to.. TEST A: - try making an interface in Flash and then in Tkinter or wxPython or some such..yeooow!@#. the difference is newbie heaven and hell TEST B: - or Next time anyone you know has to make PowerPoint slides, crack open a version of Flash and try that instead. Immediately it makes one think in terms of sequence, rhythm, flow, aesthetics, reusable components.. perfect for presenting ideas and teaching. C'mon - The question I ask you is what would make a good contents for a video, and who here would like to work with me [as camera wielding newbie] to develop some great CBT/Training Videos for Python ? CP4E indeed. Before re-inventing yet another language {RIYAL}, how about first learning how to teach this one? Python is cool, it has some idiosyncrasies. I love it and hope it continues to thrive. regards - Jason ________________________________________________________________ Jason CUNLIFFE = NOMADICS.(Interactive Art and Technology).Design Director From jstraw@yorktown.arlington.k12.va.us Thu Aug 31 18:17:36 2000 From: jstraw@yorktown.arlington.k12.va.us (Jason Straw) Date: Thu, 31 Aug 2000 13:17:36 -0400 Subject: [Edu-sig] CP4E VideoPython learning to teatch / teaching to learn ..[xpost: was {'cpl',"don't laugh"}] References: <012001c0136d$9486d040$c3090740@megapathdsl.net> Message-ID: <39AE9330.A990AE6B@resample.com> Hello Jason and EDU-SIG: There are a series of python videos in development through Yorktown High School. Most everything is in the works: director, production equipment, personnel, etc... I am also sending this to the person who is organizing the project, Jeffrey Elkner. Jason Straw Zope Master and Python Programmer Yorktown High School Linux Users' Group Jason Cunliffe wrote: > > Hello everyone > > At Guido's suggestion, I am forwarding this rather impassioned reply-post I > made to a recent thread on comp.lang.python. > I have also just now subscribed to Edu-sig@python.org > I have been following CP4E at a distance since I first heard about it and > look forwards to sharing skills, ideas and inspiration together.. > - Jason > ________________________________________________________________ > Jason CUNLIFFE = NOMADICS.(Interactive Art and Technology).Design Director > > ............................................................................ > .................................................... > Ken Mossman wrote in message > news:8oi3s4$8km$1@nobel2.pacific.net.sg... > > I have some JUNIOR staff > > and they are asking > > if there any CBT or multi-media > > courses for Python > > > > They are NEWBIES !! > > Hello. This is long post because you touched a nerve here... > > I am not only laughing, but crying too - at you folks for not appreciating > what a good question this really is! > > In fact I am wondering if in part this does not get at the heart of CP4E > [computer programming for everyone]..or what is missing in that regard.. > > Personally I would love to spend a couple of hours sitting next to an > experienced Python programmer who could show for example the process of > putting to together a program, testing it, shaping, how they react to error > messages, how they sculpt the code, how they might look at the problem a > couple of ways, how they use the tools, how many windows open, what they > look > at.. the real-world rhythm of a few hours in the life of a python program.. > even better if this was intelligently structured and re-playable with > examples. It would be nice to have a human being talk and type me through > some code. > > Yes there is no substitute for hands-on learning doing. But there is no > substitute for great teachers either! > And since we don t have the joys of python class in school or at our corner > adult-education center, we go to the web and read and download and hack > explore till hopefully it clicks. Some experienced folks can transfer their > previous learning fast, but for others who may have no experience or com > from another background, the first steps are very important.. > > But consider for example what happens when you open a high powered version 9 > piece of multimedia or 3d.modelling.animation software.. How many of your > here would last 15 minutes before a deep and overwhelming sense of drowning > mingled with your wide-eyed ambition and fascination. But try to get > something done... > > Ok so you get your hands on 1 hour video which shows you the basic features, > some examples and give you a reasonable grasp of what it the rhythm of > working and how many times you have click and open, where some shortcuts are > etc.. > > Lord I would love a Python video from the masters at work and play. In any > field there are rare few people who _really_ understand it, and even rarer > are the ones who can teach it. Python seems easy, well documented, has a > great community etc.. and it does. > > But fundamentally all the source code in the world does not help one > understand the process of programming. It does not show a newbie what to do > with all those modules and definitions after your put them under your > pillow! [http://www.python.org/doc/current/lib/lib.html] > Would someone just explain what all this stuff is and what are the 20 most > important things needed to know to get going..and then put the rest into > some context so one understands what to look forwards to. > > I will give you a very simple few example of the sorts of things which drove > me nuts when I first tried to run python on win32 > > 1 - PYTHONPATH... where is this thing and how do I set it [in DOS ?, in > Python under some menu, by editing autostart.bat, in some hideous registry > sub.sub.sub.location.attribute > > 2 - The manual says just make this cute 'helloworld.py' example and save > it. So you do, but you don't save/drop it into the main python directory > [that would be dumb right?] .. no like a good kid you make a nice folder > four yourself and put your first examples there. > > 3 - Now when you do this and go 'import helloworld' you immediately get an > informative precise error reply written in Python[Babylonian]! > What's with that? > > For god sakes the newbie default for python should be > > a: make a folder called 'newbies' and tell newbies to save their scripts > there so they WILL run first time > b: add an auto-include folder paths python routine which means any folder > added to the default installation will be seen and run ok. > > 4 - You get enthusiastic and a little braver and download some cool package. > unzip and put it into you python directory or maybe even somewhere else [god > help you poor soul]. Try to import that more errors..arggh. Eventually you > find somewhere after scouring the docs and newsgroups a couple of VITAL > commands: > > import sys, os > sys.path.append('c:\program files\python\coolnewpackage\') > os.chdir('c:\program files\python\coolnewpackage\') > os.listdir(os.getcwd()) > > - And after this there is the problem of packages and how modules behave > with namespace voodoo like the difference between > import * > from somewhere import something > from somewhere import * > > - how to get them work properly > - how to deal with the typical top 20 error messages python throws at you in > zealous yet Zen-like bliss > > - What is the relationship of import, os.getcwd(), os.chdir(), '__dir__', > '__builtins__', '__doc__', '__name__' to the mysteriously named, ubiquitous, > but frequently blank files named __init__.py ??? > > Can you explain that one to you mother? > > All the super tools in the world do not help if one does not know how to use > them or have a grasp of what they are capable of. IDLE and PythonWin get > better all the time, and now we are about to see lots more cool Python on > Windows via ActiveState etc. But this only ups the ante for what a great > idea it is to make some Python training Videos/DVD/CBT. > > Go to Barnes and Noble for example, there are precious few python books > visible and they are scattered around in odd corners. This is sad but not > surprising since the Python booklist has grown well over the past year. I > fear the situation may not change much in the future unless there is > widespread adoption of Python ++ big marketing push to make it happen like > WROX, MS, QuickStart, EASYthisEasyTHAT. Even if a newbie cannot afford the > stack of $40+ dollar books VB and others tout, at least they can hang out > their for an afternoon and browse and read and scan the range of uses, > abuses, approaches and devotions of all those authors. Python is slim but > elegantly represented. > > Yes the online docs are admirable, but believe me there are many beginners > who need all the help they can to get going. What are you going to recommend > to the nearest 12-year old who is itching to learn some programming? > RealBASIC, Python, VB, JavaScript, C, C++, Dflat, Rebol, HTML, DHTML, XML, > GML, Lingo, LegoMindstorms... ??? > > My answer is: > 1. Start with Macromedia Flash5 and maybe LegoMindstorms for Xmas > 2. And then learn Python... [but what am I going to give them for help?] > 3. Then Blender v2.x [gaming version with python scripting > http://www.blender.nl] > > Flash it turns out is a brilliant intro to object-oriented programming and a > ton of instant fun for all ages also. > The new Flash5 has a real language in it now [ActionScript = Java/ECMAScript > syntax] behind a cool multi-dimensional interface and frees humans from > most > of all the ghastly invisible stuff which object-oriented programming was > supposed to.. > TEST A: - try making an interface in Flash and then in Tkinter or wxPython > or some such..yeooow!@#. the difference is newbie heaven and hell > TEST B: - or Next time anyone you know has to make PowerPoint slides, crack > open a version of Flash and try that instead. Immediately it makes one think > in terms of sequence, rhythm, flow, aesthetics, reusable components.. > perfect > for presenting ideas and teaching. > > C'mon - The question I ask you is what would make a good contents for a > video, and who here would like to work with me [as camera wielding newbie] > to develop some great CBT/Training Videos for Python ? > > CP4E indeed. Before re-inventing yet another language {RIYAL}, how about > first learning how to teach this one? > Python is cool, it has some idiosyncrasies. I love it and hope it continues > to thrive. > regards > - Jason > > ________________________________________________________________ > Jason CUNLIFFE = NOMADICS.(Interactive Art and Technology).Design Director > > _______________________________________________ > Edu-sig mailing list > Edu-sig@python.org > http://www.python.org/mailman/listinfo/edu-sig From pdx4d@teleport.com Thu Aug 31 22:33:46 2000 From: pdx4d@teleport.com (Kirby Urner) Date: Thu, 31 Aug 2000 14:33:46 -0700 Subject: [Edu-sig] CP4E VideoPython learning to teatch / teaching to learn ..[xpost: was {'cpl',"don't laugh"}] In-Reply-To: <012001c0136d$9486d040$c3090740@megapathdsl.net> Message-ID: <3.0.3.32.20000831143346.00a4fb00@pop.teleport.com> Hi Jason -- I have no problem with your impassioned plea for better teaching materials, including multimedia. No laughing matter. Lots of people working on it no doubt. Also thanks for your rave review of Flash5, which I haven't had the time to look into. Sometimes I think what bogs people down is foresaking any knowledge domain and trying to learn the "programming language" as the generic "thing to know". More useful, I think, is to bring in a knowledge domain (some topic in mathematics, a graphical challenge, some real problem needing a solution), and then learn the language in tandem with that knowledge. Because when do you really "know" Python or Java? When you've mastered every module or package that comes with it. I've yet to meet a programmer who has. And yet the newbie might get the impression this is the goal, and immediately get lost. Sometimes a good teacher is just someone who knows how to parse a large domain into doable, masterable steps, whereas the drowning student is the one who has plenty of intelligence and talent, but thinks learning it ALL (whatever ALL means) is what's necessary -- as if others have done that (really, they haven't). Kirby From jasonic@nomadicsltd.com Thu Aug 31 23:32:37 2000 From: jasonic@nomadicsltd.com (Jason Cunliffe) Date: Thu, 31 Aug 2000 18:32:37 -0400 Subject: [Edu-sig] CP4E VideoPython learning to teatch / teaching to learn ..[xpost: was {'cpl',"don't laugh"}] = LLPP References: <3.0.3.32.20000831143346.00a4fb00@pop.teleport.com> Message-ID: <01cb01c0139b$5daab0e0$c3090740@megapathdsl.net> Hi Kirby Thanks for excellent points... Actually you are one of the people I would want to interview + I love your Mathematics packing Python-POV page. http://www.inetarena.com/~pdx4d/ocn/numeracy0.html It is precisely to have a bio-diversity of 'experts' saying things like: > Because when do you really "know" Python or Java? > When you've mastered every module or package that comes > with it. I've yet to meet a programmer who has. And > yet the newbie might get the impression this is the goal, > and immediately get lost. > > Sometimes a good teacher is just someone who knows how > to parse a large domain into doable, masterable steps.. That is the problem with all the massive programming books and the full features of advanced software.. Experts know how to navigate pragmatically among the tools and techniques at their disposal and how to learn about new ones.. I guess the cliché subtitle could be 'Learning to Learn Programming with Python' ! LLPP-ly yours - Jason ________________________________________________________________ Jason CUNLIFFE = NOMADICS.(Interactive Art and Technology).Design Director ----- Original Message ----- From: Kirby Urner To: Sent: Thursday, August 31, 2000 5:33 PM Subject: Re: [Edu-sig] CP4E VideoPython learning to teatch / teaching to learn ..[xpost: was {'cpl',"don't laugh"}] > > Hi Jason -- > > I have no problem with your impassioned plea for better > teaching materials, including multimedia. No laughing > matter. Lots of people working on it no doubt. > > Also thanks for your rave review of Flash5, which I > haven't had the time to look into. > > Sometimes I think what bogs people down is foresaking > any knowledge domain and trying to learn the "programming > language" as the generic "thing to know". > > More useful, I think, is to bring in a knowledge domain > (some topic in mathematics, a graphical challenge, some > real problem needing a solution), and then learn the > language in tandem with that knowledge. > > Because when do you really "know" Python or Java? > When you've mastered every module or package that comes > with it. I've yet to meet a programmer who has. And > yet the newbie might get the impression this is the goal, > and immediately get lost. > > Sometimes a good teacher is just someone who knows how > to parse a large domain into doable, masterable steps, > whereas the drowning student is the one who has plenty > of intelligence and talent, but thinks learning it ALL > (whatever ALL means) is what's necessary -- as if others > have done that (really, they haven't). > > Kirby > > > > _______________________________________________ > Edu-sig mailing list > Edu-sig@python.org > http://www.python.org/mailman/listinfo/edu-sig >