EXA 805 – Algoritmos e Programação II
AVISOS:
Resultados no portal do aluno.
Universidade Estadual de Feira de Santana
Departamento de Ciências Exatas
Período Letivo 2011.2
Plano de Ensino do Componente Curricular
EXA 805 – ALGORITMOS E PROGRAMAÇÃO II
Professor: Angelo Loula
Carga Horária
30 horas
Pré-requisitos
EXA 801 – Algoritmos e Programação I
Ementa
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.
Apresentação
Algoritmos e Programação II avança nas técnicas de programação apresentando um novo paradigma: programação orientada a objetos. O conhecimento de algoritmos e programação estrutural será a base para uma nova visão de modelagem do mundo. A linguagem de programação Java será a linguagem adotada pelo curso e aspectos tecnológicos desta linguagem serão abordados.
Objetivos, Habilidades e Competências
Geral:
• Ser capaz de resolver problemas através da interpretação de cenários do mundo real, modelando soluções através de modelos e programas orientados a objetos e implementando as soluções através de programas de computador escritos na linguagem Java.
Específicos:
• Compreender a modelagem e programação orientada a objetos, e conceitos básicos relacionados;
• Ser capaz de escrever, compilar, depurar e testar programas na linguagem de programação Java;
• Utilizar software de edição de texto, compilação e depuração para o desenvolvimento de programas em linguagem Java;
• Aplicar estruturas de dados orientadas a objetos para modelar dados simples e complexos a partir de problemas reais;
• Criar interfaces gráficas simples na linguagem Java;
• Tratar erros e exceções em programas na linguagem Java;
O aluno dessa disciplina deverá ser capaz de:
• Identificar problemas de informação e, na medida do possível, solucioná-los para atingir os objetivos esperados;
• Analisar e solucionar problemas, através do uso sistemático de programas orientados a objetos;
• Entender os conceitos de modelagem de soluções orientadas a objetos, tendo em vista as técnicas de programação e a linguagem Java;
• Dominar comandos básicos, estruturas de dados e tecnologias básicas da Linguagem Java;
• Implementar sistemas de computação orientados a objetos conforme as especificações dos mesmos.
Conteúdo Programático
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.
Introdução
Paradigmas de Programação
Orientação a Objetos
Conceitos Básicos:
Objetos
Classes
Atributos e Estado
Métodos, Mensagens e Comportamentos
Encapsulamento
Herança
Polimorfismo e Ligação Dinâmica
Relacionamentos e Composição
Acoplamento e Coesão
Linguagem de Programação Java
Implementação de Classes e Objetos
Classes, Atributos e Métodos Final
Classes Abstratas e Interface
Atributos e Métodos Estáticos
Tratamento de Exceções
Estruturas de Dados Básicas (Collections)
Generics
Manipulação de Arquivos
Interface Gráfica e programação orientada a eventos
Threads
Metodologia
A metodologia deste módulo será de Aulas Expositivas, mas haverá integração com os módulos do Estudo Integrado de Programação, Estrutura de Dados, e Matemática Discreta.
As Aulas Expositivas serão aulas dialogadas com o objetivo de introduzir assuntos que serão tratados mais detalhadamente nos problemas do Estudo Integrado de Programação, complementar o processo de aprendizagem após o final de um problema ou até mesmo discutir outros assuntos que não serão abordados nos Grupos Tutoriais.
Material Utilizado
Salas tradicionais de aula, com quadro negro ou branco, kit para escrever nos quadros, retro-projetor, computador e canhão multimídia.
Avaliação
O módulo terá três avaliações de conteúdo (AC) no formato de prova escritas respondidas individualmente em sala de aula.
A média ponderada (MP) corresponderá à avaliação deste módulo e será composta pelas ACs e também pela avaliação dos produtos de grupos tutoriais (PGT) desenvolvido no Estudo Integrado de Programação.
A média de PGT (MPGT) será calculada pela média aritmética () das avaliações de cada PGT avaliado no Estudo Integrado.
A média de avaliações de conteúdo (AC) serão dadas pela média aritmética das três avaliações de conteúdo.
O cálculo da MP então será o seguinte:
MP = 0,7 MAC + 0,3 MPGT
Os alunos que já foram aprovados em semestre anterior no Estudo Integrado de Programação terão sua MP deste módulo igual a MAC.
Calendário (tentativa)
Referências
SANTOS, R. Introdução à Programação Orientada a Objetos usando Java. Campus, 2003.
KOLLING, M e BARNES, D. J. Programação Orientada a Objetos com Java, Pearson, 2004.
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, Addison-Wesley Pub Co, 1983.
KNUTH, D. The Art of Computer Programming, vol. I e III, Addison-Wesley Pub Co, 1998.
ECKEL, Bruce. Pensando em Java (tradução de Thinking in Java). On-line.
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.
SEDGEWICK, R. e SCHIDLOWSKY, M. Algorithms in Java, terceira edição, Addison-Wesley Pub Co, 2002.
LAFORE, R. Estruturas de Dados e Algoritmos em Java, Ciência Moderna, 2005.
PREISS, B. R. Estruturas de Dados e Algoritmos, Campus, 2001.
WEISS, M.A. Data Structures and Algorithm Analysis in Java, Addison Wesley, 1998.
GOODRICH, M.T. e TAMASSIA, R. Estruturas de Dados e Algoritmos em Java, segunda edição, Bookman, 2002.
The Java Tutorial: http://java.sun.com/docs/books/tutorial