Google summer of code projects

From WeBWorK_wiki
Jump to navigation Jump to search
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