Contributions to computational phylogenetics and algorithmic self-assembly