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 destrutores

2.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. Josué Silva de Morais

Coordenador do Curso de Graduação em Engenharia de Controle e Automação

Prof. Dr. Sérgio Ferreira de Paula Silva

Diretor da Faculdade de Engenharia Elétrica

 


logotipo

Documento assinado eletronicamente por Josué Silva de Morais, Coordenador(a), em 03/04/2019, às 10:47, 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 03/04/2019, às 11:41, 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 1139044 e o código CRC 2E821212.




Referência: Processo nº 23117.027358/2019-96 SEI nº 1139044