On 9/17/07, William Stein <[EMAIL PROTECTED]> wrote: > On 9/17/07, Peter G. Doyle <[EMAIL PROTECTED]> wrote: > > I have recently discovered SAGE, which I think is really quite amazing. > > > > I am contemplating introducing the students in our honors calculus course > > here at Dartmouth to SAGE. I'm a bit leery about this, since I'm new to > SAGE > > myself. I'm wondering if you can suggest materials (e.g. sample > worksheets) > > I could crib from. > > The time might not quite by right for doing this, since there isn't very > much > written about using SAGE for calculus beyond the reference manual chapter, > which you already know about. I will teach calculus 1 year from now, and > have > my own very nice notes (which I made by sitting in on the best calculus > teacher's > class at UCSD), and will change them to use SAGE. But that project is a > year away. I'm not aware of anybody else creating extensive notes on using > SAGE for calculus yet. (I'm cc'ing this to sage-devel -- if anybody there > has > any comments, please make them.)
I am working on it. It is a huge job and my time is limited so progress is slow. I was planning on using your notes for Calc 2 since I don't think it covers calc 1 (I could be misremembering...). For calc 1, I'll try using Granville's old text (public domain); for calc 3, using Sean Mauch (also public domain); and for DEs, using my own notes. I've looked at lots of others on the web but they were either licensed wrong or unsuitable for some other reason. > > That said, one of the main longterm goals of SAGE is to provide a viable > alternative > to Maple, Mathematica, Matlab, and Magma, and for that to happen being up > to snuff for calculus teaching is very important. (For me longterm means > "about > a year".) > > > Some observations about SAGE. > > > > -- It would be great to have a short, simple description of > > how to save and retrieve worksheets. And maybe there could be an > > `Open Worksheet' option on the file menu, right below `New Worksheet', > > where it usually comes. It took be the longest time to find the `Home' > button! > > > I agree. This has bugged me too. This is now trac ticket #682: > > http://trac.sagemath.org/sage_trac/ticket/682 > > > -- It's still far from clear to me what `downloading' and `uploading' are > > supposed to mean. > > > It's supposed to be exactly the same as "save" and "open". Maybe I should > change the names to "save" and "open"? Right now the terminology just > follows Google Documents (which inspired much of the notebook's layout). > > > -- When I install an updated version of SAGE, my old worksheets aren't > > available. I've been finding them, opening them with a text editor, and > > copying the text into a new worksheet. I bet there is a better way. > > That's very weird. > There was some slight change in the root account versus admin account > that might be responsible for this. It never happen again in the future. > > > -- I think that the Python convention of not including the upper bound > > in a sum is a real problem. > > > > sage: sum(i for i in range(1,10)) > > 45 > > > > I understand this is a fundamental convention in Python, and that it is > very > > natural for people used to malloc(), but I worry that this will be a > constant > > headache for students (and professors!). > > Indeed, this is perhaps one of _the_ fundamental conventions. > > > > SAGE understands that I want to > > include the upper limit when I ask for a taylor series: > > > > sage: taylor(exp(x),x,0,3) > > 1 + x + x^2/2 + x^3/6 > > Maybe that is a bug? :-) > > > But in a sum it pretends not to understand what I mean. I guess I could > > define `myrange' to include the upper bound. But I think it would be > better > > if you could come up with a nice, clean way to protect users from > > this aspect of Python, as you have protected us from other aspects > > (like ^, /, long integers). > > it would be easy to do this: > > sage: import __builtin__; range = lambda a,b: __builtin__.range(a,b+1) > sage: range(1,10) > [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] > > However, I am pretty sure people would complain about that way way > more than they complain about the current situation, especially because > a huge amount of code from books on Python wouldn't work anymore. > There is a good reason range is defined the way it is in Python. > With the above, you have to do funny things like this, i.e., put > in len(v)-1, which is equally unnatural: > > sage: v = [1,5,17] > sage: for i in range(0,len(v)-1): print v[i] > ....: > 1 > 5 > 17 > > > A better solution would, as you suggest, to define a function like > range -- but not called range -- that includes both endpoints. > One possibly nasty possibility would be to allow Magma-like > notation: > sage: [1..4] > [1, 2, 3, 4] > I can't think of any situation where .. (not in a string) is valid Python, > so the above might be a reasonable option. > > How does one specify an integer range in Maple, Mathematica, Maxima? > > > -- Speaking of long integers, I think this is probably a bug: > > sage: sum(i for i in xrange(10^6)) > > 499999500000L > > That is not a bug. Python's native long integer type has the unfortunately > very annoying property that it prints with an L suffixed. You can make it > back into a regular SAGE integer by doing the following: > > sage: Integer(sum(i for i in xrange(10^6))) > 499999500000 > > Some remarks: > * Small Python integers (like in the sum above) are much faster for > arithmetic > than SAGE's large integer type (Integer). > * SAGE's large integer type is vastly faster than Python's integers when > the > integers are big. It's based on GMP. > * You could do the sum above entirely with SAGE GMP integers using the > xsrange command, but it would be much slower: > sage: time sum(i for i in xrange(10^6)) > CPU times: user 0.10 s, sys: 0.01 s, total: 0.11 s > Wall time: 0.11 > 499999500000 > sage: time sum(i for i in xsrange(10^6)) > CPU times: user 2.96 s, sys: 0.03 s, total: 2.98 s > Wall time: 3.01 > 499999500000 > Part of the problem is that xsrange is in pure python -- it's not > optimized at all. > > > -- The response to `latex?' seems to be out of date. > > > > %latex > > The equation y^2 = x^3 + x defines an elliptic curve. > > We have 2006 = SAGE{factor(2006)}. > > > > I thought it was a great credit to SAGE that when I edited the sample > input > > in what seemed the obvious way, enclosing the math in $$ and changing SAGE > > to \sage, that it worked as expected. > > > Ah, you've found a bug. What happens is that all SAGE documentation > is de-texed before displaying in the notebook (in plain text format). > Unfortunately > this detexing makes the documentation for latex appear completely > wrong! > > > The solution is probably to come up with a notation to tell SAGE not > to do the detexing. This is now trac #683. > > > -- Regarding latex, it would be great to have a simple description of > > how to use the notebook interface to produce a paper in latex > incorporating > > sage input and output, > > It would be great if it were possible to do that. Creating a "save as > latex" > option in the notebook has been on the todo list for a long time. I have > some "big plans" along these lines (in both directions)... > > > -- I haven't yet figured out how to run consistency tests (making sure > > that examples have the correct output) within a sage notebook. > > This is also not implemented. If the code doesn't take to long to compute, > I usually just click "Evaluate All" under Action. Then the output you see > is definitely what SAGE produced. > > Another thing you can do -- if foo.tex is a tex file that contains > SAGE sessions in verbatim environments, then you can type > sage -t foo.tex > to make sure they work as claimed. The SAGE sessions > have to be like from the command line -- which you can get by clicking > "Text" in the notebook, which will reformat a notebook session to > look like a command line session (though it doesn't work for things > that don't make sense at the command line, e.g., %latex). > Also, if one verbatim block depends on the results of another > you have to do this: > > \begin{verbatim} > sage: a = 5 > \end{verbatim}%link > > > .... > > %link > \begin{verbatim} > sage: print a > 5 > \end{verbatim} > > > > -- William > > > > --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-devel@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sage-devel URLs: http://sage.scipy.org/sage/ and http://modular.math.washington.edu/sage/ -~----------~----~----~----~------~----~------~--~---