Escolar Documentos
Profissional Documentos
Cultura Documentos
PLANO DE ENSINO
Programa de Pó-graduação em Computação Aplicada –
Mestrado Profissional (PPGCA)
CURSO MATRIZ Primeira
Curso-Programa de Pós-graduação em Engenharia
Elétrica e Informática Industrial (CPGEI).
OBJETIVOS
Instruir o aluno a Programação Orientada a Objetos (POO), a Eventos, a Componentes, a Interfaces de Programação
de Aplicação (Application Programming Interafaces – APIs), a Projeto e ao enquadramento do Projeto/Implementação
no Processo de Desenvolvimento de Logiciaria (i.e. software). Desenvolver o raciocínio na abordagem de problemas
computacionais usando este ferramental. Utilizar os mecanismos deste ferramental utilizando a linguagem de
Programação Orientada a Objeto C++ e seus adendos, bem como a sua conexão para com a Linguagem de Unificada
de Modelagem (Unified Modeling Language - UML), conceitualmente e tecnicamente, este via ferramenta de Eng. de
Software/Sistema Auxiliada por Computador (Computer Aided Software/System Engineering - C.A.S.E.).
EMENTA
Programação Orientada a Objetos.
Programação Orientada a Componentes - Standard Template Library.
Programação Orientada a Padrões.
Programação Orientada a Eventos.
Programação Visual (Formulários e Objetos Gráficos).
Programação Concorrente (Linhas de Execução ou Threads).
CONTEÚDO PROGRAMÁTICO
ITEM EMENTA CONTEÚDO
- Engenharia de software e suas fases: ênfase nas fases de projeto e
implementação.
- Conceitos básicos de orientação a objetos: abstração e encapsulamento,
classes, objetos, atributos e métodos (em diagramas de classes UML e em
linguagem de Programação OO C++)
- Recursividade de métodos.
- Gestão do ciclo de vida dos objetos: construtores e destrutores, referência a
1
Programação Orientada objetos, relacionamentos entre objetos, persistência
a Objetos (POO)
- 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 (ligação dinâmica).
- Classes abstratas, Classes aninhadas, Gabaritos (template)
- Programação em Ambiente C++ com aplicações console;
- Projeto UML (Diagrama de Classes particularmente) em Ferramenta
C.A.S.E conectável ao Ambiente C++;
3
Programação Orientada - Conceito de Padrões de Projeto;
a Padrões. - Exemplos de Padrões de Projeto (e.g. Padrões Gang of four);
- Aplicações de Padrões de Projeto;
- Configuração do Ambiente de Desenvolvimento;
- Conceitos de Programação Orientada a Eventos;
Programação Orientada - Conceitos de Estados e Eventos;
4
a Eventos - Comunicação entre Objetos via Eventos.
- Programação Orientada a Objetos Gráficos (janelas, botões, etc.) e a
Eventos;
- Programação Orientada a Objetos Gráficos (janelas, botões, etc.) e a
Eventos;
- Programação em Ambiente C++ com suporte a Objetos Gráficos e
Programação Visual.
Programação Visual - Ambiente de Programação ‘Visual’ ou “Ferramenta Feiticeira” (Wizard
5 Formulários e Objetos Tool);
Gráficos). - Noções de Prototipagem Rápida em Ambientes de Desenvolvimento ou
Rapid Application Development (RAD).
- Ferramentas Engenharia de Software/Sistema Auxiliada por Computador ou
Computer Aided Software/System Engineering (C.A.S.E.).
- Integração de Ferramenta C.A.S.E. e Ambientes de Desenvolvimento POO;
- Programação Concorrente: Linhas de Execução (Threads);
Programação Concorrente - Programação Concorrente OO: Linhas de Execução (Threads);
6 (Linhas de Execução ou - Problemas de Concorrência: Sincronização de Threads, Leituras
Threads). Concorrentes em Objetos Compartilhados, Bloqueios Mortais (Deadlocks).
- Produtor-Consumidor.
PROFESSOR TURMA
Prof. Dr. Jean Marcelo SIMÃO & Prof. Dr. Robson Ribeiro Linhares S11
14/06 Relações um para um, um para n e n para n em classes C++ e UML. Relacionamentos entre objetos via 4
listas encadeadas elementares e bem formadas. Coação de ponteiros, operador this e alocação dinâmica de
Terça-feira memória em C++ (new e delete). Princípios de alta coesão e baixo acoplamento.
PROGRAMAÇÃO E CONTEÚDOS DAS AULAS (PREVISÃO)
Dia/Mês Conteúdo das Aulas N. Aulas
Diag. de Classes UML para análise-projeto e correspondência com código C++: classes, objetos,
associação, agregação/composição e herança. Ferramenta C.A.S.E.
Recursividade de métodos.
Métodos virtuais, puros ou não. Ligação dinâmica. Polimorfismo. Classe abstrata. Herança múltipla.
4. Namespace. Classes aninhadas. Estáticos. Classe String.
28/06 Biblioteca Padrão de Gabaritos (STL – Standard Template Library). - Vector e List. 4
Implementação de relacionamentos por meio de componentes (STL).
Terça-feira
Exemplos de outros contêineres da STL:
- Filas/Bifilas/Filas de Prioridade, Pilhas.
- Conjuntos/Multi-Conjuntos. Mapas/Multi-Mapas.
26/07
Férias docentes 0
6. Contra-correção de prova.
Terça-feira (Cada aluno em uma dezena de minutos apresentará o estado de desenvolvimento de seu trabalho.
A apresentação deveria trazer requisitos e um diagrama de classes.)
Exemplos de API para interfaces gráficas e acesso a recursos e serviços do S.O. (e.g. Threads).
PROCEDIMENTOS DE ENSINO
AULAS TEÓRICAS
O Professor efetivará a aprendizagem ministrando as aulas e os conteúdos corretamente.
O Professor efetivará a aprendizagem ministrando as aulas e os conteúdos corretamente o que inclui o estímulo a
atenção, a relação com a aplicação prática, a abertura a questionamentos, a questionamentos para turma. Enfim,
utilizar-se-ão os bons princípios relativos ao ensino.
AULAS PRÁTICAS
O Professor efetivará a aprendizagem com atividades práticas.
O Professor efetivará a aprendizagem com atividades prática como a demanda e correção de exercícios e a demanda
de um trabalho prático que se constituirá na implementação de software de certa complexidade (e.g., algum jogo).
PROCEDIMENTOS DE AVALIAÇÃO
- As avaliações consistirão de 2 provas escritas e 1 trabalho prático.
- As avaliações consistirão de 2 provas escritas e 1 trabalho prático.
- O trabalho será um software orientados a objetos (normalmente em C++).
- A 1a. e 2a. provas constituirão juntas uma primeira nota (cada qual compondo 50% dela), enquanto que o
trabalho constituirá a segunda nota.
- A média final será calculada pela média aritmética das duas notas.
REFERÊNCIAS
Referencias Básicas:
- DEITEL, H. M.; DEITEL, P. J. C++ Como Programar. 3ª Edição. Bookman. 2001.
- STROUSTRUP, B. The C++ Programming Language. 3rd Edition. Addison-Welsey. 1997.
- PRESSMAN, R. S. Software Engineering – A Practitioner’s Approach. 6th Edition McGraw Hill (Higher
Education). 2005. ISBN 0-07-285318-2.
- GAMMA, E.; HELM, R.; Johnson, R.; Vlissides, J. Design Patterns: Elements of Reusable Object-
oriented Software. Addison Wesley Longman, 1995.
- SIMÃO, J. M. Fundamentos de Programação 2 – C++. Página de Internet:
http://www.pessoal.utfpr.edu.br/jeansimao/Fundamentos2/Fundamentos2.htm.
Referências Complementares:
- SEBESTA, R. W. Conceitos de Linguagens de Programação. 5ª Edição. Bookman 2003.
- HORSTMANN, C. Conceitos de Computação com o Essencial de C++, 3ª edição, Bookman, 2003, ISBN
0-471-16437-2.
- RUMBAUGH, J.; JACOBSON, I.; BOOCH, G. The Unified Modeling Language Reference Manual.
2nd Edition. Addison-Wesley. 2005. ISBN 0-321-26797-4.
- RUMBAUGH, J.; JACOBSON, I.; BOOCH, G. The Unified Software Development Process. 1st Edition.
Addison-Wesley. 2005. ISBN 0-201-57169-2.
- LARGMAN, G. Applying UML and Patterns – An Introduction to Object-Oriented Analysis and
Design. Prentice Hall. 1998. ISBN 0-13-748880-7.
- BEZERRA, E. Princípios de Análise e Projeto de Sistemas com UML. Editora Campus. 2003. ISBN 85-
352-1032-6.
ORIENTAÇÕES GERAIS
Freqüência mínima às aulas: 75% do total de aulas ministradas.