IF62C - Fundamentos de Programacao 2

Propaganda
Ministério da Educação
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ
Campus Curitiba
PLANO DE ENSINO
CURSO BACHARELADO EM SISTEMAS DE INFORMAÇÃO
MATRIZ
BSI
FUNDAMENTAÇÃO
Resolução nº 82/08-COGEP de 12 de setembro de 2008
LEGAL
DISCIPLINA/UNIDADE CURRICULAR
FUNDAMENTOS DE PROGRAMAÇÃO 2
CÓDIGO PERÍODO
IF62C
2o
CARGA HORÁRIA horas)
AT
AP
Total
30
30
60
AT: Atividades Teóricas, AP: Atividades Práticas.
PRÉ-REQUISITO
EQUIVALÊNCIA
IF61C
-
OBJETIVOS
Dotar o aluno de conhecimentos aprofundados sobre o paradigma de orientação a objetos ressaltando a
utilização dos mecanismos de OO, programação orientada a eventos, programação concorrente e utilização de
componentes e APIs. 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 da linguagem de programação Java, 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 APIs. Ambientes Integrados de Desenvolvimento e de Prototipação.
CONTEÚDO PROGRAMÁTICO
ITEM
1
2
3
EMENTA
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
Projeto orientado a Objetos
escopo
Sobrecarga de métodos e operadores e Polimorfismo
Princípio da substituição e vinculação dinâmica.
Classes abstratas.
Classes aninhadas.
Gabaritos (template).
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.
Estratégias Algorítmicas de Resolução de Conceitos de estados e eventos.
Problemas
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.
Conceitos de padrões de projetos e APIs Conceito geral de padrões.
4
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
de
desenvolvimento.
Configuração de um ambiente integrado de desenvolvimento
Java.
Programação de aplicações em ambiente integrado de
desenvolvimento Java
Uso básico de UML, principalmente, notação de classes e seus
relacionamentos, utilizando uma ferramenta case integrável ao
ambiente de desenvolvimento.
Ambientes
Integrados
Desenvolvimento e Prototipação
PROFESSOR
ANO/SEMESTRE
xxxx/xx
AT
AP
TURMA
CARGA HORÁRIA (aulas)
APS
AD
APCC
Total
AT: Atividades Teóricas, AP: Atividades Práticas, APS: Atividades Práticas Supervisionadas, AD: Atividades a Distância,
APCC: Atividades Práticas como Componente Curricular.
DIAS DAS AULAS PRESENCIAIS
Dia da semana
Segunda
Número de aulas no
semestre (ou ano)
Terça
Quarta
Quinta
PROGRAMAÇÃO E CONTEÚDOS DAS AULAS (PREVISÃO)
Dia/Mês ou Semana
Conteúdo das Aulas
ou Período
Sexta
Sábado
Número
de Aulas
PROCEDIMENTOS DE ENSINO
AULAS TEÓRICAS
Descrição resumida dos métodos, das técnicas e dos recursos que o professor utilizará.
Descrição detalhada dos métodos, das técnicas e dos recursos que o professor utilizará nas aulas para efetivar
a aprendizagem dos alunos, visando alcançar os objetivos propostos na disciplina/unidade curricular. Se o
professor utilizar tecnologias de informação e comunicação como ferramentas de apoio ao processo de ensino
aprendizagem, deverá relacioná-las.
AULAS PRÁTICAS
Descrição resumida dos métodos, das técnicas e dos recursos que o professor utilizará.
Descrição detalhada dos métodos, das técnicas e dos recursos que o professor utilizará nas aulas para efetivar
a aprendizagem dos alunos, visando alcançar os objetivos propostos na disciplina/unidade curricular. Se o
professor utilizar tecnologias de informação e comunicação como ferramentas de apoio ao processo de ensino
aprendizagem, deverá relacioná-las.
ATIVIDADES PRÁTICAS SUPERVISIONADAS
Descrição detalhada dos métodos, das técnicas e dos recursos que o professor utilizará nas atividades práticas
supervisionadas para efetivar a aprendizagem dos alunos, visando alcançar os objetivos propostos na
disciplina/unidade curricular.
ATIVIDADES A DISTÂNCIA
Descrição detalhada dos métodos, das técnicas e dos recursos que o professor utilizará nas atividades a
distância para efetivar a aprendizagem dos alunos, visando alcançar os objetivos propostos na
disciplina/unidade curricular. O professor deve relacionar as tecnologias de informação e comunicação
utilizadas como ferramentas de apoio ao processo de ensino aprendizagem.
ATIVIDADES PRÁTICAS COMO COMPONENTE CURRICULAR
Descrição detalhada dos métodos, das técnicas e dos recursos que o professor utilizará nas atividades práticas
como componente curricular para efetivar a aprendizagem dos alunos, visando alcançar os objetivos propostos
na disciplina/unidade curricular.
PROCEDIMENTOS DE AVALIAÇÃO
Conforme regulamento didático pedagógico em vigor.
Conforme regulamento didático pedagógico em vigor.
REFERÊNCIAS
Referencias Básicas:
DEITEL, Harvey M.; DEITEL, Paul J. (Autor). Java, como programar. 6. ed. São Paulo, SP: Pearson Prentice
Hall, 2005. 1110 p.1 CD-ROM ISBN 85-7605-019-6
GAMMA, Erich; JOHNSON, Ralph; HELM, Richard; VLISSIDES, John. Padrões de projeto: soluções
reutilizáveis de software orientado a objetos . Porto Alegre: Bookman, 2005 364 p. ISBN 8573076100
BARNES, David & KÖLLING, Michael. Programacão Orientada a Objetos com Java. São Paulo, SP:
Pearson Prentice Hall, 2004.
Referências Complementares:
SIERRA, Kathy; BATES, Bert. Use a cabeça!: Java. 2.ed. Rio de Janeiro: Alta Books, 2007. 470 p. : ISBN
9788576081739
ECKEL, Bruce. Thinking in Java. 4th. ed. Upper Saddle River: Prentice-Hall, 2007. 1482 p. ; ISBN 0-13027363-5
LARMAN, Craig. Utilizando UML e padrões: uma introdução à análise e ao projeto orientados a objetos e
ao desenvolvimento iterativo. 3. ed. Porto Alegre: Bookman, 2007. 695 p. : ISBN 85-363-0358-1
GOETZ, Brian. Java concurrency in practice. Upper Saddle River, NJ.: Addison-Wesley, c2006. 403 p. ISBN
0321349601
DEITEL, H. M, DEITEL P.J. C++ Como Programar. 3. ed. Porto Alegre: Bookman, 2001.
ORIENTAÇÕES GERAIS
Demais orientações relevantes para a disciplina/unidade curricular.
Assinatura do Professor
Assinatura do Coordenador do Curso
Download