Plano Pedagógico Para o Ensino de Algoritmos

André Caetano Alves Firmo

Rua Dona Maria de Angelis, 152

CEP.: 50850-080 – Recife – Pernambuco

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