William wrote: > I think SAGE might potentially greatly benefit from certain types of new > documentation. <snip>
I have been thinking about the topic of SAGE's documentation for a couple of months now and here is what I have come up with so far. Before one can determine what SAGE's documentation should look like, I think that one must first try to gain an understanding of how the technologies that SAGE depends on ( and also technologies in general ) are going to evolve over the next 20 years. The most detailed projections I currently know of are contained the book "The Singularity Is Near" by Ray Kurzweil and if his projections are even partially correct, the world is going to undergo enormous changes over the next 20 years that will significantly impact SAGE on a number of levels. I highly recommend that the members of the SAGE documentation team read this book ( or an equivalent ) before making a plan for SAGE's documentation so that projections about how SAGE is going to have to evolve to keep pace with these changes can be made. My thought is that commercial mathematics software companies like Wolfram Research are making these kind of projections and I think that this should be done for SAGE too. Moving to more concrete issues, a weakness I have noticed in the documentation for most mathematics software that I have used is that it seems like it consists of shorthand explanations for the underlying topics that are being covered. It feels like perhaps 80% of the documentation is simply missing. The documentation is also not well organized and it tends to jump from topic to topic in a somewhat haphazard way. I think the way that commercial software like Mathematica has overcome this weakness is that numerous people have written books and articles about Mathematica which attempt to explain it better than its standard documentation does. Even though the core documentation is inefficient, I think that Mathematica has still been able to move forward because of the enormous amount of external support it receives. I found Maxima's documentation to be fairly weak and TeXmacs' documentation was incomplete and confusing. SAGE's documentation is actually pretty good and the support on its lists is excellent. My thoughts on making SAGE's documentation even better include developing a detailed topic dependency map for SAGE and then having the documentation conform to this map. When a person initially encounters SAGE, the first thing I imagine them doing is locating the topic on the map that is of interest to them ( Calculus for example ) and then navigating backwards through the map until they reach a level that matches their competency level. They should then work forward through all of the documentation which exists between where their competency starts and the topic they are interested in. Here is an example of the map I have been using to develop what I have referred to in the support list as pre-SAGE educational materials: http://206.21.94.60/tkosan/misc/example_paths_map_v1.0.pdf This specific map contains some topics that are not directly related to SAGE, but hopefully it is still able to illustrate what a SAGE topic map might look like. As for the topics themselves, instead of being presented in shorthand form, I think topic documentation should be more complete with a clear explanation of the fundamental principles that underly the topic along with how SAGE can be used to work with these principles. I have just begun working on the "SAGE Beginner's Tutorial" I had talked about on the support list and the first topic the tutorial is addressing are the fundamental programming skills that are needed to work with SAGE. Even in its early draft stage, I think it is able to serve as an illustration of what I mean about striving to provide clear explanations of the fundamental principles of a topic before discussing more advanced issues that are built on top of them: http://206.21.94.60/tkosan/misc/sage_tutorial_draft_v.26.pdf I also think that the documentation for each topic should have a section for more complete examples which include the context they were drawn from. By context, I mean the type of information that is typically contained in word problems. Here is an example from calculus: "Problem xx: An open rectangular tank is to contain 500 cu. ft. of materials. What is the least possible cost, if the base costs $3 per sq. ft. and the sides $2 per sq. ft.?" What I would like to see in the SAGE documentation is a detailed explanation of a best practice way to model this problem in SAGE and why it is being modeled a certain way and not some other way. I then want to see a set of best practice steps that can be used to solve the problem, along with a detailed explanation of why these steps are being used and not some other steps. One of the conclusions I have drawn from Kurzweil's projections is that technology is going to evolve so quickly over the next 20 years that people are not going to have anywhere near enough time to learn mathematics the way it has been learned up to this point. I think mathematics software will need to become the central tool around which a person's mathematics learning strategy is based and it will be critical that the documentation for this mathematics software be of extremely high quality. The high level of quality will be needed because there is not going to be enough time for people to learn mathematics software through trial and error because of inadequate documentation. People's minds are going to need to have something solid to hook into from day one and then they will need to be given unambiguous and efficient learning paths to follow to the topics that they need to work with. I think the world has already reached the point where its is not what you know that matters, its how quickly you can learn what you need to know. It appears that this principle will become increasingly more important in the near future and I think that SAGE's documentation should reflect this reality. Anyway, I will volunteer to help with developing SAGE's next generation documentation, but I really think that some technology projections should be done as a first step :-) Ted --~--~---------~--~----~------------~-------~--~----~ 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/ -~----------~----~----~----~------~----~------~--~---