Changes between Version 9 and Version 10 of SoC2010


Ignore:
Timestamp:
Mar 8, 2010, 2:41:35 PM (13 years ago)
Author:
Andrew Sutton
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SoC2010

    v9 v10  
    4242
    4343== Boost.XML ==
     44I started a 'boost.xml' library (right now in https://svn.boost.org/svn/boost/sandbox/xml/) a long time ago, which I have never found enough time and energy to bring to a formal boost submission. Having a proper XML library as part of boost would be very useful, in particular if "proper XML" goes beyond the basics such as parsing. (There already are lots of half-baked XML parsers, but few fully conform to the spec, or yield well performing in-memory representations that can be traversed via XML-specific tools such as XPath.)
    4445
    45 I started a 'boost.xml' library (right now in https://svn.boost.org/svn/boost/sandbox/xml/) a long time ago, which I have never found enough time and energy to bring to a formal boost submission.
    46 Having a proper XML library as part of boost would be very useful, in particular if "proper XML" goes beyond the basics such as parsing. (There already are lots of half-baked XML parsers, but few fully conform to the spec, or yield well performing in-memory representations that can be traversed via XML-specific tools such as XPath.)
    47 
    48 === Prerequisites ===
    49 
    50 The student needs to have at least a basic understanding of the XML and related spec, as well as some exposure to existing XML APIs (such as DOM, SAX, XMLReader) to understand the problem domain.
     46The student needs to have a basic understanding of the XML and related specifications, as well as some exposure to existing XML APIs (such as DOM, SAX, XMLReader) to understand the problem domain.
    5147
    5248== Boost.Python ==
    53 
    54 There are a couple of independent improvements that may be done:
     49There are a number of ways in which the Boost.Python library may be improved.
    5550
    5651  - Add (better) support for !NumPy bindings.
     
    5853  - Add bindings for other Python C API functions, such as exception handling.
    5954
    60 === Prerequisites ===
     55Students working on this project should have some basic Python knowledge (as well as !NumPy in the first case above) and past experience with Boost.Python.
    6156
    62    - Some basic Python knowledge (as well as !NumPy in the first case above).
    63    - Past experience with Boost.Python.
     57== Boost.Graph ==
     58For projects on the Boost.Graph library, students should have a working knowledge of graph theory and graph data structures. An sound understanding of techniques for [http://www.boost.org/community/generic_programming.html generic programming] are also required.
    6459
     60 * Topology Generators - One useful set of algorithms not included in the BGL is the ability to easily generate graphs of specific topologies (e.g., [http://mathworld.wolfram.com/PathGraph.html path], [http://mathworld.wolfram.com/CycleGraph.html cycle], [http://mathworld.wolfram.com/StarGraph.html star], etc.). In addition to creating graphs of these topologies, it would be useful to induce these topologies on an existing set of vertices, and query a set of vertices to determine if the topology is admitted by a set of vertices.
     61 
     62 * Graph Connectives - The Boost.Graph library is missing [http://mathworld.wolfram.com/Connective.html connectives].  Develop a set of generic algorithms for computing the [http://mathworld.wolfram.com/GraphUnion.html union], [http://mathworld.wolfram.com/GraphJoin.html join], [http://mathworld.wolfram.com/GraphIntersection.html intersection], and [http://mathworld.wolfram.com/GraphDifference.html difference] of graphs. Additional algorithms might be constructed for unary operations (e.g., line graph).
     63
     64== Heaps and Queues ==
     65There are a number of data structures in `boost/pending` that implement different kinds of heaps and queues that are used in a number of different Boost.Graph (BGL) algorithms. These can be cleaned up, decoupled from the BGL and redeveloped into a useful library for advanced data structures.
     66
     67The library could include a binary (i.e. the std heap), fibonacci, binomial, and relaxed heaps. The binomial heap would be a new data structure. A second requirement is that heaps may be "mutable", meaning that a value already stored
     68in the heap can be modified and the heap efficiently updated to accommodate the new change.
     69
     70Priority queues are an adaptations on heap data structures.
     71
     72This project requires a working knowledge of C++, templates and data structures.
    6573
    6674= Summer of Code Policies =