GeoGebra & Google Summer of Code 2010

GeoGebra GSoC 2010 Students

GeoGebra is part of  Google Summer of Code 2010. This means that Google supports 5 students to work on GeoGebra coding projects in the summer of 2010. Here are the five students and their projects:

How to apply to GeoGebra for GSoC 2010

The application period is closed for this year. Please try and apply next March. If you are a student of age 18+, you are welcome to apply from March 29 to April 9, 2010 to do some coding for one of our projects.

  1. Pick up a project you are interested in the list of project ideas below. It is important to like your topic.
  2. You should play with GeoGebra and browse our user forum. GeoGebra is a user driven project, so it's important to know about the wishes of our community. This will help you to understand our project ideas.
  3. Contact the listed mentor if you have some questions on a project. You can find our contacts at http://www.geogebra.org/cms/en/team.

Requirements

  • We require students to be able to compile and run GeoGebra from our sources before submitting a project, see http://www.geogebra.org/trac/wiki/SetUp
  • We require students to work full time (i.e. 8 hours per day) on the project. Of course, times are flexible, so you can work less one week and more the other. However, the total should equal 40 hours per week during the GSoC project period.

Application template

Prepare a draft of your proposal on the  gsoc website with the following items:

  1. Technical aspects of the proposal
    1. YOUR description of the proposal. It helps to make sure that you have understood the subject.
    2. A description of the technical solution considered. Go as far as you think it is important to understand your proposal. The more, the better.
    3. A realistic schedule with objectives (one every two weeks for example) and deadlines. Please focus especially on mid-term objectives and final evaluation.
  2. Human aspects of the proposal
    1. Please provide some information about you. How old are you, where are you from, what are you studying, etc. Do not forget to also provide an email address on which we can reach you.
    2. Which IT languages are you familiar with? What have you done with them?
    3. Please say if you used GeoGebra before, what for?
    4. Are you planning to contribute to GeoGebra after the GSoC?
    5. A formal commitment that you will be involved full time on the GeoGebra GSoC project.

GeoGebra Project Ideas for GSoC 2010

Pick one of the following project ideas or suggest your own GeoGebra related project.

(*) = Accepted projects 2010

GeoGebra to JavaScript Port

Use Google Web Toolkit (GWT) to port GeoGebra's graphics view to JavaScript. Using the GWTCanvas it should be possible to use GeoGebra applets in standard browsers without the need of a Java plugin. This will make thousands of existing GeoGebra constructions available for a wide range of new devices including mobile phones. Goal of this project is a first working prototype that can be extended later.

  • Skills needed: GWT, Java programming
  • Mentor: Zoltan Kovacs, University of Szeged, Hungary

GeoGebra GUI extension (*)

Create a system for GeoGebra to customize the layout of the different views (views are e.g. the graphics pad, the spreadsheet, etc). Views can be dragged around to modify their position but views may also be opened as an external window. The user should be able to save a screen layout as a perspective. Each view can have an custom tool bar which is displayed if this view is opened in an extra window.

  • Skills needed: Java programming, Swing experience
  • Mentor: Markus Hohenwarter, Johannes Kepler University Linz, Austria

GeoGebra3D (*)

Create a three dimensional Geometry and Graphics View in GeoGebra that is easy to use with the mouse. This view will allow the creation and interactive manipulation of 3D geometrical objects like points, lines, polygons, spheres, and polyhedrons as well as function plots of the form f(x,y).The 3D View should both be usable in the GeoGebra standalone application as well as offer the possibility to be embedded into interactive web pages. In this project, you will work closely with the mentor extending an existing prototype of GeoGebra3D.

  • Skills needed: OpenGL, Java programming
  • Mentor: Mathieu Blossier, University of Rouen, France

GeoGebraTouch (*)

Create a version of GeoGebra that can be used solely with a pen or your fingers on a touch screen computer or interactive whiteboard. This includes improvements to the existing onscreen keyboard in GeoGebra as well as adapting the graphics view for touch based interaction.

  • Skills needed: Java Swing programming
  • Mentor: Michael Borcherds, Birmingham, UK

GeoGebraSpreadsheet

Extend the capabilities of the existing GeoGebra Spreadsheet View. In particular, create a specific toolbar for spreadsheet commands to allow easy use with the mouse and an additional tool to load the spreadsheet with data sets provided by teachers and textbook authors. For diagrams, we should have wizard dialogs that let you create diagrams like line graphs or bar charts by choosing from various options. These wizards would also take advantage of GeoGebra’s powerful statistical routines to analyze spreadsheet data. Another dialog box would present the user with hyperlinks to data from external sources or local files. With this capability a simple mouse click could bring data from science and mathematics textbooks into GeoGebra, ready to be explored by students.

  • Skills needed: Java Swing programming
  • Mentor: George Sturr, Santa Rosa Junior College, California, USA

Equation Editor for GeoGebra

Adapt and integrate an easy-to-use equation editor into GeoGebra. This project is not about developing a new equation editor from scratch, but rather to adapt an existing open source package to the specific needs of GeoGebra. This will involve adaptations of the user interface of the equation editor as well as work on the communication interfaces between editor and GeoGebra (e.g. MathML conversion). Possible candidates for programs that could be adapted are  TutorMates,  JLaTeXMath,  DragMath. We currently would prefer TutorMates where we would need to convert the existing SWT equation editor to Swing.

  • Skills needed: Java GUI (Swing, SWT) programming, basic MathML knowledge
  • Mentors: Markus Hohenwarter, Johannes Kepler University Linz, Austria; Calixte Denizet

Locus line equation (*)

Find the equation for a locus line constructed in GeoGebra. See  LADucation4ggb for what this means. The goal is an integrated solution that doesn't require manual upload of a ggb file to a server. Given a GeoGebra construction with a locus set, the following algorithm to find the equation of the locus set with algebraic methods is proposed:

  1. Assign coordinates to points in the construction: numeric to free points, symbolic to dependent points (x_1, x_2... ) and special symbolic (u_1,u_2) to the locus point (tracer).
  2. Generate polynomial conditions among the points in the construction (polynomials in x_i and u_j) given by the constraint among them (three points aligned, two points in the same circle,...).
  3. Use elimination theory with using Grobner bases to obtain equation of locus in terms of u_1 and u_2.

(Related to discovery theory by Kapur and Recio-Velez. First applied to finding locus sets in a DGS by Botana-Valcarce).

  • Skills needed: Java client-server programming, basic understanding of Groebner bases
  • Mentors: Markus Hohenwarter, Johannes Kepler University Linz, Austria; Miguel Á. Abánades, Universidad Complutense Madrid, Spain

Contour and Implicit Plotting (*)

Implement contour and implicit plotting routines in GeoGebra. Implicit plotting of f(x, y) = 0 is a special case of plotting contour lines of f(x, y) = h for constant height h. The student should look at existing open-source implicit plotting packages and port an efficient and adaptive algorithm for the EuclidianView package in GeoGebra using Java2D. The algorithm should be fast enough to allow dynamic updates when changing sliders for simple algebraic curves.

  • Skills needed: Java2D programming
  • Mentor: Michael Borcherds, Birmingham, and Markus Hohenwarter, Johannes Kepler University Linz, Austria

GeoGebraXO

Sugarize GeoGebra to run on the OLPC XO 1.5 laptops under SugarOS. We already have contacts to SugarLabs and they will help us with Java support. This project will involve adaptations of the user interface of GeoGebra to work with the security system and journal of SugarOS. Support of collaboration features could be a follow-up project.

  • Skills needed: Java programming, some Linux experience
  • Mentor: Zoltan Kovacs, University of Szeged, Hungary

GeoGebra Installers & Auto-Updating

Create easy-to-use installer packages for Windows, Mac, and the main Linux distributions (in particular for Ubuntu) that include a mechanism for automatic download of updates. The current solution with Java WebStart lacks good desktop integration, in particular on Linux systems. In this project, you will improve and merge our existing installer and webstart approaches in close collaboration with the mentors.

  • Skills needed: Java programming, NSIS packaging, some Linux experience (deb/rpm packaging)
  • Mentor: Yves Kreis, University of Luxembourg; George Sturr, Santa Rosa Junior College, California

GeoGebra & Moodle

Create a GeoGebra module for Moodle that allows to use GeoGebra applets in Moodle tests and quizzes.

  • Skills needed: Moodle programming
  • Mentor: Michael Borcherds, Birmingham

GeoGebra & Sage

Integrate GeoGebra applets into the open source mathematics package Sage.

  • Skills needed: Sage (Python) programming
  • Mentor: Markus Hohenwarter, Linz and Ted Kosan (Shawnee State University, Ohio, USA)

GeoGebra & STACK

Integrate GeoGebra applets into the online assessment platform  STACK source mathematics package Sage.

  • Skills needed: web (php) programming
  • Mentors: Chris Sangwin, Birmingham, UK and Markus Hohenwarter, Linz, Austria

GeoGebra & MathPiper

 MathPiper is the main Computer Algebra System  CAS that GeoGebra uses internally. MathPiper currently has a limited test suite which tests the mathematics-oriented parts of the system and it would benefit from having a more comprehensive test suite. The goal of this project is to take an existing open-source CAS test suite (such as  CATS), enhance it, and enable it to work with MathPiper.

  • Skills needed: CAS development experience.
  • Mentor: Ted Kosan (Shawnee State University, Ohio, USA)