Análise e Desenvolvimento de Sistemas
ALGORITMOS E ESTRUTURA
DE DADOS EM PYTHON
RELATÓRIO DE AULAS PRÁTICAS
Nome:_______________________________________
RA:_________________________________________
Polo de matrícula:______________________________
Local da realização da Aula Prática:________________
Ano da postagem______________________________
TÍTULO DA ATIVIDADE (ROTEIRO OU AULA): IMPLEMENTANDO ALGORITMOS
EM PYTHON
ORIENTAÇÕES:
Cada aluno (ou equipe) deve produzir um relatório curto (1 a 2 páginas)
contendo:
Resumo Teórico:
Explicar, com palavras próprias, o que é lógica de programação e por
que ela é importante.
Mencionar brevemente o que é pseudocódigo e fluxograma e como
ajudam na organização de ideias.
Citar as vantagens de usar Python para aprender programação.
Definição de algoritmo, variável, condicional, laço;
Código-Fonte Comentado:
Inserir o código-fonte completo da atividade proposta.
Comentar as principais linhas, ressaltando o uso de print(), input(),
variáveis etc.
REFERÊNCIAS: O aluno deverá colocar o nome dos livros e sites utilizados para a
realização da atividade. As regras para fazer referência ao material utilizado deverão
ser de acordo com a ABNT.
CRITÉRIOS PARA AVALIAÇÃO
Critério Peso Descrição
Clareza e correlação correta entre conceitos.
Qualidade do
2,0
Resumo Teórico
O código deve estar indentado corretamente,
Estrutura e 3,0 usar nomes de variáveis adequados e conter
Organização do comentários informativos (quando necessários).
Código
Execução sem erros, entrada e saída corretas,
Funcionamento
3,0 uso de condições e laços.
da Solução
Adição de perguntas extras, uso de strings
Criatividade e multilinha, personalização das mensagens e
2,0
Aprimoramentos outras melhorias que demonstrem domínio do
conteúdo.
Nota Final: Será a soma dos valores obtidos em cada critério. Alunos ou equipes que
não cumprirem os requisitos mínimos de funcionamento do código ou não entregarem
o relatório dentro do prazo terão sua nota diminuída proporcionalmente.
TÍTULO DA ATIVIDADE (ROTEIRO OU AULA): ESTRUTURAS DE DADOS
LINEARES EM PYTHON: LISTAS, PILHAS, FILAS E EFICIÊNCIA. NOTAÇÃO
BIG-O
ORIENTAÇÕES:
Cada aluno deve produzir um relatório sucinto (2 a 3 páginas) contendo:
Resumo Teórico
Definição de listas, pilhas, filas e introdução à notação Big-O.
Código-fonte comentado das soluções desenvolvidas.
Reflexão sobre desafios encontrados e critérios para selecionar
cada estrutura;
Códigos-Fontes Comentados
Inserir o código-fonte completo da atividade proposta.
Comentar as principais linhas, ressaltando o uso das estruturas de
dados.
REFERÊNCIAS: O aluno deverá colocar o nome dos livros e sites utilizados para a
realização da atividade. As regras para fazer referência ao material utilizado deverão
ser de acordo com a ABNT.
CRITÉRIOS PARA AVALIAÇÃO
Critério Peso Descrição
Clareza do Clareza e correlação correta entre conceitos.
Resumo 2,0
Teórico
Organização e O código deve estar indentado corretamente, usar
Comentários do 3,0 nomes de variáveis adequados e conter comentários
Código informativos (quando necessários).
Execução sem erros, entrada e saída corretas.
Funcionalidade
2,0
do Código
Funcionalidades extras, simulações realistas
Criatividade e
3,0
Aprimoramentos
Nota Final: Será a soma dos valores obtidos em cada critério. Alunos ou equipes que
não cumprirem os requisitos mínimos de funcionamento do código ou não entregarem
o relatório dentro do prazo terão sua nota diminuída proporcionalmente.
TÍTULO DA ATIVIDADE (ROTEIRO OU AULA): ESTRUTURAS DE DADOS NÃO
LINEARES - ÁRVORES E GRAFOS EM PYTHON
ORIENTAÇÕES:
Cada aluno deve produzir um relatório curto (2 a 3 páginas), contendo:
Resumo Teórico:
Definição de árvore e grafo, vantagens de cada estrutura.
Comentário sobre a escolha de Python para ilustrar algoritmos de
percursos;
Códigos Desenvolvidos:
Inserir o código-fonte completo da atividade proposta.
Comentar as principais linhas, ressaltando criação de vértices, filas,
laços e condições de parada.
Conclusão:
Descrever se a aula ajudou no entendimento de árvores e grafos.
REFERÊNCIAS: O aluno deverá colocar o nome dos livros e sites utilizados para a
realização da atividade. As regras para fazer referência ao material utilizado deverão
ser de acordo com a ABNT.
CRITÉRIOS PARA AVALIAÇÃO
Critério Peso Descrição
Clareza do Clareza e correlação correta entre conceitos.
Resumo 2,0
Teórico
Organização e O código deve estar indentado corretamente, usar
Comentários do 3,0 nomes de variáveis adequados e conter comentários
Código informativos (quando necessários).
Execução sem erros, entrada e saída corretas.
Funcionalidade
2,0
do Código
Criatividade e Inclusão de pesos, tratamento de exceções ou
3,0
Aprimoramentos visualização gráfica simples.
Nota Final: Será a soma dos valores obtidos em cada critério. Alunos ou equipes que
não cumprirem os requisitos mínimos de funcionamento do código ou não entregarem
o relatório dentro do prazo terão sua nota diminuída proporcionalmente.
TÍTULO DA ATIVIDADE (ROTEIRO OU AULA): ALGORITMOS DE ORDENAÇÃO
EM PYTHON (Bubble Sort, Selection Sort, Insertion Sort, Merge Sort e
Quick Sort)
ORIENTAÇÕES:
Cada aluno deve produzir um relatório sintético (2 a 3 páginas) contendo:
Resumo Teórico:
Definir ordenação e justificar sua relevância em ciência da
computação.
Explicar diferenças conceituais entre algoritmos quadráticos e log-
lineares.
Comentar vantagens e limitações de cada método;
Códigos Desenvolvidos:
Inserir as implementações completas, destacando linhas decisivas
(trocas, partições, fusões).
Incluir tabela dos tempos obtidos nas medições.
REFERÊNCIAS: O aluno deverá colocar o nome dos livros e sites utilizados para a
realização da atividade. As regras para fazer referência ao material utilizado deverão
ser de acordo com a ABNT.
CRITÉRIOS PARA AVALIAÇÃO
Critério Peso Descrição
Clareza do
Resumo 2,0 Clareza e correlação correta entre conceitos.
Teórico
Organização e O código deve estar indentado corretamente,
Comentários do 3,0 usar nomes de variáveis adequados e conter
Código comentários informativos (quando necessários).
Funcionalidade Execução correta e apresentação dos
3,0
do Código resultados de tempo.
Criatividade e Introdução de visualização gráfica simples, pivô
2,0
Aprimoramentos aleatório ou otimizações.
Nota Final: Será a soma dos valores obtidos em cada critério. Alunos ou equipes que
não cumprirem os requisitos mínimos de funcionamento do código ou não entregarem
o relatório dentro do prazo terão sua nota diminuída proporcionalmente.
TÍTULO DA ATIVIDADE (ROTEIRO OU AULA): ALGORITMOS DE PESQUISA -
BUSCA LINEAR E BUSCA BINÁRIA EM PYTHON
ORIENTAÇÕES:
Cada aluno deve produzir um relatório (2 a 3 páginas) contendo:
Resumo Teórico:
Explicar a diferença entre pesquisa exaustiva e pesquisa por divisão.
Comparar custos de busca linear e binária em termos de
complexidade e de requisitos de ordenação;
Códigos Desenvolvidos:
Inserir implementações completas de ambos os métodos.
Apresentar tabela com tempos coletados para três tamanhos
distintos de listas.
REFERÊNCIAS: O aluno deverá colocar o nome dos livros e sites utilizados para a
realização da atividade. As regras para fazer referência ao material utilizado deverão
ser de acordo com a ABNT.
CRITÉRIOS PARA AVALIAÇÃO
Critério Peso Descrição
Clareza do Clareza conceitual e uso correto de terminologia.
Resumo 2,0
Teórico
Organização e O código deve estar indentado corretamente,
Comentários do 3,0 usar nomes de variáveis adequados e conter
Código comentários informativos (quando necessários).
Funcionalidade Execução correta e apresentação dos resultados
3,0
do Código de tempo.
Criatividade e Execução correta e apresentação dos
2,0
Aprimoramentos resultados de tempo.
Nota Final: Será a soma dos valores obtidos em cada critério. Alunos ou equipes que
não cumprirem os requisitos mínimos de funcionamento do código ou não entregarem
o relatório dentro do prazo terão sua nota diminuída proporcionalmente.
TÍTULO DA ATIVIDADE (ROTEIRO OU AULA): TABELAS DE DISPERSÃO (HASH
TABLES) E OS HEAPS EM PYTHON
ORIENTAÇÕES:
Cada aluno deve produzir um relatório (2 a 3 páginas) contendo:
Resumo Teórico:
Definir tabelas de dispersão, explicar colisões e tratamentos.
Descrever heaps binários e justificar eficiência em filas de
prioridade;
Códigos Desenvolvidos:
Inserir implementações das medições solicitadas, com observações
sobre linhas-chave (cálculo de hash, heappush, heappop).
Apresentar tabela dos tempos obtidos em cada experimento.
REFERÊNCIAS: O aluno deverá colocar o nome dos livros e sites utilizados para a
realização da atividade. As regras para fazer referência ao material utilizado deverão
ser de acordo com a ABNT.
CRITÉRIOS PARA AVALIAÇÃO
Critério Peso Descrição
Clareza do
Resumo 2,0 Precisão conceitual e clareza de exposição.
Teórico
Organização e O código deve estar indentado corretamente, usar
Comentários do 3,0 nomes de variáveis adequados e conter comentários
Código informativos (quando necessários).
Funcionalidade Execução sem erros, coleta e exibição confiável dos
do Código 3,0
tempos.
Criatividade e Implementação de heap de máx-prioridade,
Aprimoramentos 2,0
visualizações simples ou análise de fator de carga.
Nota Final: Será a soma dos valores obtidos em cada critério. Alunos ou equipes que
não cumprirem os requisitos mínimos de funcionamento do código ou não entregarem
o relatório dentro do prazo terão sua nota diminuída proporcionalmente.
TÍTULO DA ATIVIDADE (ROTEIRO OU AULA): ALGORITMOS DE GRAFOS -
DIJKSTRA, BELLMAN-FORD, KRUSKAL E PRIM EM PYTHON
ORIENTAÇÕES:
Cada aluno deve produzir um relatório (2 a 3 páginas) contendo:
Resumo Teórico:
Explicar diferenças entre caminhos mínimos de fonte única e
árvores geradoras mínimas.
Apontar condições de aplicabilidade (pesos negativos, denso ×
esparso);
Códigos Desenvolvidos:
Incluir implementações completas, indicando linhas de relaxamento e
união-busca.
Apresentar tabela de tempos e pesos totais das árvores.
REFERÊNCIAS: O aluno deverá colocar o nome dos livros e sites utilizados para a
realização da atividade. As regras para fazer referência ao material utilizado deverão
ser de acordo com a ABNT.
CRITÉRIOS PARA AVALIAÇÃO
Critério Peso Descrição
Clareza do
Resumo 2,0 Precisão conceitual e clareza de exposição.
Teórico
Organização e O código deve estar indentado corretamente,
Comentários do 3,0 usar nomes de variáveis adequados e conter
Código comentários informativos (quando necessários).
Funcionalidade Execução sem erros, resultados coerentes.
3,0
do Código
Uso de visualizações, análise de ciclos negativos
Criatividade e
2,0 ou comparação com bibliotecas externas.
Aprimoramentos
Nota Final: Será a soma dos valores obtidos em cada critério. Alunos ou equipes que
não cumprirem os requisitos mínimos de funcionamento do código ou não entregarem
o relatório dentro do prazo terão sua nota diminuída proporcionalmente.
TÍTULO DA ATIVIDADE (ROTEIRO OU AULA): TÉCNICAS DE DIVISÃO E
CONQUISTA E DE PROGRAMAÇÃO DINÂMICA EM PYTHON
ORIENTAÇÕES:
Cada aluno deve produzir um relatório (2 a 3 páginas) contendo:
Resumo Teórico:
A explanação das diferenças estruturais entre divisão e conquista e
programação dinâmica.
A justificativa dos ganhos obtidos com memoização ou tabulação nos
problemas escolhidos;
Descrição das Classes Criadas:
A inclusão das três versões do algoritmo escolhido (recursiva simples,
memoizada, bottom-up).
A apresentação dos tempos medidos em tabela.
REFERÊNCIAS: O aluno deverá colocar o nome dos livros e sites utilizados para a
realização da atividade. As regras para fazer referência ao material utilizado deverão
ser de acordo com a ABNT.
CRITÉRIOS PARA AVALIAÇÃO
Critério Peso Descrição
Clareza do A inclusão das três versões do algoritmo escolhido
Resumo 2,0 (recursiva simples, memoizada, bottom-up).
Teórico
Organização e A apresentação dos tempos medidos em tabela.
Comentários do 3,0
Código
A inclusão das três versões do algoritmo escolhido
Funcionalidade
3,0 (recursiva simples, memoizada, bottom-up).
do Código
Criatividade e Análise gráfica, discussão sobre consumo de
2,0
Aprimoramentos memória ou casos extremos..
Nota Final: Será a soma dos valores obtidos em cada critério. Alunos ou equipes que
não cumprirem os requisitos mínimos de funcionamento do código ou não entregarem
o relatório dentro do prazo terão sua nota diminuída proporcionalmente.