WSD4
system:sage


<p><span style="font-size: small; font-family: arial, helvetica, sans-serif;">This worksheet is designed to give you a soft intro into using Sage and shouldn't take very long. &nbsp;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. &nbsp;:) &nbsp;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)&nbsp;<a href="http://www.codecademy.com/.">http://www.codecademy.com/</a>.</span></p>
<p><span style="font-size: small; font-family: arial, helvetica, sans-serif;">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:&nbsp;<a href="https://groups.google.com/forum/?hl=en&amp;fromgroups#!forum/sage-support">https://groups.google.com/forum/?hl=en&amp;fromgroups#!forum/sage-support</a>&nbsp;or Ask-sage:&nbsp;<a href="http://ask.sagemath.org/questions/">http://ask.sagemath.org/questions/</a>.&nbsp;</span></p>
<p><span style="font-size: small;"><br /></span></p>
<h3><span style="font-size: small; font-family: arial, helvetica, sans-serif;">First things first: Find what you need.</span></h3>
<p><span style="font-size: small; font-family: arial, helvetica, sans-serif;">Sage has tab completion. &nbsp;If you want to create an elliptic curve, just start typing Ell... and press tab! &nbsp;All commands starting with Ell will come up. &nbsp;Just finish typing, click on, or arrow over to whichever command you want (or think you want.)</span></p>
<p><span style="font-size: small; font-family: arial, helvetica, sans-serif;">To see how to use the command and what input it takes, finish typing the command and then type one parenthesis, like this:</span></p>
<p><span style="font-size: small; font-family: arial, helvetica, sans-serif;">EllipticCurve(</span></p>
<p><span style="font-size: small; font-family: arial, helvetica, sans-serif;">now press tab!</span></p>
<h3><span style="font-size: small; font-family: arial, helvetica, sans-serif;">Problem 1: Use the command EllipticCurve to create your favorite elliptic curve.</span></h3>
<p><span style="font-size: small;"><br /></span></p>

{{{id=1|

///
}}}

<p><span style="font-family: arial, helvetica, sans-serif; font-size: small;">But what if you want to create a different object and have no idea how to start? &nbsp;</span></p>
<p><span style="font-family: arial, helvetica, sans-serif; font-size: small;">Use the python command search_src('text to search for here')</span></p>
<h3><span style="font-family: arial, helvetica, sans-serif; font-size: small;">Example:</span></h3>

{{{id=3|
search_src('modular form')
///
<html><font color="black"><h2>Search Source Code: "modular form"</h2></font><font color="darkpurple"><ol><li><a href="/src/algebras/quatalg/quaternion_algebra.py" target="_blank"><tt>algebras/quatalg/quaternion_algebra.py</tt></a>
<li><a href="/src/databases/cremona.py" target="_blank"><tt>databases/cremona.py</tt></a>
<li><a href="/src/interfaces/magma.py" target="_blank"><tt>interfaces/magma.py</tt></a>
<li><a href="/src/lfunctions/dokchitser.py" target="_blank"><tt>lfunctions/dokchitser.py</tt></a>
<li><a href="/src/modular/arithgroup/arithgroup_generic.py" target="_blank"><tt>modular/arithgroup/arithgroup_generic.py</tt></a>
<li><a href="/src/modular/arithgroup/congroup_gamma1.py" target="_blank"><tt>modular/arithgroup/congroup_gamma1.py</tt></a>
<li><a href="/src/modular/arithgroup/congroup_gammaH.py" target="_blank"><tt>modular/arithgroup/congroup_gammaH.py</tt></a>
<li><a href="/src/modular/dims.py" target="_blank"><tt>modular/dims.py</tt></a>
<li><a href="/src/modular/dirichlet.py" target="_blank"><tt>modular/dirichlet.py</tt></a>
<li><a href="/src/modular/hecke/ambient_module.py" target="_blank"><tt>modular/hecke/ambient_module.py</tt></a>
<li><a href="/src/modular/hecke/element.py" target="_blank"><tt>modular/hecke/element.py</tt></a>
<li><a href="/src/modular/hecke/module.py" target="_blank"><tt>modular/hecke/module.py</tt></a>
<li><a href="/src/modular/local_comp/local_comp.py" target="_blank"><tt>modular/local_comp/local_comp.py</tt></a>
<li><a href="/src/modular/local_comp/smoothchar.py" target="_blank"><tt>modular/local_comp/smoothchar.py</tt></a>
<li><a href="/src/modular/modform/ambient.py" target="_blank"><tt>modular/modform/ambient.py</tt></a>
<li><a href="/src/modular/modform/ambient_R.py" target="_blank"><tt>modular/modform/ambient_R.py</tt></a>
<li><a href="/src/modular/modform/ambient_eps.py" target="_blank"><tt>modular/modform/ambient_eps.py</tt></a>
<li><a href="/src/modular/modform/ambient_g0.py" target="_blank"><tt>modular/modform/ambient_g0.py</tt></a>
<li><a href="/src/modular/modform/ambient_g1.py" target="_blank"><tt>modular/modform/ambient_g1.py</tt></a>
<li><a href="/src/modular/modform/constructor.py" target="_blank"><tt>modular/modform/constructor.py</tt></a>
<li><a href="/src/modular/modform/cuspidal_submodule.py" target="_blank"><tt>modular/modform/cuspidal_submodule.py</tt></a>
<li><a href="/src/modular/modform/defaults.py" target="_blank"><tt>modular/modform/defaults.py</tt></a>
<li><a href="/src/modular/modform/eisenstein_submodule.py" target="_blank"><tt>modular/modform/eisenstein_submodule.py</tt></a>
<li><a href="/src/modular/modform/element.py" target="_blank"><tt>modular/modform/element.py</tt></a>
<li><a href="/src/modular/modform/find_generators.py" target="_blank"><tt>modular/modform/find_generators.py</tt></a>
<li><a href="/src/modular/modform/half_integral.py" target="_blank"><tt>modular/modform/half_integral.py</tt></a>
<li><a href="/src/modular/modform/hecke_operator_on_qexp.py" target="_blank"><tt>modular/modform/hecke_operator_on_qexp.py</tt></a>
<li><a href="/src/modular/modform/notes.py" target="_blank"><tt>modular/modform/notes.py</tt></a>
<li><a href="/src/modular/modform/numerical.py" target="_blank"><tt>modular/modform/numerical.py</tt></a>
<li><a href="/src/modular/modform/periods.py" target="_blank"><tt>modular/modform/periods.py</tt></a>
<li><a href="/src/modular/modform/space.py" target="_blank"><tt>modular/modform/space.py</tt></a>
<li><a href="/src/modular/modform/submodule.py" target="_blank"><tt>modular/modform/submodule.py</tt></a>
<li><a href="/src/modular/modform/test.py" target="_blank"><tt>modular/modform/test.py</tt></a>
<li><a href="/src/modular/modform/tests.py" target="_blank"><tt>modular/modform/tests.py</tt></a>
<li><a href="/src/modular/modform/vm_basis.py" target="_blank"><tt>modular/modform/vm_basis.py</tt></a>
<li><a href="/src/modular/modsym/space.py" target="_blank"><tt>modular/modsym/space.py</tt></a>
<li><a href="/src/modular/overconvergent/genus0.py" target="_blank"><tt>modular/overconvergent/genus0.py</tt></a>
<li><a href="/src/modular/overconvergent/hecke_series.py" target="_blank"><tt>modular/overconvergent/hecke_series.py</tt></a>
<li><a href="/src/modular/quatalg/brandt.py" target="_blank"><tt>modular/quatalg/brandt.py</tt></a>
<li><a href="/src/modular/ssmod/ssmod.py" target="_blank"><tt>modular/ssmod/ssmod.py</tt></a>
<li><a href="/src/quadratic_forms/quadratic_form__theta.py" target="_blank"><tt>quadratic_forms/quadratic_form__theta.py</tt></a>
<li><a href="/src/schemes/elliptic_curves/BSD.py" target="_blank"><tt>schemes/elliptic_curves/BSD.py</tt></a>
<li><a href="/src/schemes/elliptic_curves/ell_rational_field.py" target="_blank"><tt>schemes/elliptic_curves/ell_rational_field.py</tt></a>
<li><a href="/src/schemes/elliptic_curves/modular_parametrization.py" target="_blank"><tt>schemes/elliptic_curves/modular_parametrization.py</tt></a>
<li><a href="/src/schemes/elliptic_curves/padic_lseries.py" target="_blank"><tt>schemes/elliptic_curves/padic_lseries.py</tt></a>
<li><a href="/src/schemes/elliptic_curves/padics.py" target="_blank"><tt>schemes/elliptic_curves/padics.py</tt></a>
</ol></font></html>
}}}

<p><span style="font-size: small; font-family: arial, helvetica, sans-serif;">By clicking on any of the links, you can go look at the source code, complete with documentation.</span></p>
<p><span style="font-size: small; font-family: arial, helvetica, sans-serif;">Since this can all be found online, you can also do google searches of the sagemath website to find documentation.</span></p>
<h3><span style="font-size: small; font-family: arial, helvetica, sans-serif;">Example: type "modular form site:www.sagemath.org" into your google search bar</span></h3>
<h3><span style="font-size: small; font-family: arial, helvetica, sans-serif;">Exercise: Create a p-adic field.</span></h3>

{{{id=5|

///
}}}

<p><span style="font-family: arial, helvetica, sans-serif; font-size: small;">Now for the challenge problem. &nbsp;:)</span></p>
<h3><span style="font-family: arial, helvetica, sans-serif; font-size: small;">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.</span></h3>

{{{id=8|

///
}}}

<p><span style="font-family: arial, helvetica, sans-serif; font-size: small;">When you are done, please save your worksheet and e-mail it aly.deines@gmail.com.</span></p>