authoring interactive sage worksheets - rob beezer - university of
TRANSCRIPT
![Page 1: Authoring Interactive Sage Worksheets - Rob Beezer - University of](https://reader030.vdocuments.net/reader030/viewer/2022021008/62039f60da24ad121e4b8c0a/html5/thumbnails/1.jpg)
Authoring Interactive Sage Worksheets
Department of Mathematics and Computer ScienceUniversity of Puget Sound
Sage Days 15University of Washington
May 16, 2009
![Page 2: Authoring Interactive Sage Worksheets - Rob Beezer - University of](https://reader030.vdocuments.net/reader030/viewer/2022021008/62039f60da24ad121e4b8c0a/html5/thumbnails/2.jpg)
Goals
Write about using Sage, and relevant mathematics
Write about using mathematics, and relevant Sage
Write about mathematics, with a little help from Sage
Read about using Sage, with Sage present
Read about using mathematics, with Sage present
Read about Sage and mathematics, and take notes (=TinyMCE)(I won’t talk much about this, but it should be obvious)
Convert a Sage worksheet into a high-quality publishable print format(Thursday night’s idea)
Rob Beezer (U Puget Sound) Authoring Interactive Sage Worksheets Sage Days 15 May 16, 2009 2 / 15
![Page 3: Authoring Interactive Sage Worksheets - Rob Beezer - University of](https://reader030.vdocuments.net/reader030/viewer/2022021008/62039f60da24ad121e4b8c0a/html5/thumbnails/3.jpg)
Goals
Write about using Sage, and relevant mathematics
Write about using mathematics, and relevant Sage
Write about mathematics, with a little help from Sage
Read about using Sage, with Sage present
Read about using mathematics, with Sage present
Read about Sage and mathematics, and take notes (=TinyMCE)(I won’t talk much about this, but it should be obvious)
Convert a Sage worksheet into a high-quality publishable print format(Thursday night’s idea)
Rob Beezer (U Puget Sound) Authoring Interactive Sage Worksheets Sage Days 15 May 16, 2009 2 / 15
![Page 4: Authoring Interactive Sage Worksheets - Rob Beezer - University of](https://reader030.vdocuments.net/reader030/viewer/2022021008/62039f60da24ad121e4b8c0a/html5/thumbnails/4.jpg)
Goals
Write about using Sage, and relevant mathematics
Write about using mathematics, and relevant Sage
Write about mathematics, with a little help from Sage
Read about using Sage, with Sage present
Read about using mathematics, with Sage present
Read about Sage and mathematics, and take notes (=TinyMCE)(I won’t talk much about this, but it should be obvious)
Convert a Sage worksheet into a high-quality publishable print format(Thursday night’s idea)
Rob Beezer (U Puget Sound) Authoring Interactive Sage Worksheets Sage Days 15 May 16, 2009 2 / 15
![Page 5: Authoring Interactive Sage Worksheets - Rob Beezer - University of](https://reader030.vdocuments.net/reader030/viewer/2022021008/62039f60da24ad121e4b8c0a/html5/thumbnails/5.jpg)
Goals
Write about using Sage, and relevant mathematics
Write about using mathematics, and relevant Sage
Write about mathematics, with a little help from Sage
Read about using Sage, with Sage present
Read about using mathematics, with Sage present
Read about Sage and mathematics, and take notes (=TinyMCE)(I won’t talk much about this, but it should be obvious)
Convert a Sage worksheet into a high-quality publishable print format(Thursday night’s idea)
Rob Beezer (U Puget Sound) Authoring Interactive Sage Worksheets Sage Days 15 May 16, 2009 2 / 15
![Page 6: Authoring Interactive Sage Worksheets - Rob Beezer - University of](https://reader030.vdocuments.net/reader030/viewer/2022021008/62039f60da24ad121e4b8c0a/html5/thumbnails/6.jpg)
Goals
Write about using Sage, and relevant mathematics
Write about using mathematics, and relevant Sage
Write about mathematics, with a little help from Sage
Read about using Sage, with Sage present
Read about using mathematics, with Sage present
Read about Sage and mathematics, and take notes (=TinyMCE)(I won’t talk much about this, but it should be obvious)
Convert a Sage worksheet into a high-quality publishable print format(Thursday night’s idea)
Rob Beezer (U Puget Sound) Authoring Interactive Sage Worksheets Sage Days 15 May 16, 2009 2 / 15
![Page 7: Authoring Interactive Sage Worksheets - Rob Beezer - University of](https://reader030.vdocuments.net/reader030/viewer/2022021008/62039f60da24ad121e4b8c0a/html5/thumbnails/7.jpg)
Goals
Write about using Sage, and relevant mathematics
Write about using mathematics, and relevant Sage
Write about mathematics, with a little help from Sage
Read about using Sage, with Sage present
Read about using mathematics, with Sage present
Read about Sage and mathematics, and take notes (=TinyMCE)(I won’t talk much about this, but it should be obvious)
Convert a Sage worksheet into a high-quality publishable print format(Thursday night’s idea)
Rob Beezer (U Puget Sound) Authoring Interactive Sage Worksheets Sage Days 15 May 16, 2009 2 / 15
![Page 8: Authoring Interactive Sage Worksheets - Rob Beezer - University of](https://reader030.vdocuments.net/reader030/viewer/2022021008/62039f60da24ad121e4b8c0a/html5/thumbnails/8.jpg)
Goals
Write about using Sage, and relevant mathematics
Write about using mathematics, and relevant Sage
Write about mathematics, with a little help from Sage
Read about using Sage, with Sage present
Read about using mathematics, with Sage present
Read about Sage and mathematics, and take notes (=TinyMCE)(I won’t talk much about this, but it should be obvious)
Convert a Sage worksheet into a high-quality publishable print format(Thursday night’s idea)
Rob Beezer (U Puget Sound) Authoring Interactive Sage Worksheets Sage Days 15 May 16, 2009 2 / 15
![Page 9: Authoring Interactive Sage Worksheets - Rob Beezer - University of](https://reader030.vdocuments.net/reader030/viewer/2022021008/62039f60da24ad121e4b8c0a/html5/thumbnails/9.jpg)
Today’s Talk
LATEX
Dan Drake’s SageTeX
Eitan Guiari’s tex4ht
Davide Cervone’s jsMath
Sage notebook and worksheets
Sage @interact framework
Taylor Series in the Classroom
Rob Beezer (U Puget Sound) Authoring Interactive Sage Worksheets Sage Days 15 May 16, 2009 3 / 15
![Page 10: Authoring Interactive Sage Worksheets - Rob Beezer - University of](https://reader030.vdocuments.net/reader030/viewer/2022021008/62039f60da24ad121e4b8c0a/html5/thumbnails/10.jpg)
LATEX
Well-known to many mathematicians
Sources are long-lived (1980’s for me)
Widely available, many platforms
Many add-on packages
A comfortable place to write for many mathematicians, scientistsSo a low barrier to getting started
LaTeX Public Project License (LPPL)
Rob Beezer (U Puget Sound) Authoring Interactive Sage Worksheets Sage Days 15 May 16, 2009 4 / 15
![Page 11: Authoring Interactive Sage Worksheets - Rob Beezer - University of](https://reader030.vdocuments.net/reader030/viewer/2022021008/62039f60da24ad121e4b8c0a/html5/thumbnails/11.jpg)
SageTeX
Designed to allow Sage commands to be placed inline with LATEX
Creates latex() and plot() output “on-the-fly”
GNU Public License (GPL)
Extensions?
\sageinline{}small amounts Sage code verbatim (syntax package)
\begin{sageverbatim}\end{sageverbatim} environmentproduces a Sage input cell
\begin{sagecell}[output]Sage input, optionally with computed output cell
Rob Beezer (U Puget Sound) Authoring Interactive Sage Worksheets Sage Days 15 May 16, 2009 5 / 15
![Page 12: Authoring Interactive Sage Worksheets - Rob Beezer - University of](https://reader030.vdocuments.net/reader030/viewer/2022021008/62039f60da24ad121e4b8c0a/html5/thumbnails/12.jpg)
Sample SageTeX Extensions
For example th e code below w i l l ( 1 ) c r e a t e\ s a g e i n l i n e {G} as the symmetr ic group onf i v e symbols , ( 2 ) s p e c i f y \ s a g e i n l i n e { s igma }as an e le me nt o f \ s a g e i n l i n e {G} , ( 3 ) use\ s a g e i n l i n e { s igma } as t he g e n e r a t o r o f ac y c l i c subgroup \ s a g e i n l i n e {H} , ( 4 ) l i s ta l l th e e l e m e n t s o f \ s a g e i n l i n e {H} . I nmore m a t h e m a t i c a l n o t a t i o n , we might w r i t e$\ l ang l e ( 1\ , 2\ , 3 ) ( 4\ , 5 )\ rangle=H\ subseteq G=S 5 $ .%\ b e g i n { s a g e v e r b a t i m }G = SymmetricGroup ( 5 )s igma = G( ” ( 1 , 2 , 3 ) ( 4 , 5 ) ” )H = G . subgroup ( [ s igma ] )H. l i s t ( )\end{ s a g e v e r b a t i m }
Rob Beezer (U Puget Sound) Authoring Interactive Sage Worksheets Sage Days 15 May 16, 2009 6 / 15
![Page 13: Authoring Interactive Sage Worksheets - Rob Beezer - University of](https://reader030.vdocuments.net/reader030/viewer/2022021008/62039f60da24ad121e4b8c0a/html5/thumbnails/13.jpg)
Sample Input Cell
As a workbook
As a PDF
Rob Beezer (U Puget Sound) Authoring Interactive Sage Worksheets Sage Days 15 May 16, 2009 7 / 15
![Page 14: Authoring Interactive Sage Worksheets - Rob Beezer - University of](https://reader030.vdocuments.net/reader030/viewer/2022021008/62039f60da24ad121e4b8c0a/html5/thumbnails/14.jpg)
tex4ht
Translator - “TEX for HyperText”
NSF funded project
Creates HTML, XML/XHTML/MathML, JSMath, OpenOffice,DocBook, Text Encoding Initiative, JavaHelp, speech (!)
Two small platform-specific binaries, compiles easily from source
Three-pass operation, uses unmodified TEX to create DVI
LATEX packages are modified for use, by request (very responsive)
Fast and accurate
More finicky than TEX, like unmatched (,) in text
LaTeX Public Project License (LPPL)
Rob Beezer (U Puget Sound) Authoring Interactive Sage Worksheets Sage Days 15 May 16, 2009 8 / 15
![Page 15: Authoring Interactive Sage Worksheets - Rob Beezer - University of](https://reader030.vdocuments.net/reader030/viewer/2022021008/62039f60da24ad121e4b8c0a/html5/thumbnails/15.jpg)
jsMath
Render a (large) subset of TEX in web browser
Relies heavily on Javascript
Scalable fonts. Locally, or from a server
Well-integrated, tested in notebook
Paste tex4ht-generated jsMath into a worksheet as textand it “just works”
Apache 2.0 License
Rob Beezer (U Puget Sound) Authoring Interactive Sage Worksheets Sage Days 15 May 16, 2009 9 / 15
![Page 16: Authoring Interactive Sage Worksheets - Rob Beezer - University of](https://reader030.vdocuments.net/reader030/viewer/2022021008/62039f60da24ad121e4b8c0a/html5/thumbnails/16.jpg)
tex4ht Customization
A tex4ht “configuration” fileTags Sage code blocks
\Preamble { xhtml , jsmath , i n f o }\ S c r i p t E n v { s a g e v e r b a t i m }
{\ ifvmode \ I g n o r e P a r \ f i\EndP\HCode{<sage >}\NoFonts\break}
{\ ifvmode \ I g n o r e P a r \ f i\EndP\HCode{</sage >}\EndNoFonts\csname par \endcsname\ShowPar}
\ b e g i n {document}\EndPreamble
Rob Beezer (U Puget Sound) Authoring Interactive Sage Worksheets Sage Days 15 May 16, 2009 10 / 15
![Page 17: Authoring Interactive Sage Worksheets - Rob Beezer - University of](https://reader030.vdocuments.net/reader030/viewer/2022021008/62039f60da24ad121e4b8c0a/html5/thumbnails/17.jpg)
Worksheets and @interact
Sage’s framework for interactive demonstration
@interact decorator on a function
Function arguments create checkboxes, text input fields, sliders
GNU Public License (GPL)
Rob Beezer (U Puget Sound) Authoring Interactive Sage Worksheets Sage Days 15 May 16, 2009 11 / 15
![Page 18: Authoring Interactive Sage Worksheets - Rob Beezer - University of](https://reader030.vdocuments.net/reader030/viewer/2022021008/62039f60da24ad121e4b8c0a/html5/thumbnails/18.jpg)
Sample Embedded Sage Interact
\beg in{ s ageve rba t im}%auto@ i n t e r a c tdef ( n = i npu t box ( d e f a u l t =12, l a b e l = ” C y c l i c group o f o r d e r : ” , t ype=I n t e g e r ) ) :
c y c l i c = Cyc l i cPe rmuta t i onGroup ( n )subgroups = c y c l i c . c o n j u g a c y c l a s s e s s u b g r o u p s ( )html ( ” A l l subgroups o f a c y c l i c group o f o r d e r $%s$\n” % l a t e x ( n ) )t a b l e = ”$\\beg in{ a r r a y}{ l l }”f o r sg i n subgroups :
t a b l e = t a b l e + l a t e x ( sg . o r d e r ( ) ) + \” & \\ l e f t \\ l a n g l e ” + l a t e x ( sg . gens ( ) [ 0 ] ) + \”\\ r i g h t\\ r a n g l e\\\\”
t a b l e = t a b l e + ”\\end{ a r r a y}$”html ( t a b l e )html ( ”\nHint : $%s$ f a c t o r s as $%s$ ” % ( l a t e x ( n ) , l a t e x ( f a c t o r ( n ) ) ) )
\end{ s ageve rba t im}
Rob Beezer (U Puget Sound) Authoring Interactive Sage Worksheets Sage Days 15 May 16, 2009 12 / 15
![Page 19: Authoring Interactive Sage Worksheets - Rob Beezer - University of](https://reader030.vdocuments.net/reader030/viewer/2022021008/62039f60da24ad121e4b8c0a/html5/thumbnails/19.jpg)
Sample Embedded Sage Interact
Rob Beezer (U Puget Sound) Authoring Interactive Sage Worksheets Sage Days 15 May 16, 2009 13 / 15
![Page 20: Authoring Interactive Sage Worksheets - Rob Beezer - University of](https://reader030.vdocuments.net/reader030/viewer/2022021008/62039f60da24ad121e4b8c0a/html5/thumbnails/20.jpg)
Putting it All Together
“Regular” LATEXfor narrative, mathematics, references, sectioning, etc
SageTeX for inline Sage code, Sage cells (input/output)do the right thing for print AND for worksheet as targets
@interact for interactive functionality
Workflow
Process with tex4ht
Cut/paste into a worksheet, or automate *.sws creation
Wish List
Extensions to SageTeX
Cross-worksheet links in notebook
Rob Beezer (U Puget Sound) Authoring Interactive Sage Worksheets Sage Days 15 May 16, 2009 14 / 15
![Page 21: Authoring Interactive Sage Worksheets - Rob Beezer - University of](https://reader030.vdocuments.net/reader030/viewer/2022021008/62039f60da24ad121e4b8c0a/html5/thumbnails/21.jpg)
Putting it All Together
“Regular” LATEXfor narrative, mathematics, references, sectioning, etc
SageTeX for inline Sage code, Sage cells (input/output)do the right thing for print AND for worksheet as targets
@interact for interactive functionality
Workflow
Process with tex4ht
Cut/paste into a worksheet, or automate *.sws creation
Wish List
Extensions to SageTeX
Cross-worksheet links in notebook
Rob Beezer (U Puget Sound) Authoring Interactive Sage Worksheets Sage Days 15 May 16, 2009 14 / 15
![Page 22: Authoring Interactive Sage Worksheets - Rob Beezer - University of](https://reader030.vdocuments.net/reader030/viewer/2022021008/62039f60da24ad121e4b8c0a/html5/thumbnails/22.jpg)
Putting it All Together
“Regular” LATEXfor narrative, mathematics, references, sectioning, etc
SageTeX for inline Sage code, Sage cells (input/output)do the right thing for print AND for worksheet as targets
@interact for interactive functionality
Workflow
Process with tex4ht
Cut/paste into a worksheet, or automate *.sws creation
Wish List
Extensions to SageTeX
Cross-worksheet links in notebook
Rob Beezer (U Puget Sound) Authoring Interactive Sage Worksheets Sage Days 15 May 16, 2009 14 / 15
![Page 23: Authoring Interactive Sage Worksheets - Rob Beezer - University of](https://reader030.vdocuments.net/reader030/viewer/2022021008/62039f60da24ad121e4b8c0a/html5/thumbnails/23.jpg)
Final Example - Taylor Series in the Classroom
A Sage worksheet designed to include interacts
PDF version for students as well
Rob Beezer (U Puget Sound) Authoring Interactive Sage Worksheets Sage Days 15 May 16, 2009 15 / 15