Skip to content

GSoC: 2018 Warmup task

Timofey Chudakov edited this page Jan 25, 2020 · 1 revision

If you're interested in working with the JGraphT project during the Google Summer Of Code 2018, here's a short warmup exercise to help you familiarize yourself with the JGraphT library.

Problem statement

Develop a Java application which can read a simple family tree in .dot (graphviz) format and compute the closest common ancestor of two people. For the .dot file, use Listing 1 from this PDF file. Given this file as the tree to work from, and the two inputs "Jon" and "Daenerys", the result should be "Aerys II The Mad". Or given the two inputs "Sansa" and "Arya", the result should be "Eddard".

If there are multiple common ancestors of equal distance, output all of them.

The Java application should take three parameters on the command line:

  • name of .dot file
  • name of person 1
  • name of person 2

The result should be written to standard output.

Implementation

  • you can use your favorite IDE, or just a text editor, to write your code, and provide instructions for compiling it from the command line
  • use the latest release of JGraphT via Maven dependencies
  • publish your code as a new public repository in your own github account (do not submit it to the JGraphT project)
  • this is NOT a speed contest. Please check/analyze/... your code thoroughly as if you were preparing a real code submission.

If you have questions during development, please ask them on the jgrapht-gsoc forum so that you can get help from the community. Do NOT send development-related questions to admin@jgrapht.org.

Previously, GSoC mentors were reviewing warmup submissions, but we've stopped doing so now that the proposal submission deadline is close. The warmup is still a useful exercise for familiarizing yourself with JGraphT, but there's no need to send us your solution at this point.

Clone this wiki locally