A tutorial about dynamic programming and sequence alignment: http://www.ibm.com/developerworks/java/library/j-seqalign/index.html