Trabalho da disciplina INF1636 da PUC-Rio.