This worksheet is designed to give you a soft intro into using Sage and shouldn't take very long. It's mostly to give the organizers feedback on where everyone is so we can design talks to get Sage Days participants up and running as fast as possible. :) It will be helpful if you've already completed the Code Academy Python course (or at least the basic parts of it: for loops, if statements, basic Python syntax) http://www.codecademy.com/.
If you have any questions on how to do any of the problems please e-mail aly.deines@gmail.com, the sage-support mailing list: https://groups.google.com/forum/?hl=en&fromgroups#!forum/sage-support or Ask-sage: http://ask.sagemath.org/questions/.
First things first: Find what you need.
Sage has tab completion. If you want to create an elliptic curve, just start typing Ell... and press tab! All commands starting with Ell will come up. Just finish typing, click on, or arrow over to whichever command you want (or think you want.)
To see how to use the command and what input it takes, finish typing the command and then type one parenthesis, like this:
EllipticCurve(
now press tab!
Problem 1: Use the command EllipticCurve to create your favorite elliptic curve.
{{{id=1|
///
}}}
But what if you want to create a different object and have no idea how to start?
Use the python command search_src('text to search for here')
Example:
{{{id=3|
search_src('modular form')
///
Search Source Code: "modular form"
- algebras/quatalg/quaternion_algebra.py
- databases/cremona.py
- interfaces/magma.py
- lfunctions/dokchitser.py
- modular/arithgroup/arithgroup_generic.py
- modular/arithgroup/congroup_gamma1.py
- modular/arithgroup/congroup_gammaH.py
- modular/dims.py
- modular/dirichlet.py
- modular/hecke/ambient_module.py
- modular/hecke/element.py
- modular/hecke/module.py
- modular/local_comp/local_comp.py
- modular/local_comp/smoothchar.py
- modular/modform/ambient.py
- modular/modform/ambient_R.py
- modular/modform/ambient_eps.py
- modular/modform/ambient_g0.py
- modular/modform/ambient_g1.py
- modular/modform/constructor.py
- modular/modform/cuspidal_submodule.py
- modular/modform/defaults.py
- modular/modform/eisenstein_submodule.py
- modular/modform/element.py
- modular/modform/find_generators.py
- modular/modform/half_integral.py
- modular/modform/hecke_operator_on_qexp.py
- modular/modform/notes.py
- modular/modform/numerical.py
- modular/modform/periods.py
- modular/modform/space.py
- modular/modform/submodule.py
- modular/modform/test.py
- modular/modform/tests.py
- modular/modform/vm_basis.py
- modular/modsym/space.py
- modular/overconvergent/genus0.py
- modular/overconvergent/hecke_series.py
- modular/quatalg/brandt.py
- modular/ssmod/ssmod.py
- quadratic_forms/quadratic_form__theta.py
- schemes/elliptic_curves/BSD.py
- schemes/elliptic_curves/ell_rational_field.py
- schemes/elliptic_curves/modular_parametrization.py
- schemes/elliptic_curves/padic_lseries.py
- schemes/elliptic_curves/padics.py
}}}
By clicking on any of the links, you can go look at the source code, complete with documentation.
Since this can all be found online, you can also do google searches of the sagemath website to find documentation.
Example: type "modular form site:www.sagemath.org" into your google search bar
Exercise: Create a p-adic field.
{{{id=5|
///
}}}
Now for the challenge problem. :)
Exercise: Write a for loop to look through the Cremona Database and print out all isogeny classes of curves with conductor less than 100 and divisible by 2.
{{{id=8|
///
}}}
When you are done, please save your worksheet and e-mail it aly.deines@gmail.com.