UNIVERSIDADE FEDERAL DE UBERLÂNDIA
Faculdade de Engenharia Elétrica

Av. João Naves de Ávila, 2121, Bloco 3N - Bairro Santa Mônica, Uberlândia-MG, CEP 38400-902
Telefone: (34) 3239-4701/4702 - www.feelt.ufu.br - feelt@ufu.br
  

Timbre

Plano de Ensino

IDENTIFICAÇÃO

Componente Curricular:

PROGRAMAÇÃO ORIENTADA A OBJETOS

Unidade Ofertante:

FACULDADE DE ENGENHARIA ELÉTRICA

Código:

FEELT31514

Período/Série:

Turma:

U

Carga Horária:

Natureza:

Teórica:

30

Prática:

30

Total:

60

Obrigatória:

( X )

Optativa:

( )

Professor(A):

EDGARD AFONSO LAMOUNIER JÚNIOR

Ano/Semestre:

 

Observações:

Plano de Ensino de uso específico, durante o período de Atividades Acadêmicas Remotas Emergenciais. 

 

EMENTA

Introdução à programação orientada a objetos, classes e objetos, atributos e métodos de classes, herança, polimorfismo e aplicações de programação orientada a objetos.

JUSTIFICATIVA

A disciplina de Programação Orientada a Objetos é fundamental para um certificado em Engenharia de Computação. Atualmente, é o paradigma de programação mais utilizado na indústria e na academia. A programação orientada a objetos, juntamente com a arquitetura cliente-servidor, são consideras como tecnologias que revolucionaram a computação mundial. Diante deste cenário, é de extrema importância que o egresso do curso de Engenharia de Computação esteja habilitado a trabalhar com este paradigma de programação de computadores.

OBJETIVO

Objetivo Geral:

Ao final do curso o estudante deverá ser capaz de:

  • Fornecer ao aluno (a) os conceitos de orientação a objeto, bem como capacitá-lo a desenvolver sistemas computacionais utilizando a técnica de orientação a objetos.

  • Desenvolver habilidades de resolver problemas de engenharia mapeados como uma solução orientada a objetos.

  • Desenvolver sistemas computacionais de médio porte, utilizando técnicas de programação orientada a objetos.

Objetivos Específicos:

  1. Fundamentos da programação orientada a objetos

  • Identificar diferentes paradigmas de linguagens de programação

  • Definir e diferenciar classe e objeto, atributos e métodos

  • Definir e construir programas usando construtores e destrutores

  • Entender o conceito de encapsulamento

  1. Herança

  • Entender herança e a reutilização de software

  • Conceituar classes base e classes derivadas

  • Entender modificadores de acesso a membros de uma classe

  • Desenvolver programas computacionais utilizando o conceito de herança

  1. Polimorfismo

  • Entender o conceito de polimorfismo

  • Entender as vantagens de se usar polimorfismo

  • Desenvolver programas computacionais utilizando o conceito de polimorfismo

  1. Tratamento de exceções

  • Entender exceções e o tratamento de erros

  • Usar blocos try e catch

  • Usar o bloco finally

  1. Estruturas de dados e coleções

  • Formar estruturas de dados encadeadas usando referências e recursividade

  • Criar e manipular estruturas de dados dinâmicas como listas, pilhas e filas

  • Entender como criar estruturas de dados reutilizáveis usando o conceito de herança e polimorfismo

  1. Bancos de dados

  • Entender o modelo de banco de dados relacional

  • Entender as consultas básicas a bancos de dados usando SQL

  • Desenvolver sistemas computacionais com acesso a banco de dados 

PROGRAMA

1.  Fundamentos da programação orientada a objetos
- Paradigmas de linguagens de programação
- Tipos de dados abstratos e o conceito de classes
- Membros e métodos de uma classe: encapsulamento
- Classes e objetos: construtores e destrutores
- Acessando membros e métodos de um objeto

2. Herança
- Introdução
- Classes bases e classes derivadas
- Acessando membros de uma estrutura
- Membros protected
- Construtores e destrutores em classes derivadas
- Exemplos de aplicação

3. Polimorfismo
- Introdução
- Conversão de objetos de classe base para classe derivada
- Exemplos de polimorfismo
- Classes e métodos abstratos
- Sobrecarga de operadores
- Exemplos de aplicação

4. Tratamento de exceções
- Introdução
- Visão geral do tratamento de exceções
- Manipulação de arquivos textos e arquivos binários
- Comandos try, catch e finally
- Classes de exceção definidas pelo desenvolvedor
- Exemplos de aplicação


5. Estudo de caso 1: Estruturas de dados e coleções
- Introdução
- Classes auto-referenciais
- Listas encadeadas
- Pilhas e filas
- Exemplos de aplicação

6. Estudo de caso 2: Banco de dados
- Introdução
- Modelo de banco de dados relacionais
- Criando uma base de dados
- Exemplos de aplicação

 

METODOLOGIA

Para o presente componente curricular, a ser ministrado em formato remoto, no âmbito do período letivo suplementar emergencial, serão adotadas aulas em duas modalidades distintas de comunicação: síncrona (todos os alunos simultaneamente conectados à internet sob a regência do professor) e assíncrona (contemplando aFvidades remotas off-line). Para tal efeito, serão consideradas as seguintes mídias:
- Modalidade síncrona (on-line): Aulas expositivas através das plataformas Google Meet 
- Modalidade assíncrona (off-line): Youtube (videoaulas), e-mails, Moodle e aplicaFvos de mensagens.


O atendimento ao aluno será realizado de forma remota, seja durante as aulas na modalidade síncrona, ou através de e-mail, Moodle, aplicativos de mensagens ou reuniões individuais através das plataformas Google Meets , em horários específicos a serem definidos pelo professor, em consonância com a disponibilidade dos alunos.

 

Cronograma:
As atividades síncronas acontecerão nas terças-feiras das 16h50 às 18h30, nas plataformas previamente mencionadas.

 

Tabela 1 – Atividades síncronas com 18 ha ( 2ha/semana)

Aula

Conteúdo

01

Introdução à disciplina de Programação Orientada a Objetos. Apresentação do Plano de Ensino, sistema de avaliação  e bibliografia. 

02

Classes, objetos, atributos, métodos e Encapsulamento

03

Herança: conceito, aplicações e exemplos.

04

Polimorfismo: conceito, aplicações e exemplos.

05

Tratamento de exceções.

06

Estruturas de dados pilha e fila.

07

Estrutura de dados lista.

08

Definição de banco de dados objeto-relacional.

09

Estrutura de um Banco de Dados, baseado em Programação orientada a objetos. 

 

Tabela 2 – Atividades asíncronas com 54 ha ( 6ha/semana)

 

Aula

Conteúdo

01

Vídeo; material de leitura; perguntas.

02

Vídeo; material de leitura; perguntas.

03

Vídeo; material de leitura; perguntas.

04

Vídeo; material de leitura; perguntas.

05

Vídeo; material de leitura; perguntas.

06

Vídeo; material de leitura; perguntas.

07

Vídeo; material de leitura; perguntas.

08

Vídeo; material de leitura; perguntas.

09

Vídeo; material de leitura; perguntas.

AVALIAÇÃO

A avaliação individual será baseada em três estratégias:
1 – Trabalhos em grupos
- Serão avaliadas 2 (dois) trabalhos, baseados no metodologia de engineering problem solving, sendo um problema diferente para cada grupo. Cada trabalho valerá 20 pontos.


2 – Seminário em Grupo:
- Cada grupo deverá apresentar um seminário sobre um tema diferente relacionado à disciplina. Valor do seminário: 20 pontos.


3 – Programa Final Individual:
- Cada aluno deverá apresentar um programa de computador (linguagem de programação livre) referente a tópicos abordados na disciplina. Valor: 40 pontos.
- Valor total das atividades será de 100 pontos.
 

BIBLIOGRAFIA

Básica

  1. ASCENCIO, Ana Fernanda e de CAMPOS, Edilene Aparecida; Fundamentos da programação de computadores – Algoritmos, Pascal, C/C++ e Java, 2ª. Edição, São Paulo:Pearson Prentice Hall, 2007.

  2. DEITEL, H., DEITEL, P., LISTIFIELD, J., NIETO, T., YAEGER, C. E ZLATKINA. M.; C# - Como Programar, São Paulo:Pearson Prentice Hall, 2008.

  3. MIZRAHI, Victorine Viviane; Treinamento em Linguagem C++, Módulos 1 e 2, 2ª. Edição, São Paulo:Pearson Prentice Hall, 2008.

Complementar

  1. VAREJÃO, F. M.; Linguagens de programação – Conceitos e técnicas, Elsevier, Rio de Janeiro, 2004.

  2. BARNES, D. J; KÖLLING, M. Programação orientada a objeto com JAVA, São Paulo, 2004.

  3. DEITEL, H. e DEITEL, P.; Java – Como Programar, São Paulo:Pearson Prentice Hall, 2010.

  4. SAVITCH, W.; C++ Absoluto, São Paulo:Pearson Prentice Hall, 2004.

  5. MENDES, D.; Programação JAVA com ênfase em Orientação a Objetos, Novatec, 2009.

APROVAÇÃO

Aprovado em reunião do Colegiado realizada em: ____/____/______

Coordenação do Curso de Graduação: _________________________

 


logotipo

Documento assinado eletronicamente por Edgard Afonso Lamounier Junior, Professor(a) do Magistério Superior, em 29/09/2020, às 20:40, 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 2290701 e o código CRC 60C11DEC.




Referência: Processo nº 23117.056272/2020-12 SEI nº 2290701