programa de disciplina

Propaganda
UNIVERSIDADE ESTADUAL DE FEIRA DE SANTANA
Autorizada pelo Decreto Federal nº 77.496 de 27/04/76
Reconhecida pela Portaria Ministerial nº 874/86 de 19/12/86
Recredenciada pelo Decreto Estadual Nº 9.271 de 14/12/2004
DIVISÃO DE ASSUNTOS ACADÊMICOS
Secretaria Geral de Cursos
PROGRAMA DE DISCIPLINA
DEPARTAMENTO DE CIÊNCIAS EXATAS
CÓDIGO: EXA804
DISCIPLINA: PROGRAMAÇÃO
CARGA HORÁRIA: 180h
EMENTA:
Estudo aprofundado de metodologias de programação, modelos de algoritmos e
estruturas de dados avançadas que compõem os programas de computador, além das
estruturas matemáticas discretas subjacentes aos modelos estudados.
Este estudo integrado é composto dos seguintes módulos:
M4.1 - Algoritmos e Programação II
M4.2 - Estruturas de Dados
M4.3 - Estruturas Discretas
MÓDULO 4.1 :
EXA 805 - ALGORITMOS E PROGRAMAÇÃO II
C.H.: 60 h
Cred.: 3 (2.1.0)
Tipos abstratos de dados; independência entre especificação e
implementação. Princípios de orientação a objetos: objetos, classes, atributos,
métodos, mensagens, encapsulamento, herança, composição, polimorfismo,
interfaces, acoplamento, ligação dinâmica. Interfaces gráficas e programação
orientada a eventos. Estruturas de dados básicas: tabelas, listas simples e
encadeadas, pilhas, filas. Métodos de ordenação. Tratamento de exceções.
Princípios de testes e depuração de programas. Construção e uso de bibliotecas;
compilação independente e em separado.
MÓDULO 4.2 :
EXA 806 - ESTRUTURAS DE DADOS
C.H.: 60 h
Cred.: 3 (2.1.0)
- 1 de 12 -
UNIVERSIDADE ESTADUAL DE FEIRA DE SANTANA
Autorizada pelo Decreto Federal nº 77.496 de 27/04/76
Reconhecida pela Portaria Ministerial nº 874/86 de 19/12/86
Recredenciada pelo Decreto Estadual Nº 9.271 de 14/12/2004
EMENTA (Continuação):
Filas com prioridades. Árvores: terminologia e implementação. Árvores
binárias, balanceamento de árvores binárias, árvores B. Conjuntos: conceituação,
implementação, métodos de representação. Métodos de busca e ordenação.
Hashing. Grafos orientados e não orientados. Gerenciamento de memória.
Organização de arquivos.
MÓDULO 4.3 :
EXA 807 - ESTRUTURAS DISCRETAS
C.H.: 60 h
Cred.: 3 (2.1.0)
Conjuntos, relações, funções. Indução e recursão. Princípios de contagem,
combinatória. Grafos e árvores: grafos não orientados e orientados, árvores, árvore
geradora. Estruturas algébricas. Reticulados e álgebras booleanas. Técnicas de
demonstração de teoremas.
OBJETIVOS:
•
•
•
•
•
•
•
•
•
•
Geral:
Ser capaz de desenvolver software segundo o paradigma da orientação a objetos,
utilizando apropriadamente as estruturas de dados fundamentais, com domínio das
abstrações da matemática discreta subjacentes aos modelos estudados.
Específicos:
Compreender os conceitos fundamentais da programação orientada a objetos.
Desenvolver sistemas de software utilizando uma linguagem orientada a objetos
(Java).
Compreender como programas em Java podem ser adequadamente escritos,
estruturados e documentados;
Explorar um ambiente de suporte a Java, incluindo ferramentas e bibliotecas;
Compreender conceitos avançados da tecnologia de software orientada a objetos,
incluindo linguagens, análise, arquiteturas, desenvolvimento, refinamento,
padrões, aplicações e sistemas orientados a objetos.
Compreender as estruturas de dados fundamentais mais utilizadas, sua
implementação, sua manipulação, suas aplicações e seus custos.
Compreender o impacto da utilização de certas estruturas de dados na solução de
problemas
Decidir sobre as estruturas de dados que melhor se adaptam a solução de um
determinado problema.
Desenvolver técnicas para a implementação das estruturas.
- 2 de 12 -
UNIVERSIDADE ESTADUAL DE FEIRA DE SANTANA
Autorizada pelo Decreto Federal nº 77.496 de 27/04/76
Reconhecida pela Portaria Ministerial nº 874/86 de 19/12/86
Recredenciada pelo Decreto Estadual Nº 9.271 de 14/12/2004
OBJETIVOS (Continuação):
• Compreender a complexidade (custo) de um algoritmo, o que torna possível
compará-lo com outros e decidir se um algoritmo é ótimo.
• Desenvolver algoritmos de busca, inserção e remoção, bem como aplicações
práticas de tais estruturas na solução de problemas reais.
• Pesquisar vários algoritmos de ordenação, compreendendo as vantagens e
desvantagens dos mesmos.
• Perceber a importância da escolha de algoritmos eficientes
• Compreender princípios, técnicas e metodologias associadas a problemas de
estruturas discretas.
• Compreender conceitos matemáticos fundamentais às disciplinas da computação
• Compreender a aplicação, em situações práticas, dos conceitos matemáticos
• Aprender a encontrar modelos matemáticos que representem certos problemas
concretos (noções de modelagem matemática), em especial quando estes se
referem a situações práticas
• Familiarizar-se com a escrita matemática formal e a linguagem computacional
• Representar fenômenos na forma algébrica e na forma gráfica
• Conhecer técnicas de resolução de problemas
• Desenvolver a capacidade de raciocínio abstrato (lógico-matemático) como um
todo
• Obter uma visão abrangente de uma parte significativa da Computação.
• Aplicar os conceitos básicos da Matemática Discreta como uma ferramenta
Matemática para investigações e aplicações precisas em Computação
METODOLOGIA:
•
•
•
•
A metodologia será um híbrido de Grupos Tutoriais ( GT), Consultorias Individuais (CI)
e Coletivas (CC) e Aulas Expositivas (AE).
A seguir apresentamos os alcances de cada uma destas estratégias metodológicas:
Durante todo o curso serão realizadas atividades seguindo a metodologia PBL
(Aprendizagem Baseada em Problemas), a qual consistirá basicamente de grupos tutoriais
(GT) que objetivam solucionar os problemas e/ou projetos que serão propostos. Esses
problemas devem ser resolvidos conforme critérios determinados em documento anexo a
cada problema;
Os GTs,
baseados na estratégia de PBL (Aprendizagem baseada em problemas),
permitirão ao aluno chegar ao conhecimento através do processo de reflexão consigo
mesmo e das relações com os outros alunos do grupo;
As CIs e CCs permitirão ao aluno estabelecer diferentes canais de diálogo no processo de
resolução de problemas.
As AEs serão aulas expositivas dialogadas com o objetivo de introduzir assuntos que
serão tratados mais detalhadamente nos problemas, complementar o processo de
- 3 de 12 -
UNIVERSIDADE ESTADUAL DE FEIRA DE SANTANA
Autorizada pelo Decreto Federal nº 77.496 de 27/04/76
Reconhecida pela Portaria Ministerial nº 874/86 de 19/12/86
Recredenciada pelo Decreto Estadual Nº 9.271 de 14/12/2004
METODOLOGIA (Continuação):
aprendizagem após o final de um problema ou até mesmo discutir outros assuntos que não
serão abordados no GT.
Material Utilizado
Para os GTs:
• Salas acondicionadas para PBL, com quadro branco, kit para escrever no quadro, cadeiras
e mesa de reunião.
Para as AEs e CCs:
• Salas tradicionais de aula, com quadro negro ou branco, kit para escrever nos quadros,
retro-projetor, computador e canhão multimídia.
Para as CIs:
• Sala do professor com quadro branco, kit para escrever nos quadros, computador,
impressora, cadeiras e mesa.
AVALIAÇÃO:
No componente curricular estudo integrado, a avaliação tem duas dimensões: a
dimensão global, onde se avaliam as competências gerais e específicas adquiridas pelo
estudante, e a dimensão modular, onde se avalia a proficiência de cada estudante no
conhecimento dos assuntos específicos de cada módulo componente do estudo integrado.
Além disso, o estudo integrado será dividido em duas unidades, para que o
estudante possa refletir sobre sua situação na metade do curso e, caso necessário, realizar
correções de rumo no processo de aprendizagem.
Avaliação do Estudo Integrado:
O conceito de cada uma das duas unidades será calculado a partir de uma média
ponderada (MPEI) de produtos de grupos tutoriais (PGT) e do desempenho nos grupos
tutoriais (DGT), dada abaixo:
MPEI= 0,7 PGT + 0,3 DGT
• Ao final de cada problema, os alunos deverão, individualmente ou em grupo, gerar um
produto ou apresentação conforme designado para cada problema;
• A média PGT será calculada a partir de uma ponderação das notas obtidas nos produtos
ou apresentações gerados;
• Durante os Grupos Tutoriais, os alunos serão avaliados por seu desempenho (DGT),
sendo consideradas as dimensões de participação, contribuição efetiva, criatividade,
entrosamento e respeito mútuo em cada um dos passos do ciclo PBL;
- 4 de 12 -
UNIVERSIDADE ESTADUAL DE FEIRA DE SANTANA
Autorizada pelo Decreto Federal nº 77.496 de 27/04/76
Reconhecida pela Portaria Ministerial nº 874/86 de 19/12/86
Recredenciada pelo Decreto Estadual Nº 9.271 de 14/12/2004
AVALIAÇÃO (Continuação):
• A média ponderada de cada unidade será transformada em um conceito, utilizando as
escalas tradicionais de conversão de notas para conceitos usadas na UEFS. Os dois
conceitos resultantes serão os conceitos finais para a avaliação integrada dos alunos,
correspondente a um dos requisitos para a aprovação no estudo integrado, que é a
avaliação das competências;
• As datas para entrega dos produtos da resolução dos problemas serão definidas ao longo
do curso.
Avaliação do Módulo:
A nota final de cada módulo será calculada a partir de uma média ponderada
(MPM) de produtos de grupos tutoriais referentes ao módulo (PGTM) e avaliações de
conteúdo do módulo (AC), dada abaixo:
Algoritmos e Programação II:
MPM = 0,7 PGTM + 0,3 AC
Estruturas de Dados
MPM = 0,5 PGTM + 0,5 AC
Estruturas Discretas
MPM = 0,2 PGTM + 0,8 AC
• A média PGTM será calculada a partir de uma ponderação das notas obtidas nos produtos
ou apresentações gerados dos problemas relativos ao módulo em questão;
• Cada problema que agregue conteúdo do módulo terá uma avaliação específica dos
aspectos relativos a este conteúdo (não necessariamente a mesma nota da avaliação
integrada do problema/projeto) e esta nota será ponderada na média PGTM de acordo
com a participação do conteúdo do problema no total do conteúdo do módulo;
• As provas tratarão dos conteúdos abordados no módulo e serão provas escritas,
individuais e sem consulta.
• A média ponderada MPM não será transformada em um conceito, pois a avaliação dos
módulos é realizada através de notas.
• As datas para entrega dos produtos da resolução dos problemas e provas serão definidas
ao longo do curso.
Provas Finais:
• Não obtendo conceito suficiente na avaliação de competências do estudo integrado, o
estudante poderá fazer prova final do estudo integrado, e o conceito final será de acordo
com o sistema de avaliação vigente na UEFS.
• Não obtendo nota igual o superior a 7,0 (sete) na avaliação da proficiência no módulo, o
estudante poderá fazer prova final do módulo. O conceito final do módulo será uma média
- 5 de 12 -
UNIVERSIDADE ESTADUAL DE FEIRA DE SANTANA
Autorizada pelo Decreto Federal nº 77.496 de 27/04/76
Reconhecida pela Portaria Ministerial nº 874/86 de 19/12/86
Recredenciada pelo Decreto Estadual Nº 9.271 de 14/12/2004
AVALIAÇÃO (Continuação):
ponderada do conceito anterior (peso seis) com a prova final (peso quatro). O conceito
final do módulo deverá ser igual ou superior a 5,0 (cinco) para aprovação no módulo.
Aprovação no Estudo Integrado:
Para ser aprovado no estudo integrado, o estudante precisa cumprir os seguintes
requisitos:
• Ter frequência igual ou superior a 75% da carga horária efetiva ministrada no estudo
integrado, caso contrário haverá reprovação por freqüência e o estudo integrado completo
deverá ser cursado novamente;
• Ser aprovado na avaliação integrada das competências para o estudo integrado, caso
contrário haverá reprovação por conceito e o estudo integrado completo deverá ser
cursado novamente;
• Caso os requisitos anteriores tenham sido cumpridos, o estudante deverá ainda ser
aprovado na avaliação de proficiência de cada módulo componente do estudo integrado,
caso contrário sua situação ficará pendente até que seja aprovado em novas avaliações do
módulo em período(s) subsequente(s), não necessitando, entretanto, freqüentar novamente
as atividades regulares do estudo integrado, bastando realizar as atividades de avaliação.
CONTEÚDO PROGRAMÁTICO:
1)
2)
3)
AP2: Noções básicas de orientação a objetos
• Objetos e classes;
• Atributos e métodos;
• Mensagens;
• Encapsulamento;
• Construtores e sobrecarga de métodos;
AP2: Interfaces gráficas e programação orientada a eventos
• Componentes e contâineres;
• Rótulos, caixas de texto e áreas de texto;
• Botões simples, botões de rádio, botões liga-desliga;
• Listas de seleção;
• Tratamento de eventos (mouse, teclado, foco, etc.);
• Interfaces de tratamento de eventos e classes adaptadoras;
• Gerenciadores de layout;
• Janelas, painéis, independência da GUI;
• Menus (simples e de contexto);
• Outros componentes gráficos.
AP2: Tratamento de exceções
• Tratamentos a priori e a posteriori
• Mecanismos de tratamento de exceções do Java
- 6 de 12 -
UNIVERSIDADE ESTADUAL DE FEIRA DE SANTANA
Autorizada pelo Decreto Federal nº 77.496 de 27/04/76
Reconhecida pela Portaria Ministerial nº 874/86 de 19/12/86
Recredenciada pelo Decreto Estadual Nº 9.271 de 14/12/2004
CONTEÚDO PROGRAMÁTICO (Continuação):
4) ED: Conjuntos
• Diagrama de Venn;
• Paradoxo de Russell;
• União;
• Interseção;
• Complemento;
• Diferença;
• Conjunto de Partes;
• Produto Cartesiano;
• Relação entre Lógica e Teoria de Conjuntos;
• Teoria de Conjuntos e linguagem de Programação;
• Teoria de Conjuntos e Teoria da Computação.
5) ED: Relações
• Relação;
• Relação como Matriz;
• Relação dual;
• Composição de Relações;
• Relação Funcional;
• Relação Injetora;
• Monomorfismo;
• Epimorfismo;
• Banco de Dados Relacional;
• Rede de Petri;
• Relações nas linguagens de Programação
• Relações de Ordem;
• Classificação e Dados;
• Diagrama de Hasse,
• Conjuntos Ordenados;
• Equivalência;
• Partição.
6) ED: Funções
• Função Parcial;
• Autômato Finito;
• Função Total;
• Construções Matemáticas como Funções;
• Função Hashing;
• Funções nas linguagens de Programação.
7) AP2: Tipos abstratos de dados
• Conceito e aplicações;
• independência entre especificação e implementação;
- 7 de 12 -
UNIVERSIDADE ESTADUAL DE FEIRA DE SANTANA
Autorizada pelo Decreto Federal nº 77.496 de 27/04/76
Reconhecida pela Portaria Ministerial nº 874/86 de 19/12/86
Recredenciada pelo Decreto Estadual Nº 9.271 de 14/12/2004
CONTEÚDO PROGRAMÁTICO (Continuação):
• Suporte nas linguagens de programação.
8) Estruturas de dados básicas
• Operações básicas: inclusão, busca e remoção;
• Noções de análise de algoritmos:
• análise do uso de recursos (memória e processamento);
• abstração matemática;
• Tabelas;
• Listas simples e encadeadas;
• Pilhas e filas: estrutura, operações.
9) Filas com prioridades
• Conceito
• Filas de prioridade máxima e filas de prioridade mínima
• Implementações triviais: usando listas
• Implementações com heaps
10) Métodos de ordenação
• O problema;
• Soluções triviais: Bubblesort e por inserção;
• Mergesort;
• Heapsort;
• Quicksort;
• Comparativo de custos.
11) AP2: Tópicos avançados em programação orientada a objetos
• Interfaces;
• Herança;
• Composição;
• Polimorfismo, acoplamento e ligação dinâmica.
12) AP2: Construção e uso de bibliotecas
• Idéia geral: compilação independente e em separado
• Suporte em Java (classes e pacotes)
13) ED: Indução e recursão.
• Princípio da Indução Matemática;
• Prova Indutiva;
• Segundo Princípio da Indução Matemática;
• Definição Indutiva;
• Expressões Regulares;
• Computações de um Autômato Finito;
• Funções recursivas;
• Substituição;
• Recursão primitiva.
• Função recursiva parcial.
- 8 de 12 -
UNIVERSIDADE ESTADUAL DE FEIRA DE SANTANA
Autorizada pelo Decreto Federal nº 77.496 de 27/04/76
Reconhecida pela Portaria Ministerial nº 874/86 de 19/12/86
Recredenciada pelo Decreto Estadual Nº 9.271 de 14/12/2004
CONTEÚDO PROGRAMÁTICO (Continuação):
14) Árvores
• Conceito e terminologia
• Implementação
• Operações básicas: inclusão, busca e remoção.
15) Árvores binárias
• Conceito
• Operações básicas: inclusão, busca e remoção
• Balanceamento
• Aplicações
• Árvores de pesquisa.
16) Árvores Rubro-negras
• Definição
• Controle da altura
• Rotações
• Operações básicas
• Aplicações
17) Árvores B
• Definição
• Questões de armazenamento
• Implementação
• Operações Básicas
• Aplicações
18) AP2: Princípios de testes
• Erros: tempo de compilação, tempo de execução e semânticos
• Testes sistemáticos
• Depuração de programas: técnicas e ferramentas
19) Métodos de busca
• Comparações entre estruturas de dados para busca
• Aplicações
20) Hashing
• Tabelas hash
• Resolução de colisões
• Funções hash
• Aplicações
21) ED: Grafos e árvores
• Grafos;
• Caminhos em Grafos;
• Ciclos em Grafos;
• Conexidade;
• Conectividade;
- 9 de 12 -
UNIVERSIDADE ESTADUAL DE FEIRA DE SANTANA
Autorizada pelo Decreto Federal nº 77.496 de 27/04/76
Reconhecida pela Portaria Ministerial nº 874/86 de 19/12/86
Recredenciada pelo Decreto Estadual Nº 9.271 de 14/12/2004
CONTEÚDO PROGRAMÁTICO (Continuação):
• Definição de Árvore;
• Árvore Geradora;
• Árvore Binária;
• Representações computacionais de um grafo.
22) Gerenciamento de memória
• Memória primária
• Memória secundária
23) Organização de arquivos
• Organizações típicas de arquivos
• compressão de dados
24) ED: Estruturas algébricas
• Operações Binárias;
• Propriedades das Operações Binárias;
• Monóides;
• Semigrupos;
• Grupos;
• Homomorfismo de Monóides;
• Homomorfismo de Semigrupos;
• Homomorfismo de Grupos.
25) ED: Reticulados e álgebras booleanas.
• Reticulados;
• Reticulado com Relação de Ordem;
• Reticulado como Álgebra;
• Reticulado Distributivo;
• Reticulado Limitado;
• Reticulado Complemento;
• Subreticulado;
• Álgebra Booleana;
• Função Monotônica;
• Homomorfismo de Reticulados;
• Homomorfismo de Álgebras Booleanas.
26) ED: Princípios de contagem, combinatória.
• Princípio da Multiplicação;
• Permutações;
• Combinações;
• Permutações com Repetição;
• Combinações com Repetições;
• Principio da Inclusão e Exclusão;
• Principio da Casa dos Pombos;
• Gerando permutações;
- 10 de 12 -
UNIVERSIDADE ESTADUAL DE FEIRA DE SANTANA
Autorizada pelo Decreto Federal nº 77.496 de 27/04/76
Reconhecida pela Portaria Ministerial nº 874/86 de 19/12/86
Recredenciada pelo Decreto Estadual Nº 9.271 de 14/12/2004
CONTEÚDO PROGRAMÁTICO (Continuação):
• Gerando Subconjuntos;
• O problema do Troco.
27) Conjuntos
• Conceito
• Representação:
• Operações: inclusão, remoção, pertinência, união, interseção, diferença,
cardinalidade
• Iteradores
• Implementações: árvores binárias e tabelas hash
• Aplicações
28) Grafos
• Definição
• Tipos: orientados e não orientados
• Representações: listas de adjacências e matrizes de adjacências
• Algoritmos de pesquisa: primeiro na extensão e primeiro na profundidade
• Aplicação: caminho mais curto
REFERÊNCIA BIBLIOGRÁFICA:
HORSTMANN, C. e CORNELL, G. Core Java 2, V.1: Fundamentos, Makron, 2000.
DEITEL, H.M. e DEITEL, P.J. JAVA: Como Programar, Bookman Companhia
Editora, 2003.
ECKEL, B. Thinking in Java, Prentice Hall, 2002.
MEYER, B. Object-Oriented Sofware Construction, segunda edição, Prentice Hall
PTR, 2000.
CORMEN, T.H., LEISERSON, R.L., RIVEST, R.L. e STEIN, C. Introduction to
Algorithms, segunda edição, MIT Press, 2001.
AHO, A., HOPCROFT, J. e ULLMAN, J. Data Structures and Algorithms, AddisonWesley Pub Co, 1983.
KNUTH, D. The Art of Computer Programming, vol. I e III, Addison-Wesley Pub Co,
1998.
LAFORE, R. Data Structures and Algorithms in Java, segunda edição, SAMS, 2002.
GOODRICH, M.T. e TAMASSIA, R. Data Structures and Algorithms in Java,
segunda edição, Wiley, 2000.
- 11 de 12 -
UNIVERSIDADE ESTADUAL DE FEIRA DE SANTANA
Autorizada pelo Decreto Federal nº 77.496 de 27/04/76
Reconhecida pela Portaria Ministerial nº 874/86 de 19/12/86
Recredenciada pelo Decreto Estadual Nº 9.271 de 14/12/2004
REFERÊNCIA BIBLIOGRÁFICA (Continuação):
SEDGEWICK, R. e SCHIDLOWSKY, M. Algorithms in Java, terceira edição, AddisonWesley Pub Co, 2002.
WEISS, M.A. Data Structures and Algorithm Analysis in Java, Addison Wesley,
1998.
MENEZES, P. B. Matemática Discreta para Computação e Informática, Série Livros
Didáticos, Editora Sagra Luzzatto, 2004.
GERSTING, J.L. Fundamentos Matemáticos para Ciência da Computação. Quarta
Edição. Rio de Janeiro: LTC, 2001.
ROSEN, K.H. Discrete Mathematics and Its Applications , quinta edição, McGraw-Hill
Science, 2003.
Sites
- 12 de 12 -
Download