axiom-developer
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Axiom-developer] [Summer of Code]


From: anonymous
Subject: [Axiom-developer] [Summer of Code]
Date: Wed, 01 Jun 2005 17:19:34 -0500

Changes http://page.axiom-developer.org/zope/mathaction/SummerOfCode/diff
--

--removed:
-We could use students to:

++added:
Axiom is documented with 4 books which are under development,
a tutorial, a programmer's guide, a reference volume, and a
developer's guide.


??changed:
-  visit each algebra file and make a complete listing of all of
-  the function signatures with boiler-plate documentation (e.g.
-  the types in the argument lists). construct an index for the book.
  The reference volume is intended to provide complete lookup
  coverage of the Axiom system. There are over 11,000 functions
  within Axiom which require standardized documentation.
 
  This project would involve visiting each algebra file (approx
  300 files) to make a complete listing of all of the function
  signatures and their type information. Ideally this should be
  automated as the information is available. The output should be
  a set of Latex files which will contain boiler-plate documentation.
  The Latex output should be able to produce an index for the 
  reference volume.

??changed:
-  choose a textbook (linear algebra for dummies?) or an online
-  course (linear algebra at ocw.mit.edu?) and develop a tutorial
-  based on the source material using axiom.
  Propose and get agreement on a textbook (linear algebra for dummies?)
  or an online course (linear algebra at ocw.mit.edu?) and develop a  
  tutorial based on the source material using Axiom. The tutorial should
  be organized so that it demonstrates a wide variety of Axiom's abilities
  such as graphics and the ability to generate user-defined browser pages.
  Ideally it should be useful for the classroom. 

  The subject matter could be chosen from any computational domain, e.g.
  math, physics, chemistry, biology, etc.

* literate documentation

  Axiom consists of literate programs. Each lisp, C, Makefile, etc is
  written by combining Latex and source code into a Latex document.
  At build time the source code and technical paper are extracted from
  these documents automatically.

  There are several thousand files in Axiom each of which needs to be
  understood and properly documented. Choose an algorithm (such as 
  the greatest common divisor) or an area (such as p-adic numbers) and
  provide the required documentation for the algorithms.

??changed:
-   Axiom is a worldwide project. It is used in multiple countries
-   and runs on platforms like Red Flag Linux (Chinese). We have
-   some introductory documentation in French but we need people 
-   who can translate the book into any non-english language.
  Axiom is a worldwide project. It is used in multiple countries
  and runs on platforms like Red Flag Linux (Chinese). We have
  some introductory documentation in French but we need people 
  who can translate the book into any non-english language.

  This requires that you be fluent in both languages. The result
  should be a set of latex documents that are a complete translation
  of the original material

??changed:
-  work out the lisp code necessary to read browser pages and
-  render them as TK pages
  Axiom has a browser and a graphics component. Both of these
  user interface components are written in C using X11 and are
  hard to port to Windows. We're experimenting with methods of
  creating a platform independent method of implementing these
  components. 

  Common Lisps can communicate with TK which provides a platform
  independent way of displaying graphics. We need to work out the
  lisp code necessary to read browser pages and render them as TK 
  pages

++added:
  An alternative project is to use a browser as the standard front
  end to both the Axiom browser and the graphics. We need to

??changed:
-  the wiki. figure out how to get the wiki to accept the browser
-  page syntax.
  the wiki. 

  The task is to figure out how to get the wiki to accept the browser
  page syntax and how to inline graphics in wiki pages.

??changed:
-  create a systematic way of regression testing and implement it
  Axiom has several hundred test cases that are run during the
  build of the system. Each of these test cases generate output.
  Create a systematic way of using this test suite for systematic
  regression testing and implement it.

  The result should be integrated into the Axiom Makefile machinery.

??changed:
-  create a domain-by-domain set of reference test cases with
  Axiom has about 1100 "domains" which include about 11,000
  functions. We need to systematically create and organize a
  domain-by-domain set of reference test cases with 

??changed:
-* test code
-
-  use the handbook of curves and surfaces to comprehensively test
-  the graphics routines.
* test graphics code

  The Graphics component on Axiom has not been systematically
  tested. Use the handbook of curves and surfaces to 
  comprehensively test the graphics routines.

  The result should be a set of input files which recreate
  all of the graphics in the CRC handbook and a set of bug
  reports that document failure cases.

  An alternative result is to modify the graphics code to
  handle the failure cases. This would require learning the
  details of C, X11, and the graphics code.

??changed:
-  given a literate program that includes axiom algebra code and
  Axiom uses Knuth's idea of literate programs as the basic file
  format for all of its code. There is a project called Doyen
  which needs to be able to drag-and-drop a literate program onto
  a running Axiom system and have that code and documentation 
  automatically added to the system. 

  Given a literate program that includes axiom algebra code and

++added:
  The result should be a working demonstration.


??changed:
-  work out an automated way to organize the hundreds of dvi files
-  so they can be browsed.
  As part of the build process Axiom generates hundreds of dvi
  files (output from Latex) that represent the documentation 
  associated with every source file. Currently these are minimally
  organized by directory. The task is to work out an automated way
  of organizing these files. One possibility is to organize the
  algebra file documentation according to the algebra lattice. 

  The output should a program that can be run to create the
  proper organization, likely as a Latex file.

??changed:
-   pamphlets use random names in code chunks. develop a full URL
-   syntax and create a booklet mechanism. That is, one should be
-   able to define a chunk as::
-
-     <<file:///something>>
-
-   and have something inserted inline or ::
-
-     <<http:///something>>
-
-   and have something inserted inline.
  Pamphlets use random names in code chunks. Develop a full URL
  syntax and create a booklet mechanism. That is, one should be
  able to define a chunk as::

    <<file:///something>>

  and have something inserted inline or ::

    <<http:///something>>

  and have something inserted inline.

  The result should be a rewrite of the booklet command.

??changed:
-   develop latex macros for marking "concepts" in latex files
-   mark up literate programs and math papers and create a concept
-   index, similar to the word index mechanism latex now uses
  In the future Axiom is intended to allow searches of the 
  computational literates (such as math papers) based on concepts.
  In order to do this we need to develop latex macros for marking 
  "concepts" in latex files. This will allow the author to mark
  up literate programs and math papers and create a concept index, 
  similar to the word index mechanism latex now uses.

  The result should be a latex.sty style file.

* flash integration

  Axiom does not know how to dynamically create flash files.
  The flash file format is open source.

  The task is to develop an interface that will allow algebra
  programs to generate flash animation output. An example is to
  compute and animate the surface wave of water struck by a 
  round pebble dropped from a given height.

++added:
  Axiom has permission to use the paper "Primes is in P" as
  example documentation. This paper is widely known. It has
  the theory, a proof of the theory, an algorithm and a proof
  of the algorithm. However it lacks an implementation in Axiom.

  Implement the algorithm as a literate program (we already have
  the paper as a pamphlet file) and integrate it into both the
  Axiom documentation and the Axiom sources.


++added:

  There is an algorithm for computing Symbolic Sums but 
  it is not currently implemented in Axiom. Study this
  algorithm and implement it.

  The result should be a literate program that can do
  symbolic summation in Axiom complete with a test suite.

* CATS, a Computer Algebra Test Suite

  There are many different computer algebra systems and they
  all develop their own ad-hoc test suites. These suites have
  no organizational structure nor any verified results. 

  The National Institute of Standards and Technologies (NIST)
  has a categorization of numerical mathematical algorithms.
  A similar categorization does not exist for symbolic math.

  The task would involve creating a taxonomy of symbolic
  math that provides reference problems with verified results
  as well as an implementation for these cases using Axiom.
  Note that the taxonomy should not be Axiom specific.

  The result would be a taxonomy, the reference cases, the
  Axiom cases, and the Makefile machinery to automate testing.
  There should also be bug reports filed for failure cases.

--
forwarded from http://page.axiom-developer.org/zope/mathaction/address@hidden




reply via email to

[Prev in Thread] Current Thread [Next in Thread]