Plano Pedagógico Para o Ensino de
Algoritmos
André Caetano Alves Firmo
Rua Dona Maria
de Angelis, 152
CEP.: 50850-080 –
andrefirmo@yahoo.com.br
Abstract. This project has as objective the elaboration of a pedagogical plan on
the basis of the knowledge acquired in disciplines of Practical of education of
Algorithms - given in 2º period of the course of Licenciatura of the
Computation of the UFRPE, aiming at to be a first contact with the practical
part of education.
Resumo. Este projeto tem como objetivo a elaboração
de um plano pedagógico com base nos conhecimentos adquiridos na disciplina de
Prática de ensino de Algoritmos – ministrada no 2º período do curso de
Licenciatura da Computação da UFRPE, visando ser um primeiro contato com a parte
prática do ensino.
Trabalhos Relacionados
Projeto Pedagógico
I – Identificação da Disciplina:
SEMESTRE/ANO LETIVO: 02.2005 |
DISCIPLINA:
Algoritmos e Estrutura de Dados CÓDIGO: 05948 |
CURSO: Licenciatura
em Computação |
DEPARTAMENTO: Física
e Matemática |
CARGA HORÁRIA TOTAL: 60 |
CARGA HORÁRIA
SEMANAL: 4 TEÓRICAS: 3 PRÁTICA:
1 |
PROFESSOR
RESPONSÁVEL: André Caetano Alves Firmo |
II – Ementa:
Transmitir o
conhecimento necessário para a manipulação de dados estruturados em lista,
grafos e arvores binárias, assim como demonstrar os principais algoritmos de
busca em árvore; classificação e pesquisa de dados; análise de algoritmos:
notação O e Análise Assintótica; NP-Completude.
III – Objetivos:
(Os alunos deverão desenvolver habilidades para:)
O aluno deverá
ser capaz de desenvolver algoritmos computacionais através do fornecimento dos
fundamentos básicos para programação de computadores visando a solução de
problemas propostos Deverá ainda, dominar os conceitos dos principais tipos de
árvores e as alternativas de implementação, desenvolvendo o raciocínio lógico e
algorítmico através de propostas para a resolução de problemas voltados para o
cotidiano do aluno, trazendo para a sala de aula questões práticas do
dia-a-dia.
IV – Conteúdo:
1. Análise de
Algoritmos.
1.1. Análise
do Pior Caso;
1.2. Notação Assintótica;
2. Estruturas
de Dados.
2.1. Listas
ligadas: simples, duplas, circulares;
2.2. Alocação
dinâmica de memória;
2.3. Pilhas,
Filas: alocação estática e dinâmica;
2.4. Árvores:
binárias;
2.4.1. Construção
recursiva de árvores;
2.4.2. Passeio
em árvores: préfixo, pósfixo
e central;
2.5. Grafos:
orientados e não-orientados;
2.6.
Aplicações.
3. Pesquisas
de Dados.
3.1.
Seqüencial e Binária;
3.2. Árvores:
busca (largura e profundidade), inserção e remoção; balanceamento;
3.3. Grafos:
busca, árvore geradora;
3.4.
Aplicações.
4.
Classificação de Dados.
4.1. Bubble-sort;
4.2.
Heap-sort;
4.3.
Merge-sort;
4.4.
Quick-sort;
4.5.
Aplicações
5. Conceitos
Básicos de NP-Completude
5.1. Problemas
NP-completos;
5.2. Redutibilidade;
5.3.
Aplicações
V – Estratégias de Ensino:
A disciplina
será apresentada ao aluno como sendo a formalização de procedimentos naturais
do seu cotidiano, ficando claro que os algoritmos estão presentes na nossa vida
independentemente do uso de computadores. Será discutida propostas para a
resolução de problemas do cotidiano, como motivação a criação de didáticas de
grupo como enquetes e quiz
de perguntas estimulando a participação e a freqüência dos alunos. Ainda na
motivação, serão desenvolvidas algumas campanhas como a “curiosidade do dia”
onde seria um espaço aberto para a exposição de alguma particularidade
envolvida no conteúdo abordado. Adiante uma apresentação de alguma ferramenta
de especificação de lógica de programação para elaboração de algoritmos
computacionais utilizando estrutura de Fluxograma, Portugol
e o Teste de Mesa.
VI – Recursos de Ensino:
A disciplina
disponibilizará de laboratório com todos os micros conectados com a Internet e
uma home-page do curso que contará com todo o
material digital utilizado nas aulas além de um forum
de discursão, contribuindo com uma maior
interatividade entre professor e aluno com a publicação das listas de
exercícios, datas para a entrega dos trabalhos e avaliações e mensagens que
alertarão quando a data para entrega de trabalhos estiver próxima de expirar.
VII – Avaliação:
As notas das
avaliações serão dispostas em atividades e prova, constituindo uma média
ponderada, onde os pesos que compõe a nota final serão acordados no primeiro
dia de aula entre os alunos e o professor.
Nas atividades estarão incluídas a participação, freqüência ,
cumprimento dos prazos de entrega , projetos e uma avaliação do curso no final
do curso.
VIII – Cronograma:
DATA |
HORÁRIO |
ATIVIDADE/ASSUNTO |
TURMA |
LOCAL |
15/09/04 |
08:10 |
Análise
Algorítmica I (Função de complexidade) |
2005.02 |
LAB 3 |
17/09/04 |
06:30 |
Análise
Algorítmica II (Notação assintótica) |
2005.02 |
LAB 3 |
22/09/04 |
|
Grafos:
Orientados e não-orientados |
2005.02 |
LAB 3 |
24/09/04 |
06:30 |
Análise do
problema de menor caminho em um grafo. Algoritmo de Dijkstra |
2005.02 |
LAB 3 |
29/09/04 |
08:10 |
Alocação
Dinâmica de Memória, Listas Encadeadas (Simples e Dupla) e Listas Circulares |
2005.02 |
LAB 3 |
06/10/04 |
06:30 |
Teste 1 |
2005.02 |
|
08/10/04 |
08:10 |
Resolução do Teste 1 e Árvores Binárias: Construção e
Percursos |
2005.02 |
LAB 3 |
13/10/04 |
06:30 |
Listas
Encadeadas (Simples e Dupla), Pilhas e Filas usando Classe e Alocação
Dinâmica de Memória |
2005.02 |
LAB 3 |
15/10/04 |
08:10 |
Aplicações
de Estruturas de Dados |
2005.02 |
LAB 3 |
20/10/04 |
06:30 |
Teste 2 |
2005.02 |
LAB 3 |
27/10/04 |
06:30 |
Resolução do
Teste 2 |
2005.02 |
|
29/10/04 |
08:10 |
Resolução da
lista de exercícios |
2005.02 |
LAB 3 |
03/11/04 |
06:30 |
Resolução da
lista de exercícios |
2005.02 |
LAB 3 |
10/11/04 |
08:10 |
1ª VA |
2005.02 |
|
IX – Bibliografia:
Jayme L. Szwarcfiter e Lilian Markenzon: Estruturas de dados e seus Algoritmos. Editora
LTC, 1994.
Aaron M. Tenenbaum, Yedidyah Langsam, Moshe J.
Augenstein. Estruturas
de Dados Usando C. Makron Books.
1995
Nívio Ziviani. Projeto de Algoritmos com Implementação em Pascal
e C. Editora Pioneira, 1993.
Algorithms in C, 3rd Edition, Addison-Wesley, 1998
Michael T. Goodrich, Roberto Tamassia. Data
Structures and Algorithms in JAVA. World Wide Series in Computer Science. Wiley
1998
CORMEN,T.H.; LEISERSON, C.E. and RIVEST, R.L. Introduction
to Algorithms. Cambridge:
MIT Press, 1996.
TEREDA, Routo. Desenvolvimento de algoritmo e estruturas de dados.
São Paulo, Makron Books,
1991.
Veloso, Paulo
S. Estrutura de Dados. Rio de Janeiro, Editora Campus, 1986.
-------------------------------------------
-------------------------------------------------- ASSINATURA DO PROFESSOR ASSINATURA CHEFE DEPTO.
Considerações
Para a
aplicação deste projeto devem ser levados em consideração vários fatores, como:
a didática empregada pelo professor; o uso de ferramentas de auxílio como
softwares e papers; a disposição de uma
infra-estrutura mínima que de suporte a utilização de computadores, entre
outros.
Bibliografia
CORMEN,T.H.; LEISERSON, C.E. and RIVEST, R.L.
Introduction to Algorithms. Cambridge: MIT Press, 1996.
http://www.cin.ufpe.br/~joa