diff -r 88a01948450d -r d33698326409 getting_started_with_sage_notebook/script.rst --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/getting_started_with_sage_notebook/script.rst Wed Dec 01 16:51:35 2010 +0530 @@ -0,0 +1,325 @@ +.. Objectives +.. ---------- + +.. Clearly state the objectives of the LO (along with RBT level) + +.. By the end of this tutorial, you should -- + +.. #. Know what Sage and Sage notebook are. +.. #. Be able to start a Sage shell or notebook +.. #. Be able to start using the notebook +.. #. Be able to create new worksheets +.. #. Know about the menu options available +.. #. Know about the cells in the worksheet +.. #. Be able to evaluate cells, create and delete cells, navigate them. +.. #. Be able to make annotations in the worksheet +.. #. Be able to use tab completion. +.. #. Be able to use code from other languages in the cells. + +.. Prerequisites +.. ------------- + +.. None. + +.. Author : Madhu + Internal Reviewer : Punch + External Reviewer : + Language Reviewer : Bhanukiran + Checklist OK? : <15-11-2010, Anand, OK> [2010-10-05] + + +Script +------ + +{{{ Show the slide containing the title }}} + +Hello friends. Welcome to this spoken tutorial on Getting started with +Sage and Sage notebook. + +{{{ Show the slide containing the outline }}} + +In this tutorial, we will learn what Sage is, what is Sage notebook, +how to start and use the sage notebook. In the notebook we will be +specifically learning how to execute our code, how to write +annotations and other content, typesetting the content and how to use +the offline help available. + +{{{ Show the slide on what is Sage }}} + +To start with, What is Sage? Sage is a free, open-source mathematical +software. Sage can do a lot of math stuff for you including, but not +limited to, algebra, calculus, geometry, cryptography, graph theory +among other things. It can also be used as aid in teaching and +research in any of the areas that Sage supports. So let us start Sage +now + +{{{ Shift to terminal }}} + +We are assuming that you have Sage installed on your computer now. If +not please visit the page +http://sagemath.org/doc/tutorial/introduction.html#installation for +the tutorial on how to install Sage. + + +Let us now learn how to start Sage. On the terminal type:: + + sage + +This should start a new Sage shell with the prompt sage: which looks +like this + +{{{ Show what is displayed on the terminal }}} + +So now we can type all the commands that Sage supports here. But Sage +comes bundled with a much more elegant tool called Sage +Notebook? What is Sage Notebook? Sage Notebook provides a web based +user interface to use Sage. So once we have a Sage notebook server up +and running, all we want is a browser to access the Sage +functionality. For example there is an official instance of Sage +Notebook server running at http://sagenb.org You can visit that page, +create an account there and start using Sage! So all you need is just +a browser, a modern browser + +{{{ Intentional *cough* *cough* }}} + +#[[Bhanu: what? Are you serious?]] + +to use Sage and nothing else! The Sage notebook also provides a +convenient way of sharing and publishing our work, which is very handy +for research and teaching. + +However we can also run our own instances of Sage notebook servers on +all the computers we have a local installation of Sage. To start the +notebook server just type:: + + notebook() + +on the Sage prompt. This will start the Sage Notebook server. If we +are starting the notebook server for the first time, we are prompted +to enter the password for the admin. Type the password and make a note +of it. After this Sage automatically starts a browser page for you +with the notebook opened. + +If it doesn't automatically start a browser page check if the Notebook +server started and there were no problems. If so open your browser and +in the address bar type the URL shown in the instructions upon running +the notebook command on the sage prompt. + +{{{ The notebook() command gives an instruction telling +Open your web browser to http://localhost:8000. Point towards it }}} + +In our case it is http://localhost:{{{ Tell whatever is shown }}} + +{{{ Show the browser with Sage notebook }}} + +If you are not logged in yet, it shows the Notebook home page and +textboxes to type the username and the password. You can use the +username 'admin' and the password you gave while starting the notebook +server for the first time. There are also links to recover forgotten +password and to create new accounts. + +{{{ If you are logged in tell that you are logged in, log out and show +what is said above for the login page }}} + +Once we are logged in with the admin account we can see the notebook +admin page. A notebook can contain a collection of Sage Notebook +worksheets. Worksheet is basically a working area. This is where +we enter all the Sage commands on the notebook. + +The admin page lists all the worksheets created. On the topmost part +of this page we have the links to various pages. + +{{{ Whenever you talk on an individual link point your mouse towards +the link. For each of the link go to the page and explain as below }}} + +The home link takes us to the admin home page. The published link +takes us to the page which lists all the published worksheets. The log +link has the complete log of all the actions we did on the +notebook. We have the settings link where we can configure our notebook, +the notebook server, create and mangage accounts. We have a +link to help upon clicking opens a new window with the complete help +of Sage. The entire documentation of Sage is supplied with Sage for +offline reference and this help link is the way to get into it. Then +we can report bugs about Sage by clicking on Report a Problem link and +there is a link to sign out of the notebook. + +We can create a new worksheet by clicking New Worksheet link + +{{{ Click on the link }}} + +Sage prompts you for a name for the worksheet. Let us name the +worksheet as nbtutorial. Now we have our first worksheet which is +empty. + +A worksheet will contain a collection of cells. Every Sage command +must be entered in this cell. Cell is equivalent to the prompt on +console. When we create a new worksheet, to start with we will have +one empty cell. Let us try out some math here:: + + 2 + 2 + 57.1 ^ 100 + +The cap operator is used for exponentiation. If you observed carefully +we typed two commands but the output of only last command was +displayed. By default each cell displays the result of only the last +operation. We have to use print statement to display all the results +we want to be displayed. + +{{{ Demonstrate creating a new cell }}} + +Now to perform more operations we want more cells. So how do we create +a new cell? It is very simple. As we hover our mouse above or below +the existing cells we see a blue line, by clicking on this new line we +can create a new cell. + +We have a cell, we have typed some commands in it, but how do we +evaluate that cell? Pressing Shift along with Enter evaluates the +cell. Alternatively we can also click on the evaluate link to evaluate +the cell + +{{{ Evaluate the cell and demonstrate for both methods separately +}}}:: + + matrix([[1,2], [3,4]])^(-1) + +After we create many cells, we may want to move between the cells. To +move between the cells use Up and Down arrow keys. Also clicking on +the cell will let you edit that particular cell. + +{{{ Move between two cells created }}} + +To delete a cell, clear the contents of the cell and hit backspace + +{{{ Clear and demonstrate deleting the cell }}}:: + + Makes no sense + +If you want to add annotations in the worksheet itself on the blue +line that appears on hovering the mouse around the cell, Hold Shift +and click on the line. This creates a What You See Is What You Get +cell. + +{{{ Create a HTML editable cell }}} + +We can make our text here rich text. We can make it bold, Italics, we +can create bulleted and enumerated lists in this area:: + + This text contains both the **bold** text and also *italicised* + text. + It also contains bulleted list: + * Item 1 + * Item 2 + It also contains enumerate list: + 1. Item 1 + 2. Item 2 + +In the same cell we can display typeset math using the LaTeX like +syntax:: + + $\int_0^\infty e^{-x} \, dx$ + +We enclose the math to be typeset within $ and $ or $$ and $$ as in +LaTeX. + +We can also obtain help for a particular Sage command or function +within the worksheet itself by using a question mark following the +command:: + + sin? + +Evaluating this cell gives me the entire help for the sin function +inline on the worksheet itself. Similarly we can also look at the +source code of each command or function using double question mark:: + + matrix?? + +Sage notebook also provides the feature for autocompletion. To +autocomplete a command type first few unique characters and hit tab +key:: + + sudo + +To see all the commands starting with a specific name type those +characters and hit tab:: + + plo + +To list all the methods that are available for a certain variable or +a datatype we can use the variable name followed by the dot to access +the methods available on it and then hit tab:: + + s = 'Hello' + s.rep + +The output produced by each cell can be one of the three states. It +can be either the full output, or truncated output or hidden output. +The output area will display the error if the Sage code we wrote in +the cell did not successfully execute:: + + a, b = 10 + +{{{ Show the three states }}} + +The default output we obtained now is a truncated output. Clicking at +the left of the output area when the mouse pointer turns to hand gives +us the full output, clicking again makes the output hidden and it +cycles. + +Lastly, Sage supports a variety of languages and each cell on the +worksheet can contain code written in a specific language. It is +possible to instruct Sage to interpret the code in the language we +have written. This can be done by putting percentage sign(%) followed +by the name of the language. For example, to interpret the cell as +Python code we put:: + + %python + +as the first line in the cell. Similarly we have: %sh for shell +scripting, %fortran for Fortran, %gap for GAP and so on. Let us see +how this works. Say I have an integer. The type of the integer in +default Sage mode is +{{{ Read the output }}}:: + + a = 1 + type(a) + + Output: + +We see that Integers are Sage Integers. Now let us put %python as the +first line of the cell and execute the same code snippet:: + + %python + a = 1 + type(a) + + Output: + +Now we see that the integer is a Python integer. Why? Because now we +instructed Sage to interpret that cell as Python code. + +This brings us to the end of the tutorial on using Sage. We learnt +quite a lot about using the Notebook User Interface of Sage. We are +now confident that we can comfortably use the notebook to learn more +about Sage in the following tutorials. Let us summarize what we +learnt. In this session we learnt + + * What is Sage + * How to start Sage shell + * What is Sage notebook + * How to start the Sage notebook + * How to create accounts and start using the notebook + * How to create new worksheets + * The menus available on the notebook + * About cells in the worksheet + * Methods to evaluate the cell, create new cells, delete the cells + and navigate around the cells + * To make annotations in the worksheet + * Tab completions + * And embedding code of other scripting languages in the cells + +{{{ Show the "sponsored by FOSSEE" slide }}} + +This tutorial was created as a part of FOSSEE project, NME ICT, MHRD India + +Hope you have enjoyed and found it useful. +Thank you!