EXA805 > Plano de Ensino
EXA 805 – ALGORITMOS E PROGRAMAÇÃO II
Professor
João Batista da Rocha Junior
Carga Horária
60 horas / (T:60; P:00; E:00)
Pré-requisitos
EXA 801 – Algoritmos e Programação I
MI - Algoritmos
Ementa
Noções de paradigmas de linguagem de programação. Princípios de orientação a objetos: objetos, classes, atributos, métodos, mensagens, encapsulamento, herança, composição, polimorfismo, interfaces, acoplamento e ligação dinâmica. Interfaces gráficas e programação orientada a eventos. Tratamento de exceções. Princípios de testes e depuração de programas. Testes de unidade e de integração. Padrão arquitetural MVC. Diagramas de classes da UML. Mapeamento de diagramas de classes para código-fonte. Heurísticas de projeto orientado a objetos: CRC, GRASP e SOLID.
Objetivos, Habilidades e Competências (geral)
Desenvolver nos estudantes a habilidade de projetar, implementar e depurar programas utilizando os princípios fundamentais da programação orientada a objetos, explorando paradigmas de linguagens de programação e aplicando padrões arquiteturais modernos.
Objetivos, Habilidades e Competências (específicos)
Dominar Princípios de Orientação a Objetos;
Interpretar e criar diagramas de classes da UML, além de mapear esses diagramas para código-fonte;
Aprimorar Habilidades de Testes e Depuração;
Desenvolver habilidades na criação de interfaces gráficas e programação orientada a eventos;
Aplicar Padrão Arquitetural MVC e Heurísticas de Projeto;
Utilizar heurísticas de projeto orientado a objetos, como CRC, GRASP e SOLID, para criar e refinar soluções de software robustas e eficientes.
Ter noções de paradigmas de linguagem de programação
Habilidades e Competências
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.
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;
Aplicar estruturas de dados orientadas a objetos para modelar dados simples e complexos a partir de problemas reais;
Tratar erros e exceções em programas na linguagem Java;
Criar interfaces gráficas simples na linguagem Java.
Saber criar diagramas de classe, utilizando UML
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. Princípios de testes e depuração de programas. Construção e uso de bibliotecas básicas.
Introdução
Orientação à 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
Classes abstratas e interfaces
Atributos e métodos estáticos
Tratamento de exceções
Estruturas de dados básicas (Collections Framework)
Princípios de testes e depuração de programas.
Testes de unidade e de integração.
Programação orientada à eventos
Interface gráfica (Layout Managers)
Padrão arquitetural MVC
Diagramas de classes da UML
Mapeamento de diagramas de classes para código-fonte
Heurísticas de projeto orientado a objetos: CRC, GRASP e SOLID.
Paradigmas de Programação
Metodologia
A metodologia deste módulo será de Aulas Expositivas, mas haverá integração com os módulos do Estudo Integrado de Programação e Matemática Discreta. As Aulas Expositivas serão dialogadas com o objetivo de introduzir assuntos que serão tratados mais detalhadamente nos problemas do Estudo Integrado de Programação.
Material Utilizado
Salas tradicionais de aula, com quadro negro ou branco, kit para escrever nos quadros, retroprojetor, computador e projetor multimídia.
Avaliação
O módulo será dividido em três unidades, para que o estudante possa refletir sobre sua situação em diferentes momentos do curso e, caso necessário, realizar correções de rumo no processo de aprendizagem.
Medidas da Unidade
A medida de cada uma das três unidades será extraída de uma média ponderada de uma prova escrita, com peso 10.
Média Parcial
A média parcial será a média aritmética das medidas de cada unidade. Obtendo média igual ou superior a 7,0 (sete), o estudante pode ser aprovado, caso cumpra os requisitos de frequência.
Prova Final
Não obtendo média parcial suficiente na avaliação do módulo, o estudante poderá fazer prova final, e a média final será calculada de acordo com o sistema de avaliação vigente na UEFS.
Aprovação no módulo
Para ser aprovado no módulo, o estudante precisa cumprir os seguintes requisitos:
Ter frequência igual ou superior a 75% da carga horária efetiva ministrada no módulo, caso contrário haverá reprovação por frequência; Ser aprovado na avaliação do módulo, caso contrário haverá reprovação por nota.
Referências
ECKEL, B. Thinking in Java, Prentice Hall, 2002
ECKEL, Bruce. Pensando em Java (tradução de Thinking in Java). Online.
The Java Tutorials. Online.
Lynn Andrea Stein. Interactive Programming in Java. Online.
IEEE e ACM. Software Engineering Code of Ethics and Professional Practice. Online.
Qualiti Software Processes. Padrão de codificação Java. Online.
Java API. Online.
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. ObjectOriented Sofware Construction, segunda edição, Prentice Hall PTR, 2000.
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.