# 1062: Final Project Ideas

## Undergrad or Grad

- Do a survey about whether we could switch Sage to Python 3.x (from Python 2.x)
- Create a pure Javascript computer algebra system, probably from scratch, since little exists right now. Could have a numerical matrix type, arbitrary precision integers and rationals, integer factorization, modular exponentiation, basic table of integrals, etc., etc. It could also have a simple facility for calling web math resources from javascript, including Sage, Wolfram Alpha, Magma online calculator, etc.
- There is an optional Sage package called "qhull", but there are no tests at all in the Sage library that illustrate how to use it. Write some tests and get them included in Sage.
There are various ways of loading a huge range of interesting files into Sage (e.g, png image files, wav audio files, csv files, Excel spreadsheets, etc), but unfortunately there is still no single simple function that automatically deals with a wide range of cases. Write one. One could just extend the existing

`load`function in Sage so that it handles more types. This can get subtle.Clean up discrete random variables in Sage: http://trac.sagemath.org/sage_trac/ticket/9670

Create a quick reference card like one of these: http://wiki.sagemath.org/quickref

Translate one of the existing quick reference cards to another language: http://wiki.sagemath.org/quickref

Make something like %cython that preparses the input and has

`from sage.all import *`at the top.

## Undergraduate Level

CUDA/GPA: Install and demo http://code.google.com/p/copperhead and discuss the potential for CUDA programming and Sage.

## Graduate Level

- Create iterators over some "infinite" rings in Sage, such as RR.