Usando abstrações

O objetivo deste trabalho é o uso de abstração de dados e procedimentos na criação de um programa extensível.

O trabalho é em equipe de até três pessoas. O compartilhamento de informações entre as equipes é permitido e aconselhado, mas o compartilhamento de código não é permitido. Trabalhos que tenham porções significativas de código iguais, ou copiados da internet, serão anulados.

Descrição

Criar um programa de visualização de algoritmos de ordenação por troca.

O programa deve fornecer as seguintes funcionalidades:

Você deve implementar três algoritmos de ordenação, mas o programa deve ser extensível, permitindo que a adição de um novo algoritmo possa ser feito adicionando no máximo duas linhas nos arquivos de código existentes: uma para importar o novo algoritmo e outra para ligar o novo algoritmo ao sistema.

No relatório você deve explicar como você organizou o seu programa para ser extensível e destacar os recursos da linguagem utilizados para isso. Explique como a adição de um novo algoritmo é feita.

O programa pode ser escrito em: C, C++, Go, Java, JavaScript, Python, Rust ou TypeScript.

Você deve escrever testes automatizados pelo menos para os algoritmos de ordenação.

Entrega

O relatório deve ser entregue impresso em papel A4. Os diretórios dos programas devem ser zipados e enviados para o e-mail malbarbo arroba gmail.com respeitando o limite de data e horário de entrega. Não envie arquivos compilados, apenas os arquivos de código fonte.

Avaliação

O trabalho será avaliado de acordo com os critérios: