Blog

Como fazer o relatório de Aula Prática Algoritmos e Estrutura de Dados Avançado

Para desenvolver Aula Prática Algoritmos e Estrutura de Dados Avançado, comece identificando os objetivos e as entregas solicitadas no roteiro. A seguir, veja os pontos presentes na descrição desta atividade e organize teu relatório de acordo com as orientações do curso.

Aula Prática Algoritmos e Estrutura de Dados Avançado

O que é esta aula prática?

Antes de começar, leia a apresentação e identifique o tema, a unidade e o formato pedido.

Algoritmos de ordenação e análise de eficiência

Estruturas de dados: Produto, Node/AVL, Graph, Heap/PriorityQueue

Representação de grafos (lista de adjacência) e Dijkstra

Medição de desempenho (módulo time) e visualização de resultados

Ambiente de execução: Google Colab; bibliotecas Python relevantes

Objetivos e conhecimentos trabalhados

Use os objetivos do roteiro para definir o que a atividade precisa demonstrar.

OBJETIVOS

Definição dos objetivos da aula prática:

Implementar e comparar diferentes algoritmos de ordenação em um cenário de aplicação realista.

O objetivo é entender a eficiência e a aplicabilidade de cada algoritmo em diferentes situações.

OBJETIVOS

Definição dos objetivos da aula prática:

Entender os conceitos de balanceamento e rotação em árvores binárias de busca implementando

uma Árvore AVL em Python, incluindo inserção, remoção e busca de nós, além de garantir que a

árvore permaneça balanceada após cada operação.

OBJETIVOS

Definição dos objetivos da aula prática:

Compreender os conceitos de grafos, algoritmos de busca de caminhos mínimos e estruturas de

dados como listas de adjacência e filas de prioridade.

OBJETIVOS

Definição dos objetivos da aula prática:

Aprender a construir uma lista de prioridade, inserir e remover elementos no heap, e alterar a

prioridade de elementos existentes.

Ferramentas e materiais mencionados no roteiro

Prepare os recursos citados na atividade e registre as versões ou configurações usadas quando forem relevantes.

SOLUÇÃO DIGITAL

Computador com acesso à Internet para uso do Google Colab

O Google Colab, ou Colaboratory, é uma plataforma gratuita baseada na nuvem oferecida pelo

Google. Ela fornece um ambiente de notebook interativo e colaborativo que permite a criação e

execução de código diretamente no navegador, sem a necessidade de configurar ou instalar

qualquer software no seu computador.

SOLUÇÃO DIGITAL

Computador com acesso à Internet para uso do Google Colab

O Google Colab, ou Colaboratory, é uma plataforma gratuita baseada na nuvem oferecida pelo

Google. Ela fornece um ambiente de notebook interativo e colaborativo que permite a criação e

execução de código diretamente no navegador, sem a necessidade de configurar ou instalar

qualquer software no seu computador.

SOLUÇÃO DIGITAL

Computador com acesso à Internet para uso do Google Colab

O Google Colab, ou Colaboratory, é uma plataforma gratuita baseada na nuvem oferecida pelo

Google. Ela fornece um ambiente de notebook interativo e colaborativo que permite a criação e

execução de código diretamente no navegador, sem a necessidade de configurar ou instalar

qualquer software no seu computador.

SOLUÇÃO DIGITAL

Infraestrutura mínima necessária para execução.

Computador com acesso à Internet para uso do Google Colab

O Google Colab, ou Colaboratory, é uma plataforma gratuita baseada na nuvem oferecida pelo

Google. Ela fornece um ambiente de notebook interativo e colaborativo que permite a criação e

execução de código diretamente no navegador, sem a necessidade de configurar ou instalar

qualquer software no seu computador.

Como desenvolver a atividade passo a passo

Execute cada etapa na ordem indicada e registre o que foi feito para depois explicar o processo no relatório.

Esta atividade prática, vinculada à disciplina Algoritmos e Estruturas de Dados Avançado, propõe a implementação e análise de algoritmos e estruturas de dados fundamentais em um ambiente computacional (Google Colab) usando Python. O conjunto de exercícios abrange unidades e aulas específicas (por exemplo, U1 — Noções de Ordenação; U2 — Árvores AVL; U3 — Caminhos Mínimos; U4 — Heap), com situações-problema aplicadas como ordenação de catálogos de e‑commerce, construção de árvores balanceadas, busca de caminhos mínimos e implementação de listas de prioridade.

Os cenários práticos incluem a criação programática de uma lista de produtos (ex.: 1000 produtos gerados aleatoriamente com atributos nome, preco, avaliacao, data_adicao, categoria) para testar critérios de ordenação; a implementação de uma Árvore AVL com inserção, remoção, busca e rotações para garantir balanceamento; a implementação do algoritmo de Dijkstra em grafos representados por listas de adjacência usando fila de prioridade (min-heap); e a construção de uma PriorityQueue baseada em heap para inserção, remoção e alteração de prioridade. O ambiente recomendado é o Google Colab, e as bibliotecas citadas no roteiro incluem random, datetime, time, heapq e matplotlib para visualização.

Além da implementação, a atividade exige medição e comparação de desempenho (uso da biblioteca time), validação das implementações (comparação com sorted() em Python quando aplicável) e produção de documentação técnica: códigos desenvolvidos, prints de execução e relatório de análise em PDF conforme orientações das respectivas unidades.

O que é desenvolvido nesta atividade

Implementação prática e comparação de algoritmos e estruturas em Python, com foco em:

Geração de dados e modelagem da classe Produto (atributos: nome, preco, avaliacao, data_adicao, categoria) e criação de 1000 instâncias para testes;

Implementação de algoritmos de ordenação (Bubble, Quick, Merge, Heap) e funções para critérios de ordenação (preço, avaliação, data e categoria);

Construção de Árvore AVL com inserção, remoção, busca e rotações;

Implementação do algoritmo de Dijkstra usando lista de adjacência e min-heap;

Implementação de PriorityQueue (min-heap) com alteração de prioridade, medição de tempos e visualizações com matplotlib.

NOME DA DISCIPLINA: ALGORITMOS E ESTRUTURA DE DADOS AVANÇADO

Unidade: U1_ FUNDAMENTOS DE ALGORITMOS

PROCEDIMENTOS PRÁTICOS

Você trabalha em uma empresa de e-commerce e precisa ordenar uma lista de produtos com

base em diferentes critérios para melhorar a experiência do usuário e a eficiência do sistema de

recomendação. A lista de produtos inclui informações como preço, avaliação dos usuários, data

Procedimentos para a realização da atividade:

– Crie uma classe `Produto` com os seguintes atributos:

– Escreva um script para gerar uma lista de 1000 produtos aleatórios. Utilize bibliotecas como

`random` e `datetime` para preencher os atributos de cada produto.

3. Implementação de Algoritmos de Ordenação:

– Implemente os seguintes algoritmos de ordenação:

– Implemente funções de ordenação para os seguintes critérios:

– Por preço (ascendente e descendente)

– Por avaliação (ascendente e descendente)

– Por data de adição (mais recente primeiro e mais antigo primeiro)

– Meça e compare o tempo de execução de cada algoritmo para cada critério de ordenação

– Escreva um relatório discutindo a eficiência de cada algoritmo de ordenação nos diferentes

critérios. Considere a complexidade temporal de cada algoritmo e como eles se comportam com

– Utilize a função `sorted()` do Python para verificar a corretude das suas implementações.

– A biblioteca `time` pode ser utilizada para medir o tempo de execução de um bloco de código.

– A biblioteca `datetime` pode ajudar na manipulação de datas.

– Para visualização, você pode utilizar gráficos de barras para mostrar o tempo de execução de

PROCEDIMENTOS PRÁTICOS

Você trabalha em uma empresa de tecnologia que está desenvolvendo um sistema de

gerenciamento de dados. Para otimizar as operações de busca, inserção e remoção, você foi

designado para implementar uma Árvore AVL que manterá os dados balanceados.

Procedimentos para a realização da atividade:

1. Definição da Estrutura da Árvore AVL:

– Crie uma classe `Node` para representar cada nó da árvore.

– Crie uma classe `AVLTree` para gerenciar as operações na árvore.

2. Implementação de Operações Básicas:

– Implementar a inserção de nós na árvore AVL.

– Implementar a remoção de nós da árvore AVL.

– Implementar a busca de nós na árvore AVL.

– Implementar as rotações à esquerda e à direita para manter a árvore balanceada.

– Garantir que, após cada inserção e remoção, a árvore permanece uma AVL válida.

– Escreva testes para validar a inserção, remoção e busca em diferentes cenários.

– Testar casos de borda como inserção de nós em ordem ascendente ou descendente para

– Implementar uma função para imprimir a árvore de forma que seja fácil visualizar sua estrutura

– Utilize a propriedade de altura dos nós para ajudar no balanceamento.

– Uma árvore AVL é uma árvore binária de busca onde a diferença de altura entre as subárvores

esquerda e direita de qualquer nó é no máximo 1.

– As rotações (simples e duplas) são cruciais para manter a árvore balanceada.

PROCEDIMENTOS PRÁTICOS

Você está desenvolvendo um sistema de navegação para uma aplicação de mapas. Para

encontrar a rota mais curta entre dois pontos, você precisa implementar o algoritmo de Dijkstra.

Procedimentos para a realização da atividade:

1. Definição da Estrutura do Grafo:

• Crie uma classe Graph para representar o grafo usando uma lista de adjacência.

• Cada aresta do grafo deve ter um peso associado.

2. Implementação do Algoritmo de Dijkstra:

• Implemente o algoritmo de Dijkstra para encontrar o caminho mais curto a partir de

um nó de origem para todos os outros nós do grafo.

• Utilize uma fila de prioridade (min-heap) para otimizar a escolha do próximo nó com

3. Função para Encontrar o Caminho Mínimo:

• Implemente uma função que, dado um nó de origem e um nó de destino, retorne o

caminho mínimo e a distância mínima entre esses nós.

• Escreva testes para validar o algoritmo com diferentes grafos e nós de origem e

• Teste casos de borda, como grafos desconectados ou nós sem arestas.

• Implemente uma função para imprimir o caminho mínimo de forma legível.

• Utilize um dicionário para representar o grafo onde as chaves são os nós e os valores são

• A fila de prioridade pode ser implementada usando o módulo heapq do Python.

• Mantenha um dicionário de distâncias mínimas e um dicionário de predecessores para

PROCEDIMENTOS PRÁTICOS

Você deverá implementar uma lista de prioridade usando um heap (min-heap) em Python.

Procedimentos para a realização da atividade:

1. Construção da Lista de Prioridade: Construa a classe `PriorityQueue`

– Implemente uma lista de prioridade usando um min-heap.

– crie uma função para inicializar a lista de prioridade.

– Implemente funções para inserir elementos na lista de prioridade.

– Implemente funções para remover o elemento com a menor prioridade.

– Implemente uma função para alterar a prioridade de um elemento existente.

2. Teste da Lista de Prioridade: Implemente a função `test_priority_queue` para testar a lista de

– Inicialize uma lista de prioridade.

– Adicione tarefas com diferentes prioridades e exiba a lista.

– Insira novas tarefas na lista de prioridade.

– Remova a tarefa com a menor prioridade e exiba a lista após cada remoção.

– Altere a prioridade de uma tarefa existente e exiba a lista.

– Verifique os resultados e assegure-se de que as operações de inserção, remoção e alteração

de prioridade funcionam conforme esperado.

– Use a estrutura de min-heap do módulo `heapq` para gerenciar a lista de prioridade.

– Mantenha um dicionário (`entry_finder`) para rastrear os itens na lista e facilitar a alteração de

Como conferir e avaliar o trabalho

Confira os critérios e perguntas do roteiro antes de finalizar a entrega.

Checklist:

• Implementação de Algoritmos de Ordenação

Checklist:

• Definição da Estrutura da Árvore AVL:

• Implementação de Operações Básicas:

Resultados e organização do relatório

Apresente o que foi obtido e relacione os resultados com os objetivos da atividade.

Resultados de Aprendizagem:

Espera-se que o aluno seja capaz de entender a implementação e a análise dos principais

algoritmos de ordenação aplicados a um cenário realista, proporcionando uma compreensão

prática e teórica sólida sobre a eficiência dos diferentes métodos de ordenação.

Descrição orientativa sobre a entregada da comprovação da aula prática:

• Para comprovar a realização da atividade, é necessario entregar um arquivo com os

códigos criados e um PDF com o relatório de análise.

Resultados de Aprendizagem:

Espera-se que o aluno seja capaz de entender a implementação de uma Árvore AVL em Python

com operações de inserção, remoção e busca, além do balanceamento automático,

Descrição orientativa sobre a entregada da comprovação da aula prática:

Para comprovar a realização da atividade, é necessario entregar um relatório em PDF com:

• Prints de tela com os resultados da execução

Resultados de Aprendizagem:

Espera-se que o aluno seja capaz de entender a implementação de um algoritmo que encontra

Descrição orientativa sobre a entregada da comprovação da aula prática:

Para comprovar a realização da atividade, é necessario entregar um relatório em PDF com:

• Prints de tela com os resultados da execução

• Um breve relatório explicando todo o procedimento realizado.

Unidade: U4_ COMPRESSÃO DE DADOS E OUTRAS ESTRUTURAS

Resultados de Aprendizagem:

Espera-se que o aluno seja capaz de entender a implementação de um algoritmo de lista de

Descrição orientativa sobre a entregada da comprovação da aula prática:

Para comprovar a realização da atividade, é necessario entregar um relatório em PDF com:

• Prints de tela com os resultados da execução

• Um breve relatório explicando todo o procedimento realizado

O seu trabalho é disponibilizado pronto, respondido e nas normas já na mesma hora aqui em nosso site na sua área de downloads e também no seu e-mail.

Portfólio em Word, respondido, completo e já nas normas

Se estiver acessando pelo computador, escaneie o QR Code abaixo com a câmera do celular para abrir nosso atendimento no WhatsApp.

Como estruturar o relatório

Organize a entrega em identificação da atividade, objetivos, recursos utilizados, descrição dos procedimentos, registros dos resultados e conclusão. Ajuste essa sequência ao modelo exigido pela instituição e inclua apenas observações e evidências obtidas durante a tua própria execução.

Checklist antes de entregar

  • Conferir se todos os objetivos do roteiro foram contemplados.
  • Descrever os procedimentos na ordem em que foram realizados.
  • Inserir registros, imagens ou arquivos quando a atividade solicitar.
  • Relacionar os resultados com as tarefas e revisar o formato de entrega exigido.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *