Re: [Edu-sig] PyWhip - Keep on crackin' it!!
At 10:51 PM 3/6/2009 -0400, Andre Roberge wrote:
David MacQuigg wrote:
I started to do this as a downloadable program, then Athar jumped in and said he could do it just as easily in Google App Engine. He did in one weekend what took several weeks on my own server in an earlier project.
The advantage of a web-based program is you don't have to download or install anything.
I completely agree. I will definitely have to mention it during my Pycon talk about Crunchy.
Well done!
The credit so far, goes 90% to Athar, and of course, Nick Parlante (JavaBat.com) for inspiring us to even think of it. Now we need community input. We have 6 problems so far. I'll do strings. We still need math, logic, lists, dictionaries, and recursion. Let's make this the most popular Python site on the planet!! At 10:34 PM 3/6/2009 -0800, kirby urner wrote:
David MacQuigg wrote:
The advantage of a web-based program is you don't have to download or install anything.
This is true, but I think if you're not going to download Python and actually run it locally, then you're mostly just kidding yourself if you think you're committed to learning it.
We need both - Python running on our own computers to do quick interactive tests, and PyWhip to see if we got the problem solved, track our progress, etc. PyWhip is not an interpreter, but a test environment. Let's say you are asked to find a particular sequence in a list, and you don't remember Python's indexing syntax. Much easier to try a few quick tests in IDLE, then write the complete solution in PyWhip. I even use Python/IDLE to solve problems in JavaBat!! I find in much easier to work out the solution in Python, then translate to Java. This is especially true for more complex problems, even big projects in Java. I have used Python as an Interface Description Language, and it beats the IDL tools I am aware of. I don't use UML diagrams anymore. I wish Java had an environment like IDLE. The closest I've found is Eclipse, and that is rather cumbersome compared to IDLE.
That being said, having a server running locally (including GAE, which is designed to work on your laptop as well) is a great idea. If you're connected to some remote curriculum using this configuration, well, that's what Subversion is for (like with Django, just ask for an update and ye shall receive).
Subversion is very cool, but it won't keep track of user logins, session state, etc. It's all that "framework" stuff that took so long on my previous project. When you write a program in App Engine, Google provides it all for you, along with Django templates, database support, and a bunch of other stuff you don't have to develop yourself.
I'm more interested in students than teachers. I'd encourage them to download Python locally, update curriculum source using some checkout procedure, if that's what's required.
How do you handle testing? Seems like automation is essential if you have more than a few students. -- Dave ************************************************************ * * David MacQuigg, PhD email: macquigg at ece.arizona.edu * * * Research Associate phone: USA 520-721-4583 * * * * ECE Department, University of Arizona * * * * 9320 East Mikelyn Lane * * * * http://purl.net/macquigg Tucson, Arizona 85710 * ************************************************************ *
On Sun, Mar 8, 2009 at 5:02 AM, David MacQuigg <macquigg@ece.arizona.edu> wrote:
At 10:51 PM 3/6/2009 -0400, Andre Roberge wrote:
David MacQuigg wrote:
I started to do this as a downloadable program, then Athar jumped in and said he could do it just as easily in Google App Engine. He did in one weekend what took several weeks on my own server in an earlier project.
The advantage of a web-based program is you don't have to download or install anything.
I completely agree. I will definitely have to mention it during my Pycon talk about Crunchy.
Well done!
The credit so far, goes 90% to Athar, and of course, Nick Parlante (JavaBat.com) for inspiring us to even think of it. Now we need community input. We have 6 problems so far. I'll do strings. We still need math, logic, lists, dictionaries, and recursion. Let's make this the most popular Python site on the planet!!
The Software Association of Oregon used to run, maybe still runs, this annual contests for high school aged kids at Willamette University. There's a professor there who'd every year come up with this quite clever little challenges, like "sort these words alphabetically but within length i.e. all 3-letter words before 4-letter" and stuff like that. He let me have his sheet of problems one year. I'm wondering if challenges such as these would be suitable as well. What I'm seeing at your site so far is a very low level workout in Python basics -- not a criticism in any way, just suggesting you could apply the same technique to more challenging problems. Here's one I like: Write a Python generator so you get successive rows of Pascals triangle, like this: o = Pascal() # o for object
next(o) [1] next(o) [1, 1] next(o) [1,2,1] next(o) [1,3,3,1] .... and so on (Pascal's triangle). Note I'm using Python 3.x syntax.
One of the best solutions is: def pascal(): row = [1] while True: yield row row = [i + j for (i,j) in zip([0]+row, row+[0])]
At 10:34 PM 3/6/2009 -0800, kirby urner wrote:
David MacQuigg wrote:
The advantage of a web-based program is you don't have to download or install anything.
This is true, but I think if you're not going to download Python and actually run it locally, then you're mostly just kidding yourself if you think you're committed to learning it.
We need both - Python running on our own computers to do quick interactive tests, and PyWhip to see if we got the problem solved, track our progress, etc. PyWhip is not an interpreter, but a test environment. Let's say you are asked to find a particular sequence in a list, and you don't remember Python's indexing syntax. Much easier to try a few quick tests in IDLE, then write the complete solution in PyWhip.
OK, I'm less of a skeptic now that you've said both. I thought you were falling into that trap of "all web all the time" where the local machine doesn't get to run anything except a web browser, ala some ways of learning with Squeak. I'm generally suspicious of moves to Squeakify Python, thought you might be moving in this direction.
I even use Python/IDLE to solve problems in JavaBat!! I find in much easier to work out the solution in Python, then translate to Java. This is especially true for more complex problems, even big projects in Java. I have used Python as an Interface Description Language, and it beats the IDL tools I am aware of. I don't use UML diagrams anymore.
Yes, that Software Association of Oregon contest was open to teams using whatever language they wished, I'm pretty sure. Just come to the judges with a working program that gets the right answers, and you'll be the winner of that round (if you're first). I'm guessing a team using Python would have an instant big advantage over the Java users for challenges of this variety, but at the time I observed the process I don't think any were using Python yet. This was years ago and since then I've lost track. I'm under the impression that Python has spread quite a bit since those days, but I'm not a clearing house.
I wish Java had an environment like IDLE. The closest I've found is Eclipse, and that is rather cumbersome compared to IDLE.
Having a shell that's really capable, such as IDLE, is extremely useful. PLT Scheme comes to mind, plus they have this whole idea of "language levels" where you just import bits and pieces. I've not missed that in Python, given import is much the same idea (in terms of limiting access).
That being said, having a server running locally (including GAE, which is designed to work on your laptop as well) is a great idea. If you're connected to some remote curriculum using this configuration, well, that's what Subversion is for (like with Django, just ask for an update and ye shall receive).
Subversion is very cool, but it won't keep track of user logins, session state, etc. It's all that "framework" stuff that took so long on my previous project. When you write a program in App Engine, Google provides it all for you, along with Django templates, database support, and a bunch of other stuff you don't have to develop yourself.
Yes, understood. I wrote a very simple engine ( osgarden.appspot.com ) with no need for logins, very crude template, but enough to appreciate the ease of use. DemocracyLab is far more ambitious, comes from an Eclipse background (in terms of programmer pedigree). Have you open sourced your code, or do you plan to? Students at a higher level could be using your thing as a self tester, plus learn more appengine.
I'm more interested in students than teachers. I'd encourage them to download Python locally, update curriculum source using some checkout procedure, if that's what's required.
How do you handle testing? Seems like automation is essential if you have more than a few students.
-- Dave
Yeah, that's a good question. I'm not doing a CS course, have a heavy eye candy component, so it's more like a lab in most cases: import scaffolding, eyeball it to start learning Python, while interacting in the shell, then start getting the whiz bang graphics thanks to VPython and/or POV-Ray (lots of pre-written code). The tests are mostly self posed, the mode exploratory. All I have to do is walk around giving assistance and helping them record their work for posterity in some cases. Sometimes there's a YouTube as a result, suitable for more public syndication. Our students get a certificate that's respected in the Silicon Forest, plus we also have internship programs giving high schoolers time in the private sector pre-college sometimes. In this particular school, it's a goal to not have to share computers i.e. the ratio of student to computer is 1:1. That's a change for many of them, coming from regular public school. We only get them on weekends, which is why it's called Saturday Academy (except in summers, when it could be any day). So yeah, a niche market and maybe not that applicable to your situation. Kirby
************************************************************ * * David MacQuigg, PhD email: macquigg at ece.arizona.edu * * * Research Associate phone: USA 520-721-4583 * * * * ECE Department, University of Arizona * * * * 9320 East Mikelyn Lane * * * * http://purl.net/macquigg Tucson, Arizona 85710 * ************************************************************ *
_______________________________________________ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
participants (2)
-
David MacQuigg -
kirby urner