Você está na página 1de 5

UNIVERSIDADE FEDERAL DE OURO PRETO

PRÓ-REITORIA DE GRADUAÇÃO
PLANO DE ENSINO

Nome do Componente Curricular em português: Código: CSI032


Programação de Computadores II Turma: 11 (EC02)
Nome do Componente Curricular em inglês:
Computer Programming II
Nome e sigla do departamento: Unidade acadêmica: Icea
Departamento de Computação e Sistemas – Decsi
Nome do docente:
Rafael Frederico Alexandre (rfalexandre@ufop.edu.br)

Carga horária semestral Carga horária semanal teórica Carga horária semanal prática
72 horas/aula 02 horas/aula 02 hora/aula
Data de aprovação na assembleia departamental: 09 / 05 / 2023
Atendimento:

Segunda: 17h20 às 18h50.

Quinta: 17h20 às 18h50.

Obs. 1: Os alunos poderão enviar suas dúvidas e solicitações em qualquer horário, porém o
professor irá respondê-las nos horários de atendimento.

Obs. 2.: Caso os alunos e o professor considerem pertinente, web-conferências no Google Meet
poderão ser previamente marcadas para atendimento.

Ementa: Conceitos de modularização, abstração e encapsulamento. Reuso de código. Conceito


de classe. Composição e Agregação. Herança (polimorfismo de subtipagem): Herança simples e
múltipla. Tratamento de exceção. Sobrecarga. Polimorfismo paramétrico. Programação por
contratos. Noções de padrões de projeto.
Conteúdo programático:
1. Modularização, abstração e encapsulamento.
2. Reuso de código.
3. Classes: Introduzindo um novo tipo na linguagem; Atributos e Métodos; Modificadores
de acesso a métodos e atributos; Construtores e destrutores; Instanciação de Objeto.
4. Programação baseada em objetos: Composição e agregação.
5. Herança: Polimorfismo de subtipagem; Vinculação dinâmica de método; Métodos e
atributos herdados; Sobrescrita de método e atributos; Herança simples e múltipla.
6. Tratamento de exceção.
7. Sobrecarga de métodos e operadores.
8. Polimorfismo paramétrico.
9. Programação por contratos.
10. Noções de padrões de projetos: conceito de delegação e double dispatch; Singleton,
Factory, Abstract factory, adapter.
Objetivos:

Objetivos Gerais
Preparar o aluno para a prática do desenvolvimento de aplicações orientadas a objetos, habilitando
o aluno a desenvolver sistemas utilizando os principais conceitos desse paradigma de
programação.

Objetivos Específicos
Ao final do curso, espera-se que o aluno seja capaz de:
● Compreender os conceitos básicos da Programação Orientada a Objetos;
● Apresentar o processo de desenvolvimento orientado a objetos em camadas;
● Modelar e implementar em uma linguagem de programação orientada a objetos, problemas
de pequena complexidade;
● Conhecer máquina virtual Java e uma IDE de desenvolvimento em Java (Eclipse);
● Adquirir domínio básico de uma linguagem de programação orientada a objetos através da
aplicação prática dos conceitos aprendidos;
Metodologia:

A disciplina será desenvolvida na modalidade presencial, com auxilio de tecnologias digitais de


informação e comunicação com professores e alunos desenvolvendo atividades educativas em
lugares ou tempos diversos. Além de aulas presenciais síncronas, os alunos contarão com o
desenvolvimento de atividades realizadas através das ferramentas de interação assíncronas
(emissor e receptor não estão sincronizados em um mesmo tempo-espaço).

* Recursos:

Para um bom andamento da disciplina, os alunos deverão possuir acesso às seguintes ferramentas:

1. Mesa e cadeira: É indicado que os alunos separem um período dos seus dias para assistir
as aulas e estudar para a disciplina. Se possível, utilize mesa, cadeira, computador, papel e
lápis. Não assista as aulas de maneira passiva.

2. Computador: As avaliações da disciplina serão realizadas utilizando o Latex, o que


demandará que o aluno possua acesso a um notebook/desktop. Realizar estas tarefas em
um smartphone pode ser doloroso.

3. Moodle: As atividades avaliativas da disciplina deverão ser entregues por meio do Moodle.
Também a presença do aluno será contabilizada pelo seu acesso ao Moodle.

4. www: Material da disciplina disponibilizado na plataforma Moodle em formato pdf. Além


desses materiais, o aluno encontrará os links para as videoaulas, slack, dentre outras
informações pertinentes à disciplina.

5. YouTube: YouTube é uma plataforma de compartilhamento de vídeos. As aulas da


disciplina serão gravadas e disponibilizadas em no canal indicado na plataforma Moodle.

6. Latex/Overleaf: O Overleaf é um editor Latex colaborativo baseado em nuvem usado para


escrever, editar e publicar documentos científicos. Seu uso é recomendado pois elimina a
necessidade de o aluno instalar os pacotes Latex. Você pode criar sua conta em
pt.overleaf.com/. Obs.: O aluno poderá utilizar qualquer outro editor Latex de sua
preferência.

7. Google Meet: Google Meet é um serviço de comunicação por vídeo desenvolvido pelo
Google. Os encontros síncronos, quando houverem, serão realizados através dos endereços
disponibilizados na plataforma Moodle. Para acesso, você deverá realizar a autenticação
com sua conta da Ufop (@aluno.ufop.edu.br).

* Atividades:

As atividades planejadas para a disciplina, além de aulas presenciais síncronas, compreendem em


assistir as videoaulas, ler e estudar o material da disciplina, trabalhar com as listas de exercícios
para fixação do conteúdo e realização das atividades de revisão e trabalhos.

As atividades avaliativas consistem em listas de exercícios e provas realizadas de forma presencial.


O formato de entrega será definido nas instruções das listas de exercícios disponibilizadas na
plataforma Moodle e deverão ser entregues nas respectivas datas estipuladas. Para o sucesso da
disciplina, o aluno deverá se organizar para realizar as tarefas ao longo das semanas.

O exame especial consistirá na entrega das tarefas do semestre que não forem enviadas nas datas
estipuladas.

Atividades avaliativas:

Descrição Peso Data


TP01 0.3 pt 28/05
TP02 0.3 pt 09/07
TP03 0.3 pt 13/08
Exame 1 3.0 pts 29/05
Exame 2 3.0 pts 10/07
Exame 3 3.1 pts 17/08
Exame Especial - 28/08
Cronograma:

# Data Conteúdo Previsto Atv


Apresentação da disciplina; Declaração de Aulas presenciais /
Variáveis; Tipos de Variáveis; Estrutura Assistir às videoaulas /
Condicional; Estrutura de Repetição; Leitura do Material
02/05
Manipulação de Vetores e Matrizes; disponibilizado.
Módulo 1 à
Organização de Código; Manipulação de
11/05
Strings; Lendo Dados do Teclado;
Definição de Classes; Métodos GET e SET;
Instanciação de Objetos; Referências
15/05 Métodos Construtores; Modificadores de Aulas presenciais /
à Acesso; Atributos e Métodos Static; Assistir às videoaulas /
Módulo 2
25/05 Composição / Associação; Referência Null Leitura do Material
disponibilizado
Herança; Hierarquia de Classes; Sobrecarga Aulas presenciais /
29/05
Assistir às videoaulas /
Módulo 3 à
Leitura do Material
12/06
disponibilizado
Sobrescrita de métodos; Atributos, Métodos Aulas presenciais /
19/06
e Classes Final; Classes Abstratas; Assistir às videoaulas /
Módulo 4 à
Interface; Polimorfismo. Leitura do Material
29/06
disponibilizado
03/07 Collections (List, Set, Map); Tratamento de Aulas presenciais /
Módulo 5 à Exceções. Assistir às videoaulas /
20/07 Material disponibilizado
24/07 Noções de padrões de projetos: Singleton, Aulas presenciais /
Módulo 6 à Factory, Abstract factory, Adapter. Assistir às videoaulas /
10/08 Material disponibilizado
Observações: Os conteúdos previstos serão desenvolvidos pelos alunos conforme cronograma
apresentado. O cronograma poderá sofrer alterações diante o modelo de ensino utilizando as
tecnologias digitais da informação.
Bibliografia básica:
1. MEYER, B. Object-oriented Software Construction, 2a edição, Prentice Hall
2. BOOCH G., MAKSIMCHUK R. A., ENGEL M. W. ,YOUNG B. J, CONALLEN J.,
HOUSTON K. A. Object-Oriented Analysis and Design with Applications, 3a edição,
Massachusetts:Addison-Wesley Professional, 2007
3. GAMMA E.,HELM R.,JOHNSON R., et al. Padrões de Projeto, 1a edição, Bookmam,
2000
4. DEITEL P. J., DEITEL H. M., Java: como programar, 8a edição, São Paulo: Prentice
Hall, 2010
Bibliografia complementar:
1. DEITEL P. J., DEITEL H. M., C++: como programar, 5a edição, São Paulo: Prentice
Hall, 2006.
2. MEYER B., Touch of Class: Learning to Program Well with Objects and Contracts,
1a edição, Springer.
3. HORSTMANN C. S., CORNELL G. Core Java™, Volume I—Fundamentals, 8a edição,
Prentice Hall, 2007
4. SAVITCH W. C++ absoluto, 1a edição, Prentice Hall, 2003 CAMARÃO, C. e
FIGUEIREDO, L. Programação de Computadores em Java. Rio de Janeiro: LTC, 2003.
Atenção:

Plano de ensino elaborado para controle e organização do professor e alunos, sendo sujeito a
alterações no decorrer da disciplina.

Direitos Autorais:

A utilização dos textos, imagens, sons, voz e vídeos está restrita ao uso acadêmico desta disciplina
durante o Período Letivo Especial, não sendo permitida o seu uso em outros meios.

Você também pode gostar