GSoC: Boost.Graph library - Graph Connectives

Hello everyone! I'm Yaroslav Vorontsov (or simply Jerry Lee :-)), a student of Computer Science Department of Voronezh State University, Russia. I'm interested in both generic programming and graph theory, and I also would like to participate in Google Summer of Code 2010. I had some experience of generic programming before when I tried to implement my own generic graph library in C# (of course, as a task on one of programming courses at the university). I've read that (quote) "The Boost.Graph library is missing connectives...". I'm quite familiar with C++ and the idea of generic programming and I'm working with some graph theory aspects at the moment, so I want to know: what particular skills (in programming, of course) are needed to develop graph connectives? Thanks in advance, Yaroslav

I'm Yaroslav Vorontsov (or simply Jerry Lee :-)), a student of Computer Science Department of Voronezh State University, Russia. I'm interested in both generic programming and graph theory, and I also would like to participate in Google Summer of Code 2010. I had some experience of generic programming before when I tried to implement my own generic graph library in C# (of course, as a task on one of programming courses at the university). I've read that (quote) "The Boost.Graph library is missing connectives...". I'm quite familiar with C++ and the idea of generic programming and I'm working with some graph theory aspects at the moment, so I want to know: what particular skills (in programming, of course) are needed to develop graph connectives?
Hi Simply Jerry Lee :), Good question. Working on the Boost graph library requires a sound understanding of its organization and its construction. There are a lot of techniques used in its construction that are atypical of most OO libraries (even C# generic data structures). You should be able to identify aspects of an algorithm that aren't "universally generic" and understand how to abstract them using templates, types, metaprogramming, etc. Most of that can be learned on the job, so to speak, but having a good eye for abstraction certainly helps. Andrew Sutton andrew.n.sutton@gmail.com

22:59, Andrew Sutton wrote:
I'm Yaroslav Vorontsov (or simply Jerry Lee :-)), a student of Computer Science Department of Voronezh State University, Russia. I'm interested in both generic programming and graph theory, and I also would like to participate in Google Summer of Code 2010. I had some experience of generic programming before when I tried to implement my own generic graph library in C# (of course, as a task on one of programming courses at the university). I've read that (quote) "The Boost.Graph library is missing connectives...". I'm quite familiar with C++ and the idea of generic programming and I'm working with some graph theory aspects at the moment, so I want to know: what particular skills (in programming, of course) are needed to develop graph connectives?
Hi Simply Jerry Lee :),
Good question. Working on the Boost graph library requires a sound understanding of its organization and its construction. There are a lot of techniques used in its construction that are atypical of most OO libraries (even C# generic data structures). You should be able to identify aspects of an algorithm that aren't "universally generic" and understand how to abstract them using templates, types, metaprogramming, etc.
Most of that can be learned on the job, so to speak, but having a good eye for abstraction certainly helps.
Andrew Sutton andrew.n.sutton@gmail.com
Ok, many thanks for exhaustive explanation! :-) One more little question: what is the best source of information about Boost.Graph library? I've found something here (http://www.boost.org/doc/libs/1_42_0/libs/graph/doc/table_of_contents.html), but it seems to be something like functions description. Are there any good books about Boost.Graph architecture and its usage? I'd like to have a few practice :-)
participants (2)
-
Andrew Sutton
-
Yaroslav Vorontsov