WeBWorK News

Summary for WeBWorK::Rochester::2012 code camp

Summary for WeBWorK::Rochester::2012 code camp

by Michael Gage -
Number of replies: 0
 Summary for WeBWorK::Rochester::2012  

The WeBWorK::Rochester code camp, focused on user interface improvements, was held at Rochester from June 6th through June 9th, 2012.  It was a great success.  This was the first working gathering of WeBWorK developers since our summer 2007 meeting at AIM (American Institute of Mathematics); we hope it will kick start a spate of development over the summer on the look and feel of WeBWorK.  In conjunction with PREP courses last summer and two additional code camps this summer, we hope to flatten the learning curve significantly for new users of WeBWorK and to improve the overall usability of the system.

We have a lot to report, including significant progress in WeBWorK interface design, new and developing infrastructure procedures for supporting WeBWorK users and developers, discussion about the social structure of the openWeBWorK development community, and a report on our collaboration with the Teaching Open Source organization through their POSSE workshop at RIT.  

Oh yes -- and since WeBWorK now has contributions in more than one language and from several countries -- we changed the name of the National Problem Library to the WeBWorK Open Problem Library (WOPL) or Open Problem Library for short.  More on that later -- it was quite a discussion!

If you are really impatient, you can stop reading and go explore the new stuff, bugs and all, at https://hosted2.webwork.rochester.edu/webwork2/maa101 (or maa102, etc). Sign in as profa and use profa as the password.  Use your iPad!!!! -- it’s not pretty yet but it works!!!

Below we’ll first describe the daily progression of the code camp for those who weren’t there, and especially for those who haven’t participated in previous code camps.  They are intense experiences.  A lot can get done; it’s hard work, but it’s also fun and satisfying.  

We’d like to encourage others to plan and hold local code camps to work on aspects of WeBWorK that they would like to develop.  No permission is needed from any central WeBWorK authorities, but those of us who have been doing this for a while will be glad to help out in any way we can.  Let us know.

At the end of this note we’ll list specific accomplishments (deliverables :-) ) for the week.

As a last item before describing our meeting, here is the list of WeBWorK events scheduled to  take place this summer and fall.  We hope to see you at one or more of them. Keep track of the events section in the wiki (http://webwork.maa.org/wiki) for new additions.

WeBWorK::Clinton - June 20-22, 2012 (John Travis)WeBWorK Consultants Workshop - August 1, 2012 (Arnie Pizer)Mathfest Exhibit Presentations - August 2-4, 2012 (John Travis and Jason Aubrey)WeBWorK::Winona - August 5-8, 2012 (Jason Aubrey and John Travis)MAA JMM Mini Course - January 8-10, 2013 (Joint Math Meeting in San Diego ) (Jason Aubrey and John Travis)

For this code camp we had participants from all across the continent: Jason Aubrey from the University of Missouri, Karen Clark from the College of New Jersey (TCNJ), David Gage, a grad student at the University of Waterloo, Danny Glin from the University of Calgary, Djun Kim from the University of British Columbia, Peter Staab from Fitchsburg State College, and John Travis from Mississippi College.

The local participants were Mark Herman from the University of Rochester, Christina Kayastha, a junior at the UofR, and Paul Seeburger from Monroe Community College.  We also coordinated with the POSSE workshop at nearby RIT, enlisted the aid of the  science librarians Diane Cass, Tyler Dzuba and Zahra Kamarei, and received help with distributed software development from Prof. Chen Ding of the the CS department.

Vicki Roth, Arnie Pizer, and Mike Gage hosted the event with the support of Louise Wingrove from the Center for Excellence in Teaching and Learning (to whom we owe undying gratitude!).  The daily coding took place on the 11th floor of the Hylan Mathematics Building at the University of Rochester with a view of the Finger Lakes region, while the nearby Staybridge Inn on the banks of the Genessee River housed our out-of-town visitors and provided a delightful place for discussion in the evenings.  Even the Rochester weather cooperated -- mostly sun, little rain -- wow, really amazing!

What we planned:
We set several goals while planning this meeting.  We wanted to tackle a long list of requests for updating the instructor interfaces to Web 2.0 standards, incorporating javaScript and CSS (AJAX) to give WeBWorK a desktop look and feel.  Since our developers are now widely dispersed geographically, we also wanted to develop a distributed cooperative programming workflow using old tools such as IRC and newer ones such as github. We wanted to encourage more participation in WeBWorK organization, so that long time users could become software developers.  We wanted also to attract new contributors, perhaps some from outside academia, who have participated in other open source projects.

We accomplished all of this.  On the first day (Wednesday), we had all of the participants up and running on the IRC (a venerable version of the chat room used by most open source software developers).  In the afternoon, we worked with the group known as POSSE (Professors Open Source Experience) organized by Steve Jacobs at the Rochester Institute of Technology.  Their program was serendipitously scheduled for the same week as ours.  They used WeBWorK as a guinea pig in exploring collaborative programming.  Jason Aubrey and Mike Gage attended the first  two days (Monday and Tuesday) of the POSSE program while they were talking about the social aspects of collaborative software development and the differences and similarities among different open source software communities.  Later on that week, we communicated with them over IRC even though they were meeting a scant three miles away at RIT.

The POSSE workshop and the TeachingOpenSource organizations may be of interest to others in the WeBWorK community.  Their mission is to encourage academic instructors in computer science, communication, journalism and other areas to use bite-sized development chunks of open source software as projects for their students. You can read more details about their organization at POSSE and at TeachingOpenSource.

On Thursday, Prof. Chen Ding from the University of Rochester CS department gave a short presentation on using git or mercurial for collaborative development.  David Gage from the University of Waterloo then told us about his use of Backbone.js, Twitter’s Bootstrap library and other modern software tools, while developing LibraryBrowser3.  Most of the rest of the week was spent working in small teams with occasional breaks for food and group discussion. Thursday evening, we met at the Dinosaur Grill to meet face to face with the POSSE participants and to discuss our experience.  

By Friday morning, Peter Staab, Danny Glin, Mark Herman, Paul Seeburger, and Djun Kim had come up with a design for a new classlist editor (perhaps to be renamed StudentManagement?), and Peter Staab had found a drop-in javaScript component for presenting an editable grid.  By Friday afternoon Peter and David Gage had developed a workable proof of concept, and by Saturday they had a completed prototype which you can view at the “hosted2” link above.  The actions that can be performed on each student record have not yet been connected to the backend server, but you can already get a good idea of the final look and feel.  Once the class list editor is polished, we’ll do something similar with the homework set editor, perhaps at a future code camp.

On Friday afternoon, at the end of a long day of coding, we met with Dianne Cass, Zara Kamarei, and Tyler Dzuba from the UR science libraries to discuss the library question tagging issue and meta-data in general. There are no easy solutions, of course, but they are interested in studying our project and plan to come back with some suggestions.  We’ll look into this issue in more detail at WeBWorK::Winona.


On Saturday we had a surprisingly long discussion on choosing a new name for the NPL, something which we all agreed was needed since the internationalization of the WeBWorK interface renders “National” inappropriate.   While “Hydra” was an early contender, it tired early, despite the opportunities this name would present for a great logo (see above).  The final choices were between “Open Problem Library,” “openWeBWorK Problem Library,” and “WeBWorK Open Problem Library”.  After much discussion and several straw polls, we decided on “WeBWorK Open Problem Library” or WOPL, which might become OpenProblemLibrary informally and whenever the WeBWorK context is clear.  One of the convincing points for this choice was that “open” could be replaced by “MAA” or “WHFreeman”  or “physics” to describe companion libraries which might or might not be open to everyone.

There was a little discussion about the capitalization of WeBWorK and, again surprisingly, the current version won out overwhelming. Initially most people were rather undecided or ready to change the orthography until David and Christina pointed out that, at least to open source developers (who we are trying to recruit) and to all younger WeBWorK users,  WebWork is boring camel case and webwork is worse, while WeBWorK is unique, grabs the attention and starts conversations.  Fortunately search engines ignore capitalization, so in a search for webwork or WebWork our name comes up uniquely and distinctively as the one with the weird capitalization.  And if some people don’t always capitalize it right in casual writing, it’s not a big deal. Many people insist on pronouncing our name webworks in any case. (And then there is the case of laplace and gauss whose namesakes don’t get capitalized consistently either. :-) )

On another note, Vicki completed a review of recent publications about WeBWorK; a number of new research articles, dissertations, and masters theses have emerged in the last couple of years.  Especially interesting was the discovery of three well-written theses about WeBWorK completed by undergraduates at Worchester Polytechnic Institute.

This code camp has been a great experience.  We hope that the next code camp which Aaron Wangberg is hosting and Jason Aubrey and John Travis are organizing, will be equally rewarding.  It will focus more on the content side of WeBWorK, including Aaron’s project of adaptive homework assignments, upgrades to the PGcore/PGbasic infra structure, and the creation of template courses which new WeBWorK users can modify for their own use or use as they are.

Best regards,
Mike Gage, Arnie Pizer and Vicki Roth.

WeBWorK::Rochester accomplishments 
  • Development Infrastructure
    • Installed doxygen on webwork.maa.org for presenting POD documentation -- Djun Kim and Jason Aubrey
    • Set up workflow for collaborative software development using github.
      • The development repositories are webwork2-dev and pg-dev on github.com/openwebwork
      • The release repositories are webwork2 and pg on github.com/openwebwork
    • Discussed instituting a road map and a series of milestones
    • Learned to use bugzilla effectively.
    • Learned to use IRC.
    • Signed up for the webwork-devel mailing list.
    • Created a planet aggregator for WeBWorK related blogs -- Jason Aubrey and Mike Gage : email them to request to have your blog included. (http://webwork.maa.org/planet)

  • WeBWorK code
    • Created a new alpha version of the Student Management page (formerly Classlist editor) -- (user interface exists as classlist3 but not yet active) -- Danny Glin, Peter Staab, David Gage, Mark Herman, Paul Seeburger, Djun Kim
    • LibraryBrowser 3: (David Gage) has an alpha demo and we reported bugs and UI issues and new features (all)
    • Added key bar so that WeBWorK can be used on the iPad -- David Gage, Christina Kayastha
    • Cleaned up HTML generation and validating HTML content of webwork problems -- Christina Kayastha and Djun Kim
    • Updated config files:   site.conf, defaults.config, localOverrides.conf are now used --Danny Glin -- great work!! This will make it relatively painless to upgrade WeBWorK since all of the local changes are in sites.conf and localOverrides.conf and the new updated defaults for new features are in defaults.conf
      • need to write up instructions for updating to webwork2-dev, pg-dev
    • Created really awesome installation script -- (on github.com/aubreyja/ for now) Jason Aubrey and Arnie Pizer
    • Bug link in the problem editor now links more directly from WeBWorK to the appropriate section of Bugzilla -- Jason Aubrey
    • Incorporated Geoff Goehle's MathAchievements (WeBWorKAchievements ?) package into the main code. We’re still thinking about the name.  It was pointed out that MathAchievements might be too narrow if we start serving other disciplines. -- Mike Gage (and Geoff Goehle)
    • Registration on the admin page now brings up the form on the MAA site rather than sending an email message.  This project could still use work to allow parts of the form to be filled in automatically.
    • Incorporated Bill Wheelers connections with LTI.
  • WeBWorK Open Problem Library structures
    • We discussed metadata for the WOPL with Tyler Dzuba, Zari Kamarei, and Diane Cass (librarians at U. of Rochester)
    • Renamed the library to WeBWorK Open Problem Library  (WOPL  or OPL for short )
    • WOPL moved from the SVN repository to github/openwebwork.
    • Prototype XML format for metadata for PG problems -- Djun Kim -- github.com/djun-kim
    • Worked on developing new PG problems -- using javaScript -- Christina Kayastha and John Travis
  • Social infrastructure
    • Discussed setting up project management structure.
    • Work on organizing WeBWorK::Clinton, WeBWorK::Winona, and the MathFest WeBWorK Consultants workshop. -- John Travis and Arnie Pizer
  • Documentation for instructors and academics
    • New documents:    Introduction to WeBWorK -- openwebwork/docs -- Karen Clark
      • the plan is to break this into helpPages for real time access
    • New documents:  Academic references are being stored  in the reference database linked to the wiki.  We plan to use RSS feeds to update other pages displaying the references (e.g the the Publications splash page). -- Vick Roth, Jason Aubrey and Mike Gage
    • Two of four CIRTL lessons for future faculty members created-- Vicki Roth and Karen Clark