Difference between revisions of "Google summer of code projects"

From WeBWorK_wiki
Jump to navigation Jump to search
m (marked as historical, added tags)
 
(69 intermediate revisions by 2 users not shown)
Line 1: Line 1:
  +
{{Historical}}
  +
 
== Goggle summer of code projects==
 
== Goggle summer of code projects==
   
A place to list projects that might be work as "Goggle summer of code projects". Write a short summary -- and if you wish create a new wiki page for more details.
 
  +
We have selected these 6 projects as the ones which we think might be most likely to attract student programmers and which are most likely to be completed in
  +
a summer of code project. We will certainly consider proposals related to any of the other projects described in the table below or even original proposals for
  +
improving WeBWorK's online math homework capabilities based on exploring the wiki at http://webwork.maa.org
   
* Project: '''Data mine WW database'''. Write software that allows one to determine which WeBWorK projects are hard, which ones are defective? which ones are effective?
 
  +
Suggested projects described in the tables below:
** The basic plan would be to data mine the databases existing at each site to catalog questions that have an unusual number of wrong attempts before the question is answered correctly. This requires software to do the preliminary extraction and then software to make it fairly easy for humans to analyze the questions and determine what causes the large number of wrong attempts. Bad question wording? just hard? used in inappropriate course? How to determine effectiveness is even more nebulous -- although that is what would most like to know. Another statistic might be which questions are most widely used? A flexible tool that allowed asking many related questions would be most useful.
 
** Add other statistical questions here:
 
** Preliminary plan of attack: [[Data_mine_good_questions]]
 
   
* Related project: '''User interface for question statistics'''. Develop user interface software that mapped collection of statitical metadata about questions described above onto the NationalProblemLibrary and Library browser so that instructors would have this information easily available as they chose questions for their classes. This would probably involve perl programming to interoperate properly with the existing WW course management interface.
 
  +
# "Update User Interface"
  +
# "Desktop editing tool" -- this project has many parts, so it is reasonable to specify some short term goals for the summer while building in hooks that could later be developed to support the remaining objectives.
  +
# "Tools for data mining student response"
  +
# and it's somewhat less ambitious companion "WW question review"
  +
# "Database reorganization"
  +
# "Moodle WW question type"
  +
  +
== Rules for adding projects==
  +
  +
This is the place to list projects that might be work as "Goggle summer of code projects". Write a short summary -- and if you wish create a new wiki page for more details.
   
== Rules ==
 
 
* Be creative
 
* Be creative
 
* Be specific: what do you want to be implemented
 
* Be specific: what do you want to be implemented
* If you are willing to mentors those ideas, add your name and email to the idea.
+
* If you are willing to mentor those ideas, add your name and email to the idea.
 
* It is ok to have a project idea without parent project
 
* It is ok to have a project idea without parent project
 
* If you're an interested student, add your name and email next to the idea. It is ok to have several students interested by one idea.
 
* If you're an interested student, add your name and email next to the idea. It is ok to have several students interested by one idea.
Line 20: Line 29:
 
== Ideas ==
 
== Ideas ==
   
=== Instructor interface ===
+
=== User Interface ===
  +
  +
==== Global UI Projects ====
  +
 
{| border="1" cellpadding="2" width="100%"
 
{| border="1" cellpadding="2" width="100%"
 
!width="20%"|Title
 
!width="20%"|Title
Line 31: Line 40:
 
|-
 
|-
 
| Your project title here e.g. Cure world hunger
 
| Your project title here e.g. Cure world hunger
| Your project link here (optional)e.g. [Google_summer_of_code_projects GSoC]
+
| Your project link here (optional)e.g. [[Google_summer_of_code_projects | GSoC]]
 
| Your project description here. Be as precise and specific as possible. Link to bugs...
 
| Your project description here. Be as precise and specific as possible. Link to bugs...
 
| Your name here
 
| Your name here
Line 39: Line 48:
 
| <br>
 
| <br>
 
|-
 
|-
| Question statistics interface
 
  +
| Update User Interface
 
|
 
|
| Create a useful instructor interface to question statistics in the library (making question choices easier), a more useful analysis and
 
  +
| The primary goal of this project would be update the user interface code so that it conforms (as much as usefully possible) to current web coding standards, e.g. W3C standards for xhtml, css, and accessibility. Along the way, the student could modernize the look and feel of WeBWorK via creative use of CSS, Ajax or other technologies as deemed appropriate.
display of student progress, with graphs, alerts? Modify the "success indicator" so that it has more meaning.
 
  +
Developing several alternate and well documented "looks" for WeBWorK in addition to the current Template.pm layout and CSS pages would be desirable so that WeBWorK sites and instructors are more aware of the possibilities for customizing WeBWorK so that it better meets their needs.
  +
Wangberg's modifications which allow inclusion of a whiteboard on each problem page should serve as one example of a significant modification of look and feel.
  +
While it is a completely different technology the development of alternate "looks" for the TeX generated hardcopy would also be helpful.
  +
| JAA
  +
| Gage, Aubrey, Wangberg
  +
| Additional comments: This project will require close coordination with a group of mathematics instructors with experience using WeBWorK to insure that the changes actually meet the needs of instructors. <br/>Accessibility support is probably a deeper project than working with the html and css alone. E.g. would it be necessary to include in PG a capability for authors to supply alt tags formulas, images, applets.
  +
| --
  +
| <br>
  +
|-
  +
| Localization
  +
|
  +
| WeBWorK has been adapted to several sites in Europe and Asia. Sometimes it is used without translation and in some cases parts of the interface have been translated (localized). As an aid to future localization this project would index all strings in the ContentGenerator files (for a start) to language files. Future translations could be accomplished by adding new language files. This project could proceed in tandem with the Web 2.0 update of the user interface above and as a third outcome could regularize and improve the error messages. (See [[Localization]] for progress to date. )
 
| MEG
 
| MEG
| Pizer, Aubrey
 
  +
| Roth, Cervone, LaRose, Gage, ...
  +
| Additional Comments: This project localizes the WeBWorK interface, not the individual homework questions. Attempting automatic translation of questions would be much more difficult and may not be worthwhile since (1) they are for the most part not that difficult to write (2) questions from one educational system to another differ by more than language. <br/> Localizing the strings in the commonly used PG macro and library files (in particular the MathObjects error messages ) would be part of this project.
 
| --
 
| --
  +
| <br>
  +
|-
  +
|}
  +
  +
==== Student UI ====
  +
  +
  +
==== Instructor UI ====
  +
{| border="1" cellpadding="2" width="100%"
  +
!width="20%"|Title
  +
!width="5%" align="center"|Project
  +
!width="40%"|Abstract - links to details/bugs/etc
  +
!width="10%"|Reporter
  +
!width="10%"|Possible mentor(s)
  +
!width="15%"|Comments
  +
!width="10%"|Potential student(s)
  +
|-
  +
| Your project title here e.g. Cure world hunger
  +
| Your project link here (optional)e.g. [[Google_summer_of_code_projects | GSoC]]
  +
| Your project description here. Be as precise and specific as possible. Link to bugs...
  +
| Your name here
  +
| Your Possible mentors here
  +
| Your additional comments
  +
| Potential/interested students
  +
| <br>
  +
|-
  +
| Statistics interface
  +
|
  +
| Create (1.) a useful instructor interface to question statistics in the library (making question choices easier), <br/>(2.) a more useful analysis and display of student progress, with graphs. <br/> (3.) Modify the "success indicator" so that it has more meaning. Issue alerts based on this?
  +
| MEG
  +
| Pizer, Aubrey, Wangberg
  +
| This is a relatively self contained project, except for the challenge of defining appropriate "success indicators" -- for that see some of the projects associated with data mining the problem library. This project could concentrate on a good and flexible user interface for informing the instructor about the success indicators associated with the students in the course and or the homework questions chosen for the course.
 
| --
 
| --
 
| <br>
 
| <br>
 
|-
 
|-
 
|}
 
|}
  +
  +
==== Administrator UI ====
  +
   
 
=== Database reorganization ===
 
=== Database reorganization ===
Line 62: Line 118:
 
|-
 
|-
 
| Your project title here e.g. Cure world hunger
 
| Your project title here e.g. Cure world hunger
| Your project link here (optional)e.g. [Google_summer_of_code_projects GSoC]
+
| Your project link here (optional)e.g. [[Google_summer_of_code_projects | GSoC]]
 
| Your project description here. Be as precise and specific as possible. Link to bugs...
 
| Your project description here. Be as precise and specific as possible. Link to bugs...
 
| Your name here
 
| Your name here
Line 69: Line 125:
 
| Potential/interested students
 
| Potential/interested students
 
| <br>
 
| <br>
  +
|-
  +
| Database reorganization
  +
| -
  +
| "replace rows with columns" Currently each course has 7 or 8 separate tables. We need a database designed and implemented with a table for each class of data (e.g. a table for user data, problem data, homework/gateway quiz set data, assignment data).
  +
The tables should probably be narrower and use left joins to perform some of the current retrievals from single records. (Historical note: the current
  +
tables were designed a dozen years ago to use small GDBM databases. The design was preserved when the mysql database was instituted to preserve backward
  +
compatibility. That is no longer an issue.)<br/><br/>
  +
The organization of the current Moodle database suggests some possibilities.
  +
The new database should include some new tables -- session preferences, user/course preferences, and facilities for PG libraries and WeBWorK statistical modules to create new tables for their use. This mimics Moodle's abilities
  +
to host tables for module pluggins and would facilitate the kinds of WeBWorK additions that Wangberg has made to automate the creation of new homework sets based on past performance.
  +
| MEG
  +
| Gage, Leventi, Hathaway
  +
| This is a tricky problem. During the reorganization a number of other details need to be attended to: stop using problem numbers or set names or login names as primary keys, ) The new organization must match up well if not perfectly with the high level calls in DB.pm. Thorough testing will be required before we can place it in the standard release. Code for transferring data safely from the old database is highly desirable if not essential.
  +
|
  +
<br>
 
|-
 
|-
 
|}
 
|}
   
=== Integrity unit tests/ installation aids ===
+
===Site admin page/ Integrity unit tests/ installation aids ===
 
{| border="1" cellpadding="2" width="100%"
 
{| border="1" cellpadding="2" width="100%"
 
!width="20%"|Title
 
!width="20%"|Title
Line 83: Line 154:
 
|-
 
|-
 
| Your project title here e.g. Cure world hunger
 
| Your project title here e.g. Cure world hunger
| Your project link here (optional)e.g. [Google_summer_of_code_projects GSoC]
+
| Your project link here (optional)e.g. [[Google_summer_of_code_projects | GSoC]]
 
| Your project description here. Be as precise and specific as possible. Link to bugs...
 
| Your project description here. Be as precise and specific as possible. Link to bugs...
 
| Your name here
 
| Your name here
 
| Your Possible mentors here
 
| Your Possible mentors here
 
| Your additional comments
 
| Your additional comments
  +
| Potential/interested students
  +
| <br>
  +
|-
  +
| Admin page Web 2.0 face lift
  +
| --
  +
| Very little has been done with the user interface for site administrators to make it easy to use for adding, archiving, unarchiving and renaming courses. It is functional but primitive. In addition the
  +
backend has a good deal of cut and paste code that should be re factored. The archiving capability should
  +
be available to course owners so that they can archive and download their own courses (but not unarchive courses).
  +
The backend should also be configured so that it can be called from the command line for those large sites that need
  +
to automatically script course setup/archive procedures for the start and end of the term. An easy way to check site usage (with graphs) would
  +
be nice. http://darkwing.uoregon.edu/~sadofsky/wwusers (for non-integrated examples of this latter feature)
  +
| MEG
  +
| Aubrey, Pizer, Sadofsky
  +
| This would work best if there was frequent consultation with WeBWorK site maintainers around the country in order to collect and refine ideas that will really help make the site admins job easier.
  +
| Potential/interested students
  +
| <br>
  +
|-
  +
| WW site unit testing
  +
|
  +
| Perhaps in conjunction with additional installation wizards, this project would allow a site administrator to test that a WW site was complete and ready to go from the Web. In particular: Check to see that all CPAN modules are installed (and perhaps check that they are up to date). Check that pathways are correct. Offer troubleshooting suggestions if they are not. Some reconfiguration might be safely done from the web -- This would involve reorganization of the global.conf file mechanism.
  +
| MEG
  +
| Pizer
  +
| This would work best if there was frequent consultation with WeBWorK site maintainers around the country in order to collect and refine ideas that will really help make the site admins job easier.
 
| Potential/interested students
 
| Potential/interested students
 
| <br>
 
| <br>
Line 104: Line 198:
 
|-
 
|-
 
| Your project title here e.g. Cure world hunger
 
| Your project title here e.g. Cure world hunger
| Your project link here (optional)e.g. [Google_summer_of_code_projects GSoC]
+
| Your project link here (optional)e.g. [[Google_summer_of_code_projects | GSoC]]
 
| Your project description here. Be as precise and specific as possible. Link to bugs...
 
| Your project description here. Be as precise and specific as possible. Link to bugs...
 
| Your name here
 
| Your name here
Line 114: Line 208:
   
 
| Combine matrix objects
 
| Combine matrix objects
| [Google_summer_of_code_projects GSoC]
 
  +
|
 
| The MathObjects matrices (really matrix valued functions) and the CPAN Matrix objects have similar but not identical syntax and capabilities. Implement all of the CPAN Matrix functionality under the MathObject front end in order to reduce confusion
 
| The MathObjects matrices (really matrix valued functions) and the CPAN Matrix objects have similar but not identical syntax and capabilities. Implement all of the CPAN Matrix functionality under the MathObject front end in order to reduce confusion
 
| MEG
 
| MEG
 
| Gage, Cervone
 
| Gage, Cervone
 
| -
 
| -
  +
| -
  +
| <br>
  +
|-
  +
| PG unit test suite and debugging tools
  +
|
  +
| This project would write a series of WeBWorK "questions" which, rather than test the mathematical knowledge of the student, would check that various components of the PG language code were all in place and properly connected. It would also check that a standard core of applets and other auxiliary urls could be reached from the server. If a WW site administrator runs this test suite it should substantially increase the probability that all of the questions in the NationalProblemLibrary will run correctly on the site. In tandem with this the project should develop macros that can be used by course administrators or instructors to determine why a WeBWorK question is not behaving as expected. These tools would reveal, in a user friendly way, the behind the scenes states of the PG language -- e.g. how a given student answer is being processed. This project would extend, and hopefully regularize the "diagnose" switch
  +
provided by MathObjects and the "debug" switch defined in AnswerHash.pm and AnswerEvaluator.pm. It would make these features easier to use for WeBWorK instructors who are not intimately familiar with the PG code base.
  +
| MEG
  +
| Gage, Cervone
  +
| This should be considered in conjunction with projects aimed at curating, editing and validating the questions in the NationalProblemLibrary
 
| -
 
| -
 
| <br>
 
| <br>
 
|-
 
|-
 
|}
 
|}
  +
 
=== National Problem Library projects ===
 
=== National Problem Library projects ===
 
{| border="1" cellpadding="2" width="100%"
 
{| border="1" cellpadding="2" width="100%"
Line 134: Line 239:
 
|-
 
|-
 
| Your project title here e.g. Cure world hunger
 
| Your project title here e.g. Cure world hunger
| Your project link here (optional)e.g. [Google_summer_of_code_projects GSoC]
+
| Your project link here (optional)e.g. [[Google_summer_of_code_projects | GSoC]]
 
| Your project description here. Be as precise and specific as possible. Link to bugs...
 
| Your project description here. Be as precise and specific as possible. Link to bugs...
 
| Your name here
 
| Your name here
 
| Your Possible mentors here
 
| Your Possible mentors here
 
| Your additional comments
 
| Your additional comments
  +
| Potential/interested students
  +
| <br>
  +
|-
  +
| Desktop editing tool
  +
| Your project link here (optional)e.g. [[Google_summer_of_code_projects | GSoC]]
  +
| Create a multiplatform desktop tool (using perl-tk, python-tk, TCL, or Ruby-tk etc.) which could be useful for editing the NationalProblemLibrary. Parts of this user interface would also be duplicated in updated versions of the PGProblemEditor.pm and LibraryBrowser. <br/>The desktop tool would function as the front end user interface and would call the WeBWorK server via the webservice to accomplish most of the tasks. <br/>Tasks would include (1) providing convenient facilities for editing the text of a problem, including optional plugin editors (2) Links to PG language references for help -- this might include updating the PG language references as well (3) Allow viewing of the rendered problem (probably in one of several external browsers) (4) Allow convenient viewing of the rendered problem with several seeds (5) Provide some rudimentary testing that can be done automatically --e.g. check that the problem does not generate warning messages and that the correct answer is accepted. Possibly check that nearby answers are properly rejected (6) Allow listing of sections of the NationalProblemLibrary (similarly to the current LibraryBrowser) and applications of automatic testing to this subset. (7) Ability to check differences in code between two different versions of problem templates (imagine an editor trying to determine how a new question is different from an existing question in the library. (8) An interface for allowing an editor to find "similar" problems within the library (similar to be defined later, and the implementation would occur on the server). (9) Allow easy upload of a problem to a central NPL -- a sort of client SVN functin. (10) Facilities to automate the application of tags to the question -- in particular to reduce unnecessary tags, misspelled tags and so forth.
  +
| MEG
  +
| Gage, Aubrey, Jones, Cruz,
  +
| This is a big project. The user interfaces could be improvements on the current PG problem editor and the current Library browser. These improvements should be things that can be ported back to the webbrowser based look and
  +
feel of the problem editor and the library browser. Since it involves the user interface it must have close cooperation of math instructors actually using WeBWorK.
 
| Potential/interested students
 
| Potential/interested students
 
| <br>
 
| <br>
Line 155: Line 270:
 
|-
 
|-
 
| Your project title here e.g. Cure world hunger
 
| Your project title here e.g. Cure world hunger
| Your project link here (optional)e.g. [Google_summer_of_code_projects GSoC]
+
| Your project link here (optional)e.g. [[Google_summer_of_code_projects | GSoC]]
 
| Your project description here. Be as precise and specific as possible. Link to bugs...
 
| Your project description here. Be as precise and specific as possible. Link to bugs...
 
| Your name here
 
| Your name here
Line 167: Line 282:
 
| Develop software and methods to determine which are the best, most used or most effective questions. (which are least?)
 
| Develop software and methods to determine which are the best, most used or most effective questions. (which are least?)
 
| MEG
 
| MEG
| Gage, Aubrey, Pearson
+
| Gage, Aubrey, Paul Pearson, Aaron Wangberg
 
| --
 
| --
  +
| --
  +
| <br>
  +
|-
  +
| Tools for data mining student response
  +
|
  +
| Develop software and methods which make it easier for instructors and math education researchers to explore connections between student answers to homework questions, their performance on other related questions, and their rankings on other external material. The first goal is not automatic processing of data (although that might eventually be possible) but making it as easy as possible for math educators and instructors to gather, clean and process data for their research or to inform how they teach their courses or provide interventions for students.
  +
| MEG
  +
| Gage, Aubrey, Roth, Paul Pearson, Aaron Wangberg
  +
| These tools do not necessarily need to be run through the current WeBWorK interface. A separate interface possibly developed in another language (PHP, Python, Ruby) could organize data taken from the WeBWorK database. This is sensitive data so options for protecting this data and making it available only to those with the appropriate permissions should be considered from the beginning.
 
| --
 
| --
 
|}
 
|}
Line 188: Line 312:
 
| Your Possible mentors here
 
| Your Possible mentors here
 
| Your additional comments
 
| Your additional comments
  +
| Potential/interested students
  +
| <br>
  +
|-
  +
| Moodle WW question type
  +
| [[Moodle_Integration]]
  +
| Finish project which allows WeBWorK questions to appear in a Moodle Quiz. Make this work with Moodle 2.0 quiz type. (see related PG basics project). Features that are missing: download of PDF copies of quiz/homework, completely duplicate current WW homework assignment behavior, including being able to change due dates individually. Also insure that gateway quiz capability is completely duplicated by the Moodle Quiz formulation. Improved Moodle tools for choosing and editing problems would also be desirable.
  +
| MEG
  +
| Gage, Leventi
  +
| This project will benefit from an understanding of how Moodle and the Moodle Quiz object work plus a knowledge of PHP (Moodle is written in PHP). Successful completion of this would allow current Moodle users to use WeBWorK questions without learning anything about the WeBWorK interface. WeBWorK users who switched to Moodle could retain the problems and problem sets of WeBWorK but would acquire the Moodle look and feel and the additional features of Moodle such as chat, bulletin boards, full featured gradebook and so forth.
  +
|
  +
| <br>
  +
|-
  +
| WW webservice refactoring and upgrade
  +
| Your project link here (optional)e.g. [Google_summer_of_code_projects GSoC]
  +
| Integration of WeBWorK with CMS is accomplished by calls from the CMS to the WW webservice. The webservice can create new users, new homework sets, render problems and so forth.
  +
There are now at least three webservice interfaces, created at different times and for different purposes. These should be consolidated and then should provide both a SOAP and and xml_rpc interface. The former will work well for those clients using WSDL discovery methods to define rpc calls. The xml_rpc interface will be useful for experimental and one-off clients for which developing the full blown SOAP interface is premature or simply unnecessary.
  +
This project impinges on several other projects: (1) integration with Moodle and with Blackboard, and ...?, (2)unit tests -- particularly unit tests of the integrity of problems in the NPL. (3) desktop editing of questions (4) projects associated with searching, organizing and curating the National Problem Library
  +
| MEG
  +
| Gage, John Jones,Leventi, Hathaway
  +
|
 
| Potential/interested students
 
| Potential/interested students
 
| <br>
 
| <br>
 
|-
 
|-
 
|}
 
|}
  +
=== Packaging ===
  +
  +
{| border="1" cellpadding="2" width="100%"
  +
!width="20%"|Title
  +
!width="5%" align="center"|Project
  +
!width="40%"|Abstract - links to details/bugs/etc
  +
!width="10%"|Reporter
  +
!width="10%"|Possible mentor(s)
  +
!width="15%"|Comments
  +
!width="10%"|Potential student(s)
  +
|-
  +
| Packaging tools for linux distributions
  +
|
  +
| Write tools to make it easy to package WeBWorK releases for various Linux distributions and/or BSDs.
  +
| JAA
  +
| Gage, Pizer, Aubrey, LaRose
  +
| We'd at least want debs and rpms which conform to the relevant packaging standards.
  +
| Potential/interested students
  +
| <br>
  +
|-
  +
  +
[[Category:Events]]

Latest revision as of 19:45, 16 June 2021

This article has been retained as a historical document. It is not up-to-date and the formatting may be lacking. Use the information herein with caution.

Goggle summer of code projects

We have selected these 6 projects as the ones which we think might be most likely to attract student programmers and which are most likely to be completed in a summer of code project. We will certainly consider proposals related to any of the other projects described in the table below or even original proposals for improving WeBWorK's online math homework capabilities based on exploring the wiki at http://webwork.maa.org

Suggested projects described in the tables below:

  1. "Update User Interface"
  2. "Desktop editing tool" -- this project has many parts, so it is reasonable to specify some short term goals for the summer while building in hooks that could later be developed to support the remaining objectives.
  3. "Tools for data mining student response"
  4. and it's somewhat less ambitious companion "WW question review"
  5. "Database reorganization"
  6. "Moodle WW question type"

Rules for adding projects

This is the place to list projects that might be work as "Goggle summer of code projects". Write a short summary -- and if you wish create a new wiki page for more details.

  • Be creative
  • Be specific: what do you want to be implemented
  • If you are willing to mentor those ideas, add your name and email to the idea.
  • It is ok to have a project idea without parent project
  • If you're an interested student, add your name and email next to the idea. It is ok to have several students interested by one idea.
  • Aspiring students and mentors need to register and submit their proposals or request on the Soc app

Ideas

User Interface

Global UI Projects

Title Project Abstract - links to details/bugs/etc Reporter Possible mentor(s) Comments Potential student(s)
Your project title here e.g. Cure world hunger Your project link here (optional)e.g. GSoC Your project description here. Be as precise and specific as possible. Link to bugs... Your name here Your Possible mentors here Your additional comments Potential/interested students
Update User Interface The primary goal of this project would be update the user interface code so that it conforms (as much as usefully possible) to current web coding standards, e.g. W3C standards for xhtml, css, and accessibility. Along the way, the student could modernize the look and feel of WeBWorK via creative use of CSS, Ajax or other technologies as deemed appropriate.

Developing several alternate and well documented "looks" for WeBWorK in addition to the current Template.pm layout and CSS pages would be desirable so that WeBWorK sites and instructors are more aware of the possibilities for customizing WeBWorK so that it better meets their needs. Wangberg's modifications which allow inclusion of a whiteboard on each problem page should serve as one example of a significant modification of look and feel. While it is a completely different technology the development of alternate "looks" for the TeX generated hardcopy would also be helpful.

JAA Gage, Aubrey, Wangberg Additional comments: This project will require close coordination with a group of mathematics instructors with experience using WeBWorK to insure that the changes actually meet the needs of instructors.
Accessibility support is probably a deeper project than working with the html and css alone. E.g. would it be necessary to include in PG a capability for authors to supply alt tags formulas, images, applets.
--
Localization WeBWorK has been adapted to several sites in Europe and Asia. Sometimes it is used without translation and in some cases parts of the interface have been translated (localized). As an aid to future localization this project would index all strings in the ContentGenerator files (for a start) to language files. Future translations could be accomplished by adding new language files. This project could proceed in tandem with the Web 2.0 update of the user interface above and as a third outcome could regularize and improve the error messages. (See Localization for progress to date. ) MEG Roth, Cervone, LaRose, Gage, ... Additional Comments: This project localizes the WeBWorK interface, not the individual homework questions. Attempting automatic translation of questions would be much more difficult and may not be worthwhile since (1) they are for the most part not that difficult to write (2) questions from one educational system to another differ by more than language.
Localizing the strings in the commonly used PG macro and library files (in particular the MathObjects error messages ) would be part of this project.
--

Student UI

Instructor UI

Title Project Abstract - links to details/bugs/etc Reporter Possible mentor(s) Comments Potential student(s)
Your project title here e.g. Cure world hunger Your project link here (optional)e.g. GSoC Your project description here. Be as precise and specific as possible. Link to bugs... Your name here Your Possible mentors here Your additional comments Potential/interested students
Statistics interface Create (1.) a useful instructor interface to question statistics in the library (making question choices easier),
(2.) a more useful analysis and display of student progress, with graphs.
(3.) Modify the "success indicator" so that it has more meaning. Issue alerts based on this?
MEG Pizer, Aubrey, Wangberg This is a relatively self contained project, except for the challenge of defining appropriate "success indicators" -- for that see some of the projects associated with data mining the problem library. This project could concentrate on a good and flexible user interface for informing the instructor about the success indicators associated with the students in the course and or the homework questions chosen for the course. --

Administrator UI

Database reorganization

Title Project Abstract - links to details/bugs/etc Reporter Possible mentor(s) Comments Potential student(s)
Your project title here e.g. Cure world hunger Your project link here (optional)e.g. GSoC Your project description here. Be as precise and specific as possible. Link to bugs... Your name here Your Possible mentors here Your additional comments Potential/interested students
Database reorganization - "replace rows with columns" Currently each course has 7 or 8 separate tables. We need a database designed and implemented with a table for each class of data (e.g. a table for user data, problem data, homework/gateway quiz set data, assignment data).

The tables should probably be narrower and use left joins to perform some of the current retrievals from single records. (Historical note: the current tables were designed a dozen years ago to use small GDBM databases. The design was preserved when the mysql database was instituted to preserve backward compatibility. That is no longer an issue.)

The organization of the current Moodle database suggests some possibilities. The new database should include some new tables -- session preferences, user/course preferences, and facilities for PG libraries and WeBWorK statistical modules to create new tables for their use. This mimics Moodle's abilities to host tables for module pluggins and would facilitate the kinds of WeBWorK additions that Wangberg has made to automate the creation of new homework sets based on past performance.

MEG Gage, Leventi, Hathaway This is a tricky problem. During the reorganization a number of other details need to be attended to: stop using problem numbers or set names or login names as primary keys, ) The new organization must match up well if not perfectly with the high level calls in DB.pm. Thorough testing will be required before we can place it in the standard release. Code for transferring data safely from the old database is highly desirable if not essential.


Site admin page/ Integrity unit tests/ installation aids

Title Project Abstract - links to details/bugs/etc Reporter Possible mentor(s) Comments Potential student(s)
Your project title here e.g. Cure world hunger Your project link here (optional)e.g. GSoC Your project description here. Be as precise and specific as possible. Link to bugs... Your name here Your Possible mentors here Your additional comments Potential/interested students
Admin page Web 2.0 face lift -- Very little has been done with the user interface for site administrators to make it easy to use for adding, archiving, unarchiving and renaming courses. It is functional but primitive. In addition the

backend has a good deal of cut and paste code that should be re factored. The archiving capability should be available to course owners so that they can archive and download their own courses (but not unarchive courses). The backend should also be configured so that it can be called from the command line for those large sites that need to automatically script course setup/archive procedures for the start and end of the term. An easy way to check site usage (with graphs) would be nice. http://darkwing.uoregon.edu/~sadofsky/wwusers (for non-integrated examples of this latter feature)

MEG Aubrey, Pizer, Sadofsky This would work best if there was frequent consultation with WeBWorK site maintainers around the country in order to collect and refine ideas that will really help make the site admins job easier. Potential/interested students
WW site unit testing Perhaps in conjunction with additional installation wizards, this project would allow a site administrator to test that a WW site was complete and ready to go from the Web. In particular: Check to see that all CPAN modules are installed (and perhaps check that they are up to date). Check that pathways are correct. Offer troubleshooting suggestions if they are not. Some reconfiguration might be safely done from the web -- This would involve reorganization of the global.conf file mechanism. MEG Pizer This would work best if there was frequent consultation with WeBWorK site maintainers around the country in order to collect and refine ideas that will really help make the site admins job easier. Potential/interested students

PG language

Title Project Abstract - links to details/bugs/etc Reporter Possible mentor(s) Comments Potential student(s)
Your project title here e.g. Cure world hunger Your project link here (optional)e.g. GSoC Your project description here. Be as precise and specific as possible. Link to bugs... Your name here Your Possible mentors here Your additional comments Potential/interested students
Combine matrix objects The MathObjects matrices (really matrix valued functions) and the CPAN Matrix objects have similar but not identical syntax and capabilities. Implement all of the CPAN Matrix functionality under the MathObject front end in order to reduce confusion MEG Gage, Cervone - -
PG unit test suite and debugging tools This project would write a series of WeBWorK "questions" which, rather than test the mathematical knowledge of the student, would check that various components of the PG language code were all in place and properly connected. It would also check that a standard core of applets and other auxiliary urls could be reached from the server. If a WW site administrator runs this test suite it should substantially increase the probability that all of the questions in the NationalProblemLibrary will run correctly on the site. In tandem with this the project should develop macros that can be used by course administrators or instructors to determine why a WeBWorK question is not behaving as expected. These tools would reveal, in a user friendly way, the behind the scenes states of the PG language -- e.g. how a given student answer is being processed. This project would extend, and hopefully regularize the "diagnose" switch

provided by MathObjects and the "debug" switch defined in AnswerHash.pm and AnswerEvaluator.pm. It would make these features easier to use for WeBWorK instructors who are not intimately familiar with the PG code base.

MEG Gage, Cervone This should be considered in conjunction with projects aimed at curating, editing and validating the questions in the NationalProblemLibrary -

National Problem Library projects

Title Project Abstract - links to details/bugs/etc Reporter Possible mentor(s) Comments Potential student(s)
Your project title here e.g. Cure world hunger Your project link here (optional)e.g. GSoC Your project description here. Be as precise and specific as possible. Link to bugs... Your name here Your Possible mentors here Your additional comments Potential/interested students
Desktop editing tool Your project link here (optional)e.g. GSoC Create a multiplatform desktop tool (using perl-tk, python-tk, TCL, or Ruby-tk etc.) which could be useful for editing the NationalProblemLibrary. Parts of this user interface would also be duplicated in updated versions of the PGProblemEditor.pm and LibraryBrowser.
The desktop tool would function as the front end user interface and would call the WeBWorK server via the webservice to accomplish most of the tasks.
Tasks would include (1) providing convenient facilities for editing the text of a problem, including optional plugin editors (2) Links to PG language references for help -- this might include updating the PG language references as well (3) Allow viewing of the rendered problem (probably in one of several external browsers) (4) Allow convenient viewing of the rendered problem with several seeds (5) Provide some rudimentary testing that can be done automatically --e.g. check that the problem does not generate warning messages and that the correct answer is accepted. Possibly check that nearby answers are properly rejected (6) Allow listing of sections of the NationalProblemLibrary (similarly to the current LibraryBrowser) and applications of automatic testing to this subset. (7) Ability to check differences in code between two different versions of problem templates (imagine an editor trying to determine how a new question is different from an existing question in the library. (8) An interface for allowing an editor to find "similar" problems within the library (similar to be defined later, and the implementation would occur on the server). (9) Allow easy upload of a problem to a central NPL -- a sort of client SVN functin. (10) Facilities to automate the application of tags to the question -- in particular to reduce unnecessary tags, misspelled tags and so forth.
MEG Gage, Aubrey, Jones, Cruz, This is a big project. The user interfaces could be improvements on the current PG problem editor and the current Library browser. These improvements should be things that can be ported back to the webbrowser based look and

feel of the problem editor and the library browser. Since it involves the user interface it must have close cooperation of math instructors actually using WeBWorK.

Potential/interested students

Data mining / guided instruction

Title Project Abstract - links to details/bugs/etc Reporter Possible mentor(s) Comments Potential student(s)
Your project title here e.g. Cure world hunger Your project link here (optional)e.g. GSoC Your project description here. Be as precise and specific as possible. Link to bugs... Your name here Your Possible mentors here Your additional comments Potential/interested students
WW question review Data_mine_good_questions Develop software and methods to determine which are the best, most used or most effective questions. (which are least?) MEG Gage, Aubrey, Paul Pearson, Aaron Wangberg -- --
Tools for data mining student response Develop software and methods which make it easier for instructors and math education researchers to explore connections between student answers to homework questions, their performance on other related questions, and their rankings on other external material. The first goal is not automatic processing of data (although that might eventually be possible) but making it as easy as possible for math educators and instructors to gather, clean and process data for their research or to inform how they teach their courses or provide interventions for students. MEG Gage, Aubrey, Roth, Paul Pearson, Aaron Wangberg These tools do not necessarily need to be run through the current WeBWorK interface. A separate interface possibly developed in another language (PHP, Python, Ruby) could organize data taken from the WeBWorK database. This is sensitive data so options for protecting this data and making it available only to those with the appropriate permissions should be considered from the beginning. --

CMS (Blackboard, Moodle, Angel?) integration projects

Title Project Abstract - links to details/bugs/etc Reporter Possible mentor(s) Comments Potential student(s)
Your project title here e.g. Cure world hunger Your project link here (optional)e.g. [Google_summer_of_code_projects GSoC] Your project description here. Be as precise and specific as possible. Link to bugs... Your name here Your Possible mentors here Your additional comments Potential/interested students
Moodle WW question type Moodle_Integration Finish project which allows WeBWorK questions to appear in a Moodle Quiz. Make this work with Moodle 2.0 quiz type. (see related PG basics project). Features that are missing: download of PDF copies of quiz/homework, completely duplicate current WW homework assignment behavior, including being able to change due dates individually. Also insure that gateway quiz capability is completely duplicated by the Moodle Quiz formulation. Improved Moodle tools for choosing and editing problems would also be desirable. MEG Gage, Leventi This project will benefit from an understanding of how Moodle and the Moodle Quiz object work plus a knowledge of PHP (Moodle is written in PHP). Successful completion of this would allow current Moodle users to use WeBWorK questions without learning anything about the WeBWorK interface. WeBWorK users who switched to Moodle could retain the problems and problem sets of WeBWorK but would acquire the Moodle look and feel and the additional features of Moodle such as chat, bulletin boards, full featured gradebook and so forth.
WW webservice refactoring and upgrade Your project link here (optional)e.g. [Google_summer_of_code_projects GSoC] Integration of WeBWorK with CMS is accomplished by calls from the CMS to the WW webservice. The webservice can create new users, new homework sets, render problems and so forth.

There are now at least three webservice interfaces, created at different times and for different purposes. These should be consolidated and then should provide both a SOAP and and xml_rpc interface. The former will work well for those clients using WSDL discovery methods to define rpc calls. The xml_rpc interface will be useful for experimental and one-off clients for which developing the full blown SOAP interface is premature or simply unnecessary. This project impinges on several other projects: (1) integration with Moodle and with Blackboard, and ...?, (2)unit tests -- particularly unit tests of the integrity of problems in the NPL. (3) desktop editing of questions (4) projects associated with searching, organizing and curating the National Problem Library

MEG Gage, John Jones,Leventi, Hathaway Potential/interested students

Packaging

Title Project Abstract - links to details/bugs/etc Reporter Possible mentor(s) Comments Potential student(s)
Packaging tools for linux distributions Write tools to make it easy to package WeBWorK releases for various Linux distributions and/or BSDs. JAA Gage, Pizer, Aubrey, LaRose We'd at least want debs and rpms which conform to the relevant packaging standards. Potential/interested students