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

Material do Curso

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