plano de ensino

Propaganda
Ministério da Educação
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ
Campus Curitiba
PLANO DE ENSINO
CURSO Engenharia de Computação – Curso 212
MATRIZ
544 / 721
Regido pela Lei nº 9.394, de 20 de dezembro de 1996; pela Resolução CNE/CES n° 11,
FUNDAMENTAÇÃO
de 11 de março de 2002; e a pela Resolução CONFEA/CREA n° 1010, de 22 de agosto
LEGAL
de 2005. Aprovado pela Resolução Nº 84/06 COEPP de 17 de novembro de 2006.
DISCIPLINA/UNIDADE CURRICULAR
Fundamentos de Programação 2
CÓDIGO PERÍODO
IF62C
2º
CARGA HORÁRIA horas)
AT
AP
APS
Total
34
34
4
72
AT: Atividades Teóricas, AP: Atividades Práticas, APS: Atividades Práticas Supervisionadas.
PRÉ-REQUISITO
EQUIVALÊNCIA
IF61C – Fundamentos de Programação 1
OBJETIVOS
Dotar o aluno de conhecimentos aprofundados sobre o paradigma de orientação a objetos ressaltando a
utilização dos seus mecanismos, programação orientada a eventos, programação concorrente e utilização de
componentes e API. Introduzir princípios de projeto de software e posicionar as atividades de projeto e
implementação no processo de desenvolvimento de software. Desenvolver o raciocínio de como abordar
problemas computacionais usando estes conhecimentos e exercitar a aplicação dos mesmos por meio da
utilização de uma linguagem de programação orientada a objetos, de um ambiente integrado de desenvolvimento
e de bibliotecas de componentes.
EMENTA
Estratégias Algorítmicas de Resolução de Problemas. Projeto orientado a objetos. Conceitos de padrões de
projeto e uso de API. Ambientes Integrados de Desenvolvimento e de Prototipação.
CONTEÚDO PROGRAMÁTICO
ITEM
EMENTA
1
Projeto orientado a Objetos
2
Estratégias Algorítmicas de Resolução de
Problemas
3
Conceitos de padrões de projetos e API
4
Ambientes Integrados de Desenvolvimento e
Prototipação
CONTEÚDO
Revisão de conceitos básicos de orientação a objetos: abstração e
encapsulamento, classes, objetos, atributos e métodos. Gestão do
ciclo de vida dos objetos: construtores e destrutores, referência a
objetos, relacionamentos entre objetos, persistência. Herança e
herança múltipla. Propriedades de classes, atributos e métodos:
visibilidade e escopo Sobrecarga de métodos e operadores e
Polimorfismo Princípio da substituição e vinculação dinâmica.
Classes abstratas. Classes aninhadas. Gabaritos (templates).
Engenharia de software e suas fases: ênfase nas fases de projeto e
implementação. Diagrama de classes em UML.
Implementação de métodos e/ou relacionamentos de objetos por
meio de componentes, tais como listas, filas e pilhas. Recursividade.
Programação orientada a eventos. Conceitos de estados e eventos.
Comunicação entre objetos via eventos. Programação concorrente:
linhas de Execução (threads). Problemas de concorrência:
sincronização de threads, leitura/escrita concorrente em objetos
compartilhados, deadlocks, produtor-consumidor.
Conceito geral de padrões. Conceito de padrões de projeto.
Exemplos de padrões de Projeto (e.g. padrões de Gamma).
Aplicações de Padrões de Projeto. Conceito de Application
Programming Interface (API) e exemplos, tais como: acesso a
recursos e serviços do sistema operacional, construção de interfaces
gráficas e comunicação em rede.
Configuração do ambiente de desenvolvimento. Programação
orientada a objetos gráficos (janelas, botões, etc.) e a eventos.
Ambiente de programação “visual” (Wizard & Plug and Play).
Integração de ferramentas CASE e ambientes de desenvolvimento.
Noções de prototipagem rápida em ambientes de desenvolvimento.
Configuração de um ambiente integrado de desenvolvimento.
Programação de aplicações em ambiente integrado de
desenvolvimento. Uso básico de UML, principalmente, notação de
classes e seus relacionamentos, utilizando uma ferramenta case
integrável ao ambiente de desenvolvimento.
REFERÊNCIAS
Referencias Básicas:
1. DEITEL, Harvey M.; DEITEL, Paul J. Java: como programar, 6 ed. São Paulo: Pearson Prentice Hall,
2005.
2. GAMMA, Erich; JOHNSON, Ralph; HELM, Richard; VLISSIDES, John. Padrões de projeto: Soluções
reutilizáveis de software orientado a objetos . Porto Alegre: Bookman, 2002.
3. BARNES, David; KÖLLING, Michael. Programação orientada a objetos com Java. São Paulo:
Pearson Prentice Hall, 2004.
Referências Complementares:
1. SIERRA, Kathy; BATES, Bert. Use a cabeça! Java, 2 ed. Rio de Janeiro: Alta Books, 2007.
2. GOETZ, Brian. Java concurrency in practice. Upper Saddle River: Addison-Wesley, 2006
3. DEITEL, H. M, DEITEL P.J. C++: Como programar, 3 ed. Porto Alegre: Bookman, 2001.
4. LAYNETWORKS. Comparative Study – TCP – UDP. Disponível em
http://www.laynetworks.com/Comparative%20analysis_TCP%20Vs%20UDP.htm
5. ORACLE. Lesson: Concurrency (The Java Tutorials > Essential Classes). Disponível em
http://docs.oracle.com/javase/tutorial/essential/concurrency/
ORIENTAÇÕES GERAIS
Sistema de Avaliação: Conforme previsto no Regulamento da Organização Didático-Pedagógica dos Cursos
de Graduação da UTFPR, capítulo VII, artigo 34, parágrafo 4º: “Considerar-se-á aprovado na disciplina, o aluno
que tiver frequência igual ou superior a 75% (setenta e cinco por cento) e Nota Final igual ou superior a 6,0
(seis), consideradas todas as avaliações previstas no Plano de Ensino”.
Download