BCC221
Programação Orientada a Objetos

José Romildo Malaquias
Sala COM-05
Instituto de Ciências Exatas e Biológicas
Universidade Federal de Ouro Preto
romildo@iceb.ufop.br

2011/1

Sumário

1 Dados gerais
2 Objetivos
3 Ementa
4 Programa analítico das aulas de preleção
5 Metodologia de Ensino
6 Atividades Discentes
7 Bibliografia
8 Avaliações
9 Grupo de discussão
10 Ferramentas
11 Material de aula
 11.1 Slides do livro texto
12 Listas de exercícios
13 Trabalhos
14 Notas e frequências
15 Novidades

1 Dados gerais

Departamento: Computação
Unidade: Instituto de Ciências Exatas e Biológicas
Número de créditos: 4
Carga horária semanal: 4 teóricas + 0 práticas = 4 total
Duração em semanas: 18
Carga horária semestral: 78 horas-aula
Pré-requisitos: BCC201 — Estruturas de Dados I
É pré-requisito para: BCC322 — Engenharia de Software I
Cursos: Ciência da Computação (obrigatória: 3o período)

2 Objetivos

Ao final do curso é esperado que o aluno:

3 Ementa

  1. Conceitos básicos de orientação a objetos:
  2. Tratamento de exceções.
  3. Genéricos.
  4. Coleções.
  5. Modelagem UML.
  6. Interface gráfica em ambientes orientados a objetos.
  7. Objetos persistentes.
  8. Múltiplas linhas de execução.
  9. Objetos remotos.

4 Programa analítico das aulas de preleção






unidades e assuntos

número
de
aulas

número
de
aulas
acumulado

referências
bibliográficas






1

Apresentação da disciplina

02

02






2

Visão geral dos paradigmas de programação

02

04






3

Programando em C++

02

06

1, 2, 3






4

Classes, objetos e mensagens

06

12

1, 2, 3






5

Herança

04

16

1, 2, 3






6

Ligação dinâmica

04

20

1, 2, 3






7

Polimorfismo

04

24

1, 2, 3






8

Programando em Java

08

32

1, 2, 3






9

Tratamento de exceções

04

36

1, 2, 3






10

Objetos persistentes

06

42

1, 2, 3






11

Genéricos

06

48

1, 2, 3






12

Coleções

06

54

1, 2, 3






13

Interfaces gráficas

08

62

1, 2, 3






14

Modelagem UML

06

68

1, 2, 3






15

Avaliações

10

78






5 Metodologia de Ensino

Aulas teóricas
Aulas expositivas sobre o conteúdo. Os conceitos serão apresentados através da solução de problemas que requerem aplicação de tais conceitos. Será dada uma forte ênfase na implementação como instrumento para garantir a assimilação dos conceitos de orientação a objetos.

6 Atividades Discentes

Exercícios práticos
Exercícios de implementação de programas orientados a objetos para assimilação dos conceitos apresentados.
Seminários
Pesquisa de algumas linguagens de programação orientadas a objetos com apresentação em seminário de um resumo da linguagem.

7 Bibliografia

[1]

Paul Deitel Harvey Deitel. C++ Como Programar. quinta edição. ISBN-10: 978-85-7605-056-8. Pearson, 2006.

[2]

Paul Deitel Harvey Deitel. Java Como Programar. oitava edição. ISBN-10: 8576055635. Pearson, 2010.

[3]

Bertrand Meyer. Object-Oriented Software Construction. segunda edição. ISBN-10: 0136291554. Prentice Hall, 1997.

8 Avaliações





avaliação peso data assuntos




Prova 1
50%
27/04/2011 (quarta-feira)



Prova 2 01/06/2011 (quarta-feira)



Prova 3 13/07/2011 (quarta-feira)




Trabalhos 35%




Seminário 10%




Participação 5%








Exame especial 20/107/2010 (quarta-feira) De acordo com a resolução CEPE




9 Grupo de discussão

Existe um grupo de discussão sobre o conteúdo do curso no Google Groups que deverá ser utilizado ativamente pelos alunos, professor e monitores durante o curso.

O professor e o monitor poderão propor questões para discussão no grupo, bem como problemas para serem resolvidos.

Caberá aos alunos discutir as questões e problemas propostos, apontando soluções básicas e/ou soluções alternativas ou comentando o assunto. Os alunos poderão também propor algum problema ou levantar alguma questão para discussão que julgarem interessante.

O grupo estará sendo monitorado pelo professor que analisará a participação de cada aluno nas discussões e atribuirá a ele uma nota de avaliação do seu envolvimento nas discussões.

O endereço do grupo de discussão é http://groups.google.com/group/bcc221.

Cada aluno deverá se inscrever imediatamente no grupo e começar a participar das discussões.

10 Ferramentas

Nas aulas serão utilizadas principalmente as linguagens C++ e Java para ilustrar os conceitos de programação orientada a objetos. Existem várias implementações disponíveis para estas linguagens. Nas aulas será utilizado o compilador g++ distribuído no pacote GCC (GNU Compiler Collection), e o JDK (Java Development Kit) da Oracle. Como ambiente de desenvolvimento será utilizado o Eclipse.

Ocasionalmente será utilizada a linguagem Eiffel, através do implementação EiffelStudio.

11 Material de aula



Assunto

Material


Introdução a Java

SlidesModulo01.pdf


Desenvolvimento orientado a objetos

Introducao_OO_6.pdf


11.1 Slides do livro texto




Capítulo

Slides Exemplos



1. Introdução aos computadores, à Internet e à World Wide Web

cap01.pdf cap01.zip



2. Introdução aos aplicações Java

cap02.pdf cap02.zip



3. Introdução a classes e objetos

cap03.pdf cap03.zip



4. Instruções de controle: parte I

cap04.pdf cap04.zip



5. Instruções de controle: parte II

cap05.pdf cap05.zip



6. Métodos: um exame mais profundo

cap06.pdf cap06.zip



7. Arrays e ArrayLists

cap07.pdf cap07.zip



8. Classes e objetos: um exame mais profundo

cap08.pdf cap08.zip



9. Programação orientada a objetos: herança

cap09.pdf cap09.zip



10. Programação orientada a objetos: polimorfismo

cap10.pdf cap10.zip



11. Tratamento de exceções

cap11.pdf cap11.zip



14. Componentes GUI: Parte 1

cap14.pdf cap14.zip



21. Classes e Métodos Genéricos

cap21.pdf cap21.zip



25. Componentes GUI: Parte 2

cap25.pdf cap25.zip



12 Listas de exercícios



Assunto

Lista


Classes e objetos

poo-1-classes.pdf


13 Trabalhos




Assunto

Trabalho Data entrega



Leitura recursiva de diretórios de arquivos

trabalho1.pdf 30/03/2011



Aplicação Banco

trabalho-banco.pdf Banco-0.5.zip 13/07/2011



14 Notas e frequências

Resultados de avaliações e frequências

15 Novidades

2011 Junho 20

2011 May 30

2011 April 27

2011 April 25

2011 April 11

2011 April 4

2011 April 4

2011 March 16

2011 March 10