Hello to the Group! I'm redesigning my math-using-Python-programming course and need your input. I'd like to have the participants enter their code on a site like they do at CodingBat or CodeWars: the site tests the code and immediately gives the user feedback. Has anybody done this? Is there a template available for doing this, or is it a custom job? Is there an easier way, using an online IDE where teachers can set up classes? Would you recommend going with IPython/Jupyter notebooks instead? Any input you have would be appreciated. Thank you! Peter Farrell farrellpolymath.com hackingmathclass.blogspot.com
Hello Peter, On Wed, Mar 30, 2016 at 2:24 PM, Peter Farrell <funcalculus@gmail.com> wrote:
Hello to the Group!
I'm redesigning my math-using-Python-programming course and need your input.
I'd like to have the participants enter their code on a site like they do at CodingBat or CodeWars: the site tests the code and immediately gives the user feedback.
Has anybody done this? Is there a template available for doing this, or is it a custom job?
Is there an easier way, using an online IDE where teachers can set up classes? Would you recommend going with IPython/Jupyter notebooks instead?
Although it was not designed specifically for this type of application in mind, if no better suggestion is made, you could use Reeborg's World to do this. I just made a quick "demo world" using the current development version. To view it, go to: http://reeborg.ca/reeborg.html?lang=en&mode=python Enter the following line in the editor and press the "run" button (near the top left) World("/worlds/double.json") When offered, click to replace the code in the editor. Modify the code as you wish, and run the program. ==== When you are done, click on "World info" at the top: this can contain any information you wish to include as instruction. To view how this was done, click on "Additional options" and then "Edit World". You can then move around/minimize the floating windows to reveal 6 editors (on per tab). The relevant code was inserted in the "post" editor. ==== In principle (although I have not fully tested this with this new development version) you could easily create an entire customized menu of such "worlds" (available via the html selector at the top). How to do this is described at http://reeborg.ca/docs/en/reference/worlds.html#creating-custom-menus One thing that I know to be broken with this new version is the "permalink" option (which the example given makes use of). The "old" version ( http://reeborg.ca/world.html) should still work for those examples.
Any input you have would be appreciated.
Others might very well have some more suitable suggestions for what you have in mind. If not, and you think that Reeborg's World *might* be suitable, do not hesitate to contact me for any further assistance. Note that this approach is limited to using only "pure" Python libraries - you could not use matplotlib examples for instance. André
Thank you!
Peter Farrell farrellpolymath.com hackingmathclass.blogspot.com
_______________________________________________ Edu-sig mailing list Edu-sig@python.org https://mail.python.org/mailman/listinfo/edu-sig
On Wed, Mar 30, 2016 at 10:24 AM, Peter Farrell <funcalculus@gmail.com> wrote:
Hello to the Group!
I'm redesigning my math-using-Python-programming course and need your input.
I'd like to have the participants enter their code on a site like they do at CodingBat or CodeWars: the site tests the code and immediately gives the user feedback.
You ask excellent questions. However the word "course" is underspecified in it's left to the imagination to guess if this course is (A) delivered purely virtually, (C) with a teacher in a classroom where students join in a learning process, or (B) a hybrid. Do they use CodingBat with a teacher in the room looking over their shoulders, or are they on their own in a personal workspace (like a cubicle or study carrel). You may be familiar with Michigan's Nexus Academy environment. The students enter a proctored environment with adult supervision, a cafeteria and gym may be provided, various breakout rooms and meeting rooms. However the teachers in this picture tend to patch in from remote locations, either for real time content delivery and interaction, or more asynchronously.
Has anybody done this? Is there a template available for doing this, or is it a custom job?
At O'Reilly our approach was to spin up a workstation in the could, behind a login credential, already provided with IDE + required tools. Were I doing it today, the workstation would come with the Anaconda distribution and Visual Python, a few other bells and whistles (maybe povray).
Is there an easier way, using an online IDE where teachers can set up classes? Would you recommend going with IPython/Jupyter notebooks instead?
A lot depends on whether students need to do the equivalent of "passing in homework". Given we were issuing certificates, we wanted to look at aspects of style as well as substance, so even if a program delivered the correct user experience, we might send it back for a next iteration, based on lack of documentation or other such standard. Sometimes the submission would pass, but the mentor would nevertheless point out areas that could use improvement, so "pat on the back with advice". Writing programs to replace human mentors never seemed like a feasible way to go, but then there's no harm in turning students loose in entirely automated environments for workout purposes. After all, Python itself provides such an environment. At PDX Code Guild we think a student:teacher ratio of about 12:1 is ideal. But that's an intensive in-person meetup. If we factor in the distance education aspects, then the ratios may be a lot different. Not all students are active at once is the main thing, so the effective teacher caseload is not a linear function with number enrolled. A core question is whether you plan to provide a "world" behind a login, and if so what's in that world. Most educational materials come without a login. I just bought Python Programming for Biology for $60 and do not expect to need to login anywhere. But then neither will I be getting a credential for reading it. The goal is to continue improving the STEM content of my course materials. Kirby <https://mail.python.org/mailman/listinfo/edu-sig>
On Wed, Mar 30, 2016 at 11:10 AM, kirby urner <kirby.urner@gmail.com> wrote:
Has anybody done this? Is there a template available for doing this, or is
it a custom job?
At O'Reilly our approach was to spin up a workstation in the could,
... in the cloud, not the could (duh). :-D Our servers were in Illinois near Champaign-Urbana though I believe we were in the process of moving them (as a mentor, my insight into the details of the IT side were rather limited). One of our core issues, as you might imagine with a cloud-based solution, was lag-time. A bum router somewhere can slow things down almost regardless of geographic distance, and many a student complained of sluggish behavior. They might need a refund within the trial period, or if truly dedicated despite lags, we could bypass the GUI to some extent, with an ssh backdoor, and that could be just the ticket. Just in traveling, I'd experience huge differences in performance, as I was using the same servers as the students were. This place I stayed in Philadelphia had agonizingly slow Internet, so I'd go somewhere else and get my work done. So you're lucky if you don't have to fight "the weather" (bandwidth issues), though I'm sure there are other trade-offs. My challenge was to make sure they didn't go away blaming Eclipse (the IDE) for there frustrations. It wasn't the IDE that was bogging down, but the whole Remote Desktop Connection (RDC). Kirby
Hi Peter, A few years back, inspired by JavaBat, I set up a Python code-practice site, PyKata.org. It worked very nicely, doing everything JavaBat would do for Java, but with Python instead. We even had plans to set up a customizable interface, so every teacher could have their own homepage, pick their own exercises, and make it look like entirely their own creation. Unfortunately, I got too busy with my day job, and couldn't put in the time necessary to finish the development. So I put it aside for a project I could do when I retire. A few months ago, I got a notice from Google, that they were changing their App Engine, and I would have to modify my code to continue keeping the site working. I didn't have time even for that, so the website went away. I did post a notice on edu-sig, but got no response. The domain name pykata.org is expiring this week. Let me know if you want it. David MacQuigg, PhD On Wed, Mar 30, 2016 at 10:24 AM, Peter Farrell <funcalculus@gmail.com> wrote:
Hello to the Group!
I'm redesigning my math-using-Python-programming course and need your input.
I'd like to have the participants enter their code on a site like they do at CodingBat or CodeWars: the site tests the code and immediately gives the user feedback.
Has anybody done this? Is there a template available for doing this, or is it a custom job?
Is there an easier way, using an online IDE where teachers can set up classes? Would you recommend going with IPython/Jupyter notebooks instead?
Any input you have would be appreciated.
Thank you!
Peter Farrell farrellpolymath.com hackingmathclass.blogspot.com
_______________________________________________ Edu-sig mailing list Edu-sig@python.org https://mail.python.org/mailman/listinfo/edu-sig
Alas I lost my osgarden.appspot.com to the new Google App Engine too. Just a simple I-Ching machine based on Unicode in the source... far less sophisticated than Pykata. I'm one who thinks fierce concentration on projects feeds the Zeitgeist in ways we cannot measure accurately. Pygeo made a big difference too, in opening a sense of what's possible. Arthur's projective geometry package. A limited attention span means many projects go unsung, but not necessarily because they lack merit. Projects like Struck and Packinon shaped a lot of my thinking in their day, in the small pond I was a big fish in. Some projects I saw get off the ground are still key: vZome by Scott Vorthmann and Antiprism by Adrian Rossiter come to mind (neither a Python project). VPython remains on my radar as one of those most critical to get working in the cloud as part of the student experience. I want spatial geometry not just the flat stuff. In a virtual desktop, as on a local laptop, one can use Vpython. But I'm not so sure there's an in-browser solution. Also when it comes to learning to code, I favor an IDE over Notebooks. The latter might be more for prettification and/or sharing with coworkers. It's not either / or. Use IDE to develop then frame it and summarize for public use in a Notebook. Another way to export an API. Anaconda comes with both Spyder (IDE) and Jupyter Notebooks for a reason. Kirby
participants (4)
-
Andre Roberge -
David MacQuigg -
kirby urner -
Peter Farrell