SOT: authoring course material
Hi, As I sit down to write my course material I was wondering - what software do you use? Traditionally material in the physics department has always been written in LaTeX (uugh), with a printed copy given to the student, and a PDF of the printed copy available online. I need to produce a printable set of notes, but would also like to do a true web-based version. We've talked about testing the students with online multiple-choice quizzes and I'm keen to have expandable sections of the notes online (so the more advanced students don't have to read the basics, but can see advanced questions the others cannot). However, from past experience if there are not full printed notes there will be complaints, and as the computers aren't dual-monitor it would be hard to read online notes while working. What have you found works when teaching introductory programming? Also, have you found tools such as wikis useful when either developing the teaching material or writing the following report? Thanks, Peter
Sort of relevant to the queries below, I'm developing source materials for my upcoming presentation at OSCON 2005. I've determined that using closed source presentation software i.e. PowerPoint, would not be appropriate to this venue (smart me, huh?), and furthermore, using Impress or other OpenOffice-like PPT clone wouldn't be sufficiently Pythonic. Ergo, I'm writing my own presentation management software in Pygame. The basic structure is an outer event loop driven by keystrokes (no mouse) and rather few of them at that (left/right arrow, Stop, Restart, Pause, Unpause). Class definitions define slide content in terms of various resources: Autoflipimage, Movieplayer, Scrolltextfile, Stillimage and so on. Each slide is composed by a function, which calls the necessary parameters on the resources, all of which get sent as a list to a Scene object, which actually operates the content objects at runtime (e.g. by passing through keystrokes). Resources with internal dynamism (e.g. an Autoflipimage or MPEG movie clip) get their own threads, i.e. are subclassed from threading.Thread (plus an interface-like mixin). This is necessary to keep the outmost keystroke thread alive to the keyboard (it wouldn't do to get sucked into a resource and have to sit through a boring MPEG, even if you were ready to move on). In other words, I've leveraging that I know how to code, to cut right to the runtime display engine, completely bypassing / ignoring any need for GUI tools to define and structure the slides at design time. That's all done "programmatically" as they say -- which is too much work for most office cubies, but is far less work than coding a design time GUI, if you're a one-man-year-per-year type shop (my shop is somewhat more than that, but this OSCON thing I'm doing on my own time). I'm going to upload all this stuff with the GPL once my talk is done. I want the first venue (the showcase debut) to be at OSCON itself (first week in August, here in PDX). On my next Saturday Academy gig, I'll plan to keep using this Python + Pygame solution, as I'll be able to guide 'em around the source code, illustrating how one can do a lot with Python in < 1K lines of code. Kirby
-----Original Message----- From: edu-sig-bounces@python.org [mailto:edu-sig-bounces@python.org] On Behalf Of Peter Bowyer Sent: Saturday, July 09, 2005 2:58 AM To: edu-sig@python.org Subject: [Edu-sig] SOT: authoring course material
Hi,
As I sit down to write my course material I was wondering - what software do you use? Traditionally material in the physics department has always been written in LaTeX (uugh), with a printed copy given to the student, and a PDF of the printed copy available online.
I need to produce a printable set of notes, but would also like to do a true web-based version. We've talked about testing the students with online multiple-choice quizzes and I'm keen to have expandable sections of the notes online (so the more advanced students don't have to read the basics, but can see advanced questions the others cannot). However, from past experience if there are not full printed notes there will be complaints, and as the computers aren't dual-monitor it would be hard to read online notes while working.
What have you found works when teaching introductory programming?
Also, have you found tools such as wikis useful when either developing the teaching material or writing the following report?
Thanks, Peter
_______________________________________________ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
Best wishes on your presentation, Kirby! At the Vancouver Python Conference last year, Paul Prescod joked that I was the only one writing my own presentation software. I also used PyGame, but in my case each "slide" was a mini-game (or game-in- progress). I'll note that it was the last time I ever used PyGame and I would have abandoned it sooner if I hadn't committed to doing a presentation about it. It reminded me of doing programming on the Mac in the 68K days, when you had to write your own main loop, your own event management, etc. Very primitive. If I need slide-show type presentations these days, I tend to go with S5[1] using Safari or Firefox. On the other hand, the next presentation I did for Paul (at the VanPyZ monthly meeting last February), I wrote the presentation software using Cocoa (OS X framework), Python, XML, and Renaissance (framework for turning XML into Cocoa UI). So perhaps I am a glutton for punishment. --Dethe [1] http://meyerweb.com/eric/tools/s5/ On 18-Jul-05, at 11:18 AM, Kirby Urner wrote:
Sort of relevant to the queries below, I'm developing source materials for my upcoming presentation at OSCON 2005. I've determined that using closed source presentation software i.e. PowerPoint, would not be appropriate to this venue (smart me, huh?), and furthermore, using Impress or other OpenOffice-like PPT clone wouldn't be sufficiently Pythonic. Ergo, I'm writing my own presentation management software in Pygame.
The basic structure is an outer event loop driven by keystrokes (no mouse) and rather few of them at that (left/right arrow, Stop, Restart, Pause, Unpause). Class definitions define slide content in terms of various resources: Autoflipimage, Movieplayer, Scrolltextfile, Stillimage and so on. Each slide is composed by a function, which calls the necessary parameters on the resources, all of which get sent as a list to a Scene object, which actually operates the content objects at runtime (e.g. by passing through keystrokes).
Resources with internal dynamism (e.g. an Autoflipimage or MPEG movie clip) get their own threads, i.e. are subclassed from threading.Thread (plus an interface-like mixin). This is necessary to keep the outmost keystroke thread alive to the keyboard (it wouldn't do to get sucked into a resource and have to sit through a boring MPEG, even if you were ready to move on).
In other words, I've leveraging that I know how to code, to cut right to the runtime display engine, completely bypassing / ignoring any need for GUI tools to define and structure the slides at design time. That's all done "programmatically" as they say -- which is too much work for most office cubies, but is far less work than coding a design time GUI, if you're a one-man-year-per-year type shop (my shop is somewhat more than that, but this OSCON thing I'm doing on my own time).
I'm going to upload all this stuff with the GPL once my talk is done. I want the first venue (the showcase debut) to be at OSCON itself (first week in August, here in PDX).
On my next Saturday Academy gig, I'll plan to keep using this Python + Pygame solution, as I'll be able to guide 'em around the source code, illustrating how one can do a lot with Python in < 1K lines of code.
Kirby
-----Original Message----- From: edu-sig-bounces@python.org [mailto:edu-sig- bounces@python.org] On Behalf Of Peter Bowyer Sent: Saturday, July 09, 2005 2:58 AM To: edu-sig@python.org Subject: [Edu-sig] SOT: authoring course material
Hi,
As I sit down to write my course material I was wondering - what software do you use? Traditionally material in the physics department has always been written in LaTeX (uugh), with a printed copy given to the student, and a PDF of the printed copy available online.
I need to produce a printable set of notes, but would also like to do a true web-based version. We've talked about testing the students with online multiple-choice quizzes and I'm keen to have expandable sections of the notes online (so the more advanced students don't have to read the basics, but can see advanced questions the others cannot). However, from past experience if there are not full printed notes there will be complaints, and as the computers aren't dual-monitor it would be hard to read online notes while working.
What have you found works when teaching introductory programming?
Also, have you found tools such as wikis useful when either developing the teaching material or writing the following report?
Thanks, Peter
_______________________________________________ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
_______________________________________________ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
Life is extinct on other planets. Their scientists were more advanced than ours. --Mark Russell
At EuroPython I saw several PyGame-based presentations. Armin Rigo has been doing this for years and with impressive results (visualizing Greenlets for example). But the best one I saw was Gustavo Niemeyer's Solving Puzzles with Python: http://www.python-in-business.org/ep2005/talk.chtml?talk=1194&track=687 Very cool visalizations of the puzzles and their solutions. On 7/18/05, Dethe Elza <delza@livingcode.org> wrote:
At the Vancouver Python Conference last year, Paul Prescod joked that I was the only one writing my own presentation software. I also used PyGame, but in my case each "slide" was a mini-game (or game-in- progress). I'll note that it was the last time I ever used PyGame and I would have abandoned it sooner if I hadn't committed to doing a presentation about it. It reminded me of doing programming on the Mac in the 68K days, when you had to write your own main loop, your own event management, etc. Very primitive. If I need slide-show type presentations these days, I tend to go with S5[1] using Safari or Firefox.
On the other hand, the next presentation I did for Paul (at the VanPyZ monthly meeting last February), I wrote the presentation software using Cocoa (OS X framework), Python, XML, and Renaissance (framework for turning XML into Cocoa UI). So perhaps I am a glutton for punishment.
-- --Guido van Rossum (home page: http://www.python.org/~guido/)
From: edu-sig-bounces@python.org [mailto:edu-sig-bounces@python.org] On Behalf Of Guido van Rossum Sent: Monday, July 18, 2005 12:05 PM To: Dethe Elza Cc: edu-sig@python.org; Kirby Urner Subject: Re: [Edu-sig] Writing presentation manager for OSCON, in Pygame
At EuroPython I saw several PyGame-based presentations. Armin Rigo has been doing this for years and with impressive results (visualizing Greenlets for example). But the best one I saw was Gustavo Niemeyer's Solving Puzzles with Python: http://www.python-in-business.org/ep2005/talk.chtml?talk=1194&track=687
Very cool visalizations of the puzzles and their solutions.
Yes. I also recall a Pygame-based presentation of how Psyco works. One of the Europython 5 min talks was on the need to work on a presentation package that provides features missing from PowerPoint (e.g. the source code). I don't have a way to actually access the shell from *within* Pygame (access to the Python shell without fiddling with windows being a desirable feature), but as I boot from IPython with a slide-number argument (default 0), I *am* able to easily drop out to shell by escaping from pygame (runs full screen), and then resume at the appropriate place. I envision my talk featuring both this Pygame thing, and the geometry-based VPython hypertoon during Q&A (like I did at Europython). BTW, my hypertoons article was accepted and is supposedly queued for publication in Pyzine any day now :-D. Kirby PS: I copied John Zelle my latest draft of the presentation manager per his special interest. John, your prototypes sound way more sophisticated (given your eventual goal of mixing in VR) than my lowly effort, as you'll shortly see. My API is still evolving e.g. some very basic parameters, such as slide title font color, are hard coded for now. I tend to hard code a lot to get things moving, then go back later and tease an API out of it, so that all parameters eventually come under programmatic control -- we hope in an easy-enough way.
Kirby, Is there any chance I could talk you into posting some of your code sooner, or at least an example of how the code to define a simple presentation might look? I've just begun working on a very similar project. I'm using PyQT (it's a learning project) rather than PyGame. I agree with the "programming" slides approach, but I've been around and around on the API, and am still not really satisfied. Eventually, I intend my work to be a platform for stereographic (VR) presentations allowing regular text and graphics to be interspersed with stereographic pictures, videos, and application demos. I'd be very interested in seeing your intended API for the slides. I might be able to build on what you're doing. If not, having a common API might still be useful (we could share slides). Any thought about how you might generate handouts of the slides? --John Kirby Urner wrote:
Sort of relevant to the queries below, I'm developing source materials for my upcoming presentation at OSCON 2005. I've determined that using closed source presentation software i.e. PowerPoint, would not be appropriate to this venue (smart me, huh?), and furthermore, using Impress or other OpenOffice-like PPT clone wouldn't be sufficiently Pythonic. Ergo, I'm writing my own presentation management software in Pygame.
The basic structure is an outer event loop driven by keystrokes (no mouse) and rather few of them at that (left/right arrow, Stop, Restart, Pause, Unpause). Class definitions define slide content in terms of various resources: Autoflipimage, Movieplayer, Scrolltextfile, Stillimage and so on. Each slide is composed by a function, which calls the necessary parameters on the resources, all of which get sent as a list to a Scene object, which actually operates the content objects at runtime (e.g. by passing through keystrokes).
Resources with internal dynamism (e.g. an Autoflipimage or MPEG movie clip) get their own threads, i.e. are subclassed from threading.Thread (plus an interface-like mixin). This is necessary to keep the outmost keystroke thread alive to the keyboard (it wouldn't do to get sucked into a resource and have to sit through a boring MPEG, even if you were ready to move on).
In other words, I've leveraging that I know how to code, to cut right to the runtime display engine, completely bypassing / ignoring any need for GUI tools to define and structure the slides at design time. That's all done "programmatically" as they say -- which is too much work for most office cubies, but is far less work than coding a design time GUI, if you're a one-man-year-per-year type shop (my shop is somewhat more than that, but this OSCON thing I'm doing on my own time).
I'm going to upload all this stuff with the GPL once my talk is done. I want the first venue (the showcase debut) to be at OSCON itself (first week in August, here in PDX).
On my next Saturday Academy gig, I'll plan to keep using this Python + Pygame solution, as I'll be able to guide 'em around the source code, illustrating how one can do a lot with Python in < 1K lines of code.
Kirby
-----Original Message----- From: edu-sig-bounces@python.org [mailto:edu-sig-bounces@python.org] On Behalf Of Peter Bowyer Sent: Saturday, July 09, 2005 2:58 AM To: edu-sig@python.org Subject: [Edu-sig] SOT: authoring course material
Hi,
As I sit down to write my course material I was wondering - what software do you use? Traditionally material in the physics department has always been written in LaTeX (uugh), with a printed copy given to the student, and a PDF of the printed copy available online.
I need to produce a printable set of notes, but would also like to do a true web-based version. We've talked about testing the students with online multiple-choice quizzes and I'm keen to have expandable sections of the notes online (so the more advanced students don't have to read the basics, but can see advanced questions the others cannot). However, from past experience if there are not full printed notes there will be complaints, and as the computers aren't dual-monitor it would be hard to read online notes while working.
What have you found works when teaching introductory programming?
Also, have you found tools such as wikis useful when either developing the teaching material or writing the following report?
Thanks, Peter
_______________________________________________ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
_______________________________________________ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
-- John M. Zelle, Ph.D. Wartburg College Professor of Computer Science Waverly, IA john.zelle@wartburg.edu (319) 352-8360
[ John Zelle ] ------------------------------------------------------------ | I've just begun working on a very similar | project. I'm using PyQT (it's a learning project) rather than PyGame. I | agree with the "programming" slides approach, but I've been around and | around on the API, and am still not really satisfied. Eventually, I | intend my work to be a platform for stereographic (VR) presentations | allowing regular text and graphics to be interspersed with stereographic | pictures, videos, and application demos. | | I'd be very interested in seeing your intended API for the slides. I | might be able to build on what you're doing. If not, having a common API | might still be useful (we could share slides). | | Any thought about how you might generate handouts of the slides? At Europython(Goteborg), my two presentations were created using py2slide, an alpha-quality tool I've been coding to generate from reST [1] blocks into Eric Meyer's S5 HTML [2] format. My motivation was rapid presentation development based on reusing slides to better fit a particular audience. I also plan to have a Pygame backend, so I look forward to colaborate in a slide2pygame tool. py2slide presentations looks like the following: <code> from py2slide.py2slide import BasePresentation, BaseSlide, get_slides from py2slide.py2slide import RestSlide as _ import py2slide.rodskin as myskin roadmap = _(""" This speech talks about ======================= * How **big** is the Brazilian Python Community (BPC) ? * How **fast** does it grow ? * First Conference **PyConBrasil** held April 2005 * Who's **Who** * What are we doing with Python, Zope and Plone """) growth = _(""" How big can it get ? ==================== .. image:: images/sucuri.png """) base = BasePresentation( presenter_name = 'Rod Senra (rsenra at acm.org)', presenter_affiliation = 'IC-Unicamp/GPr', location_and_date = 'Europython 2005', slide_footer = myskin.slide_footer ) base.custom_stylesheet_files.append(myskin.mycss) base.title = 'The Python Community in Brazil' base.slides = [me, roadmap, growth, mailing, lists, portal, portal2, pyconbr1, fisl6, fisl6b, conclusion, thanks, eve] base.save_html(output_dir='pybr') </code> [1] http://docutils.sourceforge.net/docs/user/rst/quickstart.html [2] http://www.meyerweb.com/eric/tools/s5/ best regards, Rod Senra -- Rodrigo Senra <rsenra |at| acm.org> ------------------------------------------------ GPr Sistemas http://www.gpr.com.br Blog http://rodsenra.blogspot.com IC - Unicamp http://www.ic.unicamp.br/~921234 ------------------------------------------------
roadmap = _(""" This speech talks about =======================
* How **big** is the Brazilian Python Community (BPC) ? * How **fast** does it grow ? * First Conference **PyConBrasil** held April 2005 * Who's **Who** * What are we doing with Python, Zope and Plone
""")
Interesting work Rodrigo. My setup code is not so friendly.[1] A Linux Journal issue I think it was, a few months back, was about coding as art project, i.e. you're doing a one-off but using code in some interesting, inspiring way. That's probably the fate of my particular pgtest1.py -- it won't go anywhere far beyond OSCON, and yet will make ripples, in its own way. Kirby [1] example, a scene I just finished, using a slightly more advanced copy of the source than sent Zelle & Bauman. """ Urner, GPL """ ... def setscene14(s): graphics = [] for i in range(1,12): filename = "cubanim"+str(i).zfill(2) graphics.append(fpath + filename + ".png" ) mobj0 = Content() mobj0.content_type = 'autoflip' mobj0.topleft = (400,100) mobj0.imagelist = graphics mobj0.milliseconds = 100 mobj1 = Content() mobj1.content_type = 'stilltext' mobj1.filename = fpath + "ccp.py" mobj1.fontsize = 20 mobj1.topleft = (60,200) mobj2 = Content() mobj2.content_type = 'coderunner' mobj2.topleft = (450,350) def ccp(): shell, accum = 1,1 yield (shell, accum) f = 1 while True: shell = 10*f*f + 2 f += 1 accum += shell yield shell,accum mobj2.generator = ccp mobj2.milliseconds = 1000 mobj3 = Content() mobj3.content_type = 'autoflip' mobj3.topleft = (350,400) mobj3.imagelist = [fpath + 'smbellbigkite.jpg', fpath + 'vesphere.jpg'] mobj3.milliseconds = 1000 mobj4 = Content() mobj4.content_type = 'stillimage' mobj4.topleft = (750,200) mobj4.filename = fpath + 'tetrapack.gif' scene = Scene( s, 'white', 'Closest Packing of Spheres', 13, contents = [mobj2, mobj0, mobj1, mobj3, mobj4]) return scene
participants (6)
-
Dethe Elza
-
Guido van Rossum
-
John Zelle
-
Kirby Urner
-
Peter Bowyer
-
Rodrigo Dias Arruda Senra