Você está na página 1de 5

Ministério da Educação

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ


Campus Curitiba - Central

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).

(Resolução do COEPP que aprovou a matriz curricular do curso e, se houver, resoluções


FUNDAMENTAÇÃO LEGAL
posteriores relativas à disciplina/unidade curricular) - SA

DISCIPLINA/UNIDADE CURRICULAR CÓDIGO FASE CARGA HORÁRIA (horas)


CABS002 (PPGCA) Teórica Prática Total
Programação Avançada 2o.
EC07PA120 (CPGEI) 22 23 45

PRÉ-REQUISITO Programação Procedimental (preferencialmente em linguagem C).


EQUIVALÊNCIA Relativo – depende de análise pontual de cada ementa.

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++;

Programação Orientada - Gabaritos (template)


2 a Componentes –- Implementação de métodos e/ou relacionamentos de objetos por meio de
Standard Template componentes, tais como listas, filas e pilhas.
Library - Conceito de Application Programming Interface (API) e exemplos: como
API de acesso a recursos e serviços do sistema operacional, construção de
interfaces gráficas e comunicação em rede
- Programação em Ambiente C++ com suporte da STL (Standard Template
Library).
- Programação em Ambiente C++ com suporte a APIs.
- Conceito Geral de Padrões;

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

ANO / FASE CARGA HORÁRIA (aulas)


AT AP APS AD Total
2016 / 02
22 23 0 0 45
AT: Atividades Teóricas, AP: Atividades Práticas, APS: Atividades Práticas Supervisionadas, AD: Atividades a Distância.

DIAS DAS AULAS PRESENCIAIS


Dia da semana Segunda Terça Quarta Quinta Sexta Sábado
Número de aulas no semestre 10

PROGRAMAÇÃO E CONTEÚDOS DAS AULAS (PREVISÃO)


Dia/Mês Conteúdo das Aulas N. Aulas
1. Introdução. Conceitos básicos de OO em C++: classes, objetos, atributos e métodos.
Ciclo de vida dos objetos: construtores e destrutores, referência e ponteiros a objetos, relacionamentos.
07/06 Aplicações console (fluxos de entrada/saída). Diretivas de pré-compilação e artifícios para evitar inclusões 4
recursivas em C++.
Terça-feira Pedido Trabalho.
Eng. de software e suas fases: ênfase em projeto/implementação. Relações entre Objetos-Classes em C++ e
2. UML: Associação, Agregação e Herança.

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.

Arquivos de fluxos (ofstream, ifstream, ...) de texto e binários.


3. Persistência de objetos, incluindo seus relacionamentos.

21/06 Sobrecarga de métodos e operadores (unários, parâmetro à direita, parâmetro à esquerda). 4


Objetos, retorno e métodos const.
Terça-feira
Gabaritos (template) de métodos e de classes.

Discussão sobre os Trabalhos Propostos.

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.

Realização da 1ª Prova (17:50 à 19:50).

5. Estado de objetos e eventos. Comunicação entre objetos via eventos.


Ambiente de prog. visual (Wizard & Plug and Play).
Noções de prototipagem rápida em amb. de desenvolvimento. 4
05/07

Terça-feira Prog. Orientada a eventos e visual (objetos gráficos) em ambiente C++.

12/07 Férias docentes 0

19/07 Férias docentes 0

26/07
Férias docentes 0

6. Contra-correção de prova.

02/08 Seminários sobre os Trabalhos Individuais. 5

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.)

Application Programming Interface (API).

Exemplos de API para interfaces gráficas e acesso a recursos e serviços do S.O. (e.g. Threads).

Mensagens entre Threads.


7.
Problemas de concorrência: produtor-consumidor. 5
09/08
Problemas de concorrência: sincronização de threads, leituras concorrentes em objetos compartilhados,
Terça-feira
deadlocks.

Programação concorrente: linhas de Execução (Threads) - ênfase em Pthread-Posix.


Threads e a Orientação a Objetos - ênfase em Pthread-Posix.
PROGRAMAÇÃO E CONTEÚDOS DAS AULAS (PREVISÃO)
Dia/Mês Conteúdo das Aulas N. Aulas
Programação em Ambiente C++ com suporte a APIs.

Programação concorrente: linhas de Execução (Threads) - ênfase em C-Run-Time e Win32 API.


Threads e a Orientação a Objetos - C-Run-Time e Win32 API.
8.
Exemplos de APIs para recursos e serviços do Sistema Operacional e para comunicação em rede.
16/08 5
Introdução a Padrões e Padrões de Projeto.
Quarta-feira
Revisão do Ciclo de Eng. de Software e Padrões de Projeto.

Exemplos de Padrões de Projeto e suas Aplicações (padrões GOF).

9. Realização da 2ª Prova (17:50 à 19:40).

23/08 Exemplos de Padrões de Projeto e suas Aplicações (padrões GOF). 5

Quarta-feira Eventual Apresentação de Trabalhos. (20:00 – 22:00)


Apresentação de Trabalhos.
10.
Obs.: Trazer ao menos diagrama de classes impresso, demais diagramas e tabela de conceitos utilizados e
5
30/08 não utilizados.
.
Quarta-feira Entrega de Trabalhos (forma de artigo-relatório conforme modelo em site da disciplina).
Fim da 2ª Fase.
06/09 0
Dia 19/09/2016 (pela manhã) – data limite para o Envio do Artigo-Relatório e Artefatos (por e-mail).

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).

ATIVIDADES PRÁTICAS SUPERVISIONADAS


Não há APSs.
ATIVIDADES A DISTÂNCIA
Não há aulas à distância.

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.

- Casos omissos deverão ser analisados pelo coordenador do curso.

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.

Assinatura do Professor Assinatura do Coordenador do Curso

Você também pode gostar