Wednesday, July 17, 2013

WeBWorK::Vancouver - June 27 - 30, 2013

Hi again,

Close on the heels of our participation Sage Edu Days comes the code camp at Vancouver.

We had a significant number of first time participants at this code camp:  Alex Jordan and Chris Huges, Portland Community College; Liz Brauer, ECE department at Northern Arizona University, Nandor Sieben, Math Dept at Northern Arizona University; Nora Franzova, Langara College, Vancouver; Aori Nevo, Stevens Institute of Technology, NJ.  One of the purposes of these code camp is to widen the pool of developers who feel comfortable making contributions to the WeBWorK code base.

Additional guests dropped in for part of the code camp: Davor Cubranic, Statistics dept at UBC; John Hsu, Center for Teaching, Learning and Technology at UBC; and Steven Wittens, developer of MathBox.

The remaining participants were Anneke Bart, St. Louis University; Robert Beezer, U. of Puget Sound; Mike Gage, U. of Rochester; David Gage, U. of Waterloo; Djun Kim, Myplanet Digital; Arnie Pizer, U. of Rochester and John Travis, Mississippi College.

Here are a few highlights from the code camp:

  • Yoav Freund and Matt Elkerj from UCSD gave a presentation via Skype on using webwork and machine learning to discover patterns in the past_answer log that indicate that a student is floundering and to step in before this occurs with additional scaffolding. They have a video on you tube at which presents this very well. There is clearly a lot more that can be done but this is a very intriguing start.
  • Greg Kraus from NCSU gave a presentation on the accessibility of WeBWorK including both strengths (of which there are many -- especially when using MathJax) and weakness that can be improved. He has an initial document at 
    • listing specific items that can be fixed in the presentation layer.  
      • If you would like access to this document (and in particular if you might have time to work on some of the fixes) please write Greg (greg_kraus) at
    • Aori Nevo has already started preliminary work on this and contributed a few patches to github.
    • Alex Jordan and Chris Hughes from Portland Community College report that their IT/accessibility team is delighted with WeBWorK particularly compared to MyMathLab. I've asked them to write a blog post on their findings when they get a chance.
  • Steven Wittens gave a marvelous demonstration of MathBox, a mathematics presentation tool built on top of three.js which allows you to "show" not explain. Examples of a similar presentations are at:
  • David Gage created a package for Vagrant which allows you to set up a development site for WeBWorK on your own computer in about 5 mouse clicks and in 5 minutes. Watch David's blogpost for more details. 
  • David Gage and Aori Nevo worked on a prototype white board that allows many students to draw and the drawings are echoed on the instructors board. It's built with web components which simplifies the code. There is a lot of potential here. 
  • John Travis and Jason Aubrey presented two different ways in which Sage and WeBWorK can interact.
    • JT has a number of examples of using sage as an applet (sagelets?). The technology is available in WeBWorK-2.7 (the current master branch) 
    • Jason has added a macro that will take a program written for Sage (essentially in python) and ship it off to the sage engine to be processed and to return an answer. You might use this to symbolically integrate a function which WeBWorK would not be able to do. (This is available in release/2.8 and develop branches). 
    • Both of these approaches integrate WeBWorK and the sage cell server being developed by Jason Grout and others. The technology works very well once all the connections are set up. It could still use some work with graceful failure and error reporting when one or the other of the webservices is not connecting properly.
  • Alex and Chris also worked on the surprisingly difficult problem of correctly checking factored polynomials in the context of algebra and pre-calculus. It's difficult because one does not want to accept mathematically equivalent answers (e.g. unfactored polynomials) but the exact definition of simplified form is not well defined. (is 2x+1 correct? or 2(x+1/2). How about 2x+2 and 2(x+1)?). They are using Sage as one approach to the answer. It also gave rise to some serious but amusing questions about factoring polynomials over finite fields as possible approaches to the solution. I'm sure the algebra/pre-calculus students will be thrilled.
  • Mike and Nandor added code that makes much more portable. (Chromatic requires a compiled C program in order to check coloring on graphs.) This should make Nandor's graph theory questions (in the NAU sublibrary) much more widely available.
  • Nora was able to convert the entire placement test for Langara College into WeBWorK format.
  • Liz was adding to her collection of Electrical engineering problems (in the NAU subsection of the OPL). Thanks to Davide Cervone we are dealing successfully with the use of j as the representative of the square root of minus one. :-)
  • There were additional tweaks to the Library Browser, the OPL and also to MathView -- the very recent HTML5 based equation editor which is

Thanks to all who participated in another very successful code camp.  And our particular thanks
to Nora Franzova at Langara College and to Djun Kim from UBC/Myplanet Digital  for making all of the local arrangements.

Those who will be at MathFest in Hartford, Connecticut this August should drop by the WeBWorK
exhibit (part of the MAA exhibit) and say hi to John Travis and any other WeBWorKers who show up.

-- Mike

Friday, July 5, 2013

Sage Edu Days 5, June 19 - 21, 2013

Thanks very much to the folks at Sage and at UTMOST for inviting us to participate in the Sage Edu Days 5 in Seattle, WA  June 19 - 21.  Jason Aubrey, Mike Gage and John Travis from the WeBWorK team participated.  This is the third year that we have collaborated with Sage to augment the interaction between the two software applications.

As a result we have a new macro file "" which simplifies the creation of sagelets -- plugin interacts that augment the power of WeBWorK questions.  In addition Jason Aubrey created AskSage(), a new subroutine which allows WeBWorK to query an instance of sage to have an expression evaluated.  These provide two different mechanisms for  providing high level CAS support to WeBWorK questions by remotely accessing a sage cell server.  The sage cell server has been under development by Jason Grout and the rest of the Sage team over the last three to four years.

The new sage interaction features are available in WeBWorK  release/2.8 which is now "on deck" in the webwork github site: Release/2.8 is undergoing final testing and bug squashing before being merged into the "master" branch.   To try it out you will want to use  the branch release/2.8 of both webwork2 and pg.  These are available by simply executing "git fetch" on an up-to-date installation of WeBWorK.  (See Github   and  release/2.7 for details.) While you are at it you should download the new changes to webwork-open-problem-library and run OPL-update to update the library database so as to incorporate the improvements made at the WeBWorK OPL workshop in Charlottesville, VA earlier this month. Preliminary release notes are available at

More refinements and many more examples demonstrating the new sage interaction features are expected from the upcoming work at WeBWorK::Vancouver June 27-30  and the PREP13 model course workshop in Washington, DC, July 10-13.

Release/2.7 was incorporated into the "master" branch on June 15, 2013.  The separate 2.7 branch on the openwebwork site will soon be removed.

-- Mike