UNIVERSIDADE FEDERAL DE UBERLÂNDIA
  

Timbre

Ficha de Componente Curricular

 

CÓDIGO:

 

COMPONENTE CURRICULAR:

PROGRAMAÇÃO ORIENTADA A OBJETOS

UNIDADE ACADÊMICA OFERTANTE:

FACULDADE DE ENGENHARIA ELÉTRICA

SIGLA:

FEELT

CH TOTAL TEÓRICA:

30 horas

CH TOTAL PRÁTICA:

30 horas

CH TOTAL:

60 horas

 

OBJETIVOS

Ao final do curso o aluno será capaz de:

1. Analisar problemas computacionais e propor soluções utilizando conceitos de programação
orientada a objetos, como classes, objetos, herança e polimorfismo.
2. Desenvolver programas em uma linguagem de programação orientada a objetos.
3. Reconhecer problemas e aplicar padrões de projeto específicos na solução destes problemas
4. Refatorar sistemas orientados a objetos de acordo com a necessidade
5. Utilizar e desenvolver sistemas orientados a objetos em nuvem

Ementa

Introdução dos conceitos fundamentais de programação orientada a objetos, como classes, objetos, encapsulamento, herança e polimorfismo. Conhecimento dos membros que tipicamente compõem classes: construtores, destrutores, variáveis e métodos. Entendimento e aplicação dos conceitos de orientação a objetos em linguagens de programação que suportem tal paradigma. Desenvolvimento de sistemas usando programação orientada a objetos. Estrutura de dados: Pilha, Fila e Fila com prioridade. Reuso de software, frameworks de aplicação e tecnologia de componentes. Padrões de projeto e de arquitetura, bad smells e refatoração de software. Uso de linguagens orientadas a objetos em ambiente nuvem.

PROGRAMA

1. Introdução à programação orientada a objetos

1.1. Histórico da programação orientada a objetos
1.2. Programação procedimental versus programação orientada a objetos

2. Conceitos fundamentais de programação orientada a objetos

2.1. Classes concretas, classes abstratas e interfaces
2.2. Objetos, atributos, métodos, construtores e destrutores2.3. Membros de classe e membros de objetos
2.4. Métodos concretos e métodos abstratos
2.5. Pacotes, visibilidade e encapsulamento
2.6. Generalização, especialização e herança
2.7. Polimorfismo
2.8. Ligação estática e ligação dinâmica
2.9. Estrutura de Dados Pilha, conceitos e aplicação.
2.10. Estrutura de Dados Fila, conceitos e aplicação.
2.11. Estrutura de Dados Fila com Prioridade, conceitos e aplicação.

3. Uso de bibliotecas em linguagens orientadas a objetos

3.1. Tratamento de exceções
3.2. Uso de APIs
3.3. Manipulação de arquivos
3.4. Interfaces gráficas simples
3.5. Acesso aos bancos de dados

4. Desenvolvimento de um sistema orientado a objetos

4.1. Implementação usando programação orientada a objetos
4.2. Documentação do sistema desenvolvido

5. Introdução a reuso e frameworks de aplicação
6. Idiomas e padrões de programação orientada a objetos

6.1. Padrões de projeto (GoF)
6.2. Padrões de arquitetura (MVC e Broker)

7. Desenvolvimento de um sistema orientado a objetos

7.1. Implementação do sistema usando padrões de projeto e de arquitetura
7.2. Documentação do sistema desenvolvido
7.3. Implementação de sistemas OO em nuvem

BIBLIOGRAFIA BÁSICA

1. CARDOSO, Caíque. Orientação a objetos na prática: aprendendo orientação a objetos com Java. Rio de Janeiro: Ciência Moderna, 2006.
2. FREEMAN, E.; SIERRA K. Use a cabeça! padrões e projetos. 2. ed. rev. Rio de Janeiro: Alta Books, 2009.
3. PREISS, Bruno R. Estruturas de dados e algoritmos: padrões de projetos orientados a objetos com java. Rio de Janeiro: Campus, c2001.

BIBLIOGRAFIA COMPLEMENTAR

1. ASCENCIO, Ana Fernanda Gomes. Fundamentos da programação de computadores: algoritmos, Pascal, C/C++ e Java. 2. ed. São Paulo: Prentice Hall, 2012.
2. BOOCH, Grady. UML: guia do usuário. Rio de Janeiro: Campus, 2012.
3. FOWLER, Martin. Refactoring: improving the design of existing code. Reading: Addison-Wesley, 1999.

4. GAMMA, ERICH. Padrões de projeto: soluções reutilizáveis de software orientado a objetos. Porto Alegre: Bookman, 2000.
5. HORSTMANN, Cay S. Padrões e projeto orientados a objetos. Porto Alegre: Bookman, 2007.
6. LARMAN, Craig. Utilizando UML e padrões: uma introdução à análise e ao projeto orientados a objetos e ao desenvolvimento iterativo. Porto Alegre: Bookman, 2007.
7. SEDGEWICK, Robert. Introduction to programming in Java: an interdisciplinary approach. Boston: Addison-Wesley, 2008.

aprovação

 

Prof. Dr. Antônio Cláudio Paschoarelli Veiga

Coordenador do Curso de Graduação em Engenharia Eletrônica e de Telecomunicações

Prof. Dr. Sérgio Ferreira de Paula Silva

Diretor da Faculdade de Engenharia Elétrica

 


logotipo

Documento assinado eletronicamente por Antonio Claudio Paschoarelli Veiga, Coordenador(a), em 22/03/2019, às 09:22, conforme horário oficial de Brasília, com fundamento no art. 6º, § 1º, do Decreto nº 8.539, de 8 de outubro de 2015.


logotipo

Documento assinado eletronicamente por Sergio Ferreira de Paula Silva, Diretor(a), em 25/03/2019, às 06:57, conforme horário oficial de Brasília, com fundamento no art. 6º, § 1º, do Decreto nº 8.539, de 8 de outubro de 2015.


QRCode Assinatura

A autenticidade deste documento pode ser conferida no site https://www.sei.ufu.br/sei/controlador_externo.php?acao=documento_conferir&id_orgao_acesso_externo=0, informando o código verificador 1081813 e o código CRC B8D52CB1.




Referência: Processo nº 23117.015883/2019-69 SEI nº 1081813