Difference between revisions of "Linguagem de Programação Orientada a Objetos I (FAZAG 2010.2)"

From AdonaiMedrado.Pro.Br
Jump to: navigation, search
(Aula do dia 20/11/2010 (3,5 h/a))
(Aula do dia 16/10/2010 (3,5 h/a))
 
(46 intermediate revisions by the same user not shown)
Line 21: Line 21:
 
== Especificação de trabalho ==
 
== Especificação de trabalho ==
 
*[[Trabalho em Grupo: Linguagem de Programação Orientada a Objetos I (FAZAG 2010.2)]].
 
*[[Trabalho em Grupo: Linguagem de Programação Orientada a Objetos I (FAZAG 2010.2)]].
*Trabalho individual
+
*[[Trabalho Individual: Linguagem de Programação Orientada a Objetos I (FAZAG 2010.2)]].
**Parte I: [[Mini-seminário: Linguagem de Programação Orientada a Objetos I (FAZAG 2010.2)]] - 20% da nota do trabalho individual.
+
**Parte II: [[O que eu aprendi na aula passada?]] - 20% da nota do trabalho individual.
+
**Parte III: [[Trabalho Individual: Linguagem de Programação Orientada a Objetos I (FAZAG 2010.2)]] - 60% da nota do trabalho individual.
+
  
 
== Cronograma ==
 
== Cronograma ==
Line 34: Line 31:
 
;Assuntos  
 
;Assuntos  
 
:Conceitos básicos
 
:Conceitos básicos
 +
::Estrutura básica do código Java.
 
::Tipos primitivos.
 
::Tipos primitivos.
 
:::[http://download-llnw.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html byte].
 
:::[http://download-llnw.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html byte].
Line 51: Line 49:
 
:[http://download.oracle.com/javase/tutorial/getStarted/cupojava/unix.html Hello World!" for Solaris OS and Linux].
 
:[http://download.oracle.com/javase/tutorial/getStarted/cupojava/unix.html Hello World!" for Solaris OS and Linux].
 
:[http://download.oracle.com/javase/tutorial/getStarted/application/index.html A Closer Look at the "Hello World!" Application].
 
:[http://download.oracle.com/javase/tutorial/getStarted/application/index.html A Closer Look at the "Hello World!" Application].
 +
;Códigos exemplo
 +
:[[Java: Programa Eco]].
 +
:[[Java: Soma de dois números inteiros]].
 +
:[[Java: Divisão de dois números inteiros]].
 
;Problemas
 
;Problemas
 
:[[Problema da soma]].
 
:[[Problema da soma]].
 
:[[Problema da média]].
 
:[[Problema da média]].
 
:[[Problema do número espelho]].
 
:[[Problema do número espelho]].
:[[Problema da conjectura de Goldbach]].
 
  
 
=== Aula do dia 21/08/2010 (3,5 h/a) ===
 
=== Aula do dia 21/08/2010 (3,5 h/a) ===
 +
;Atividades
 +
:Problemas anteriores.
 +
 +
=== Aula do dia 28/08/2010 (3,5 h/a) ===
 
;Atividades
 
;Atividades
 
:O que eu aprendi na aula passada?
 
:O que eu aprendi na aula passada?
:Mini-seminário.
+
;Assuntos
;Assuntos  
+
 
:Conceitos básicos
 
:Conceitos básicos
 +
::Função/Método.
 
::[http://download-llnw.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html Arrays].
 
::[http://download-llnw.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html Arrays].
 
::[http://download-llnw.oracle.com/javase/tutorial/java/data/strings.html Strings].
 
::[http://download-llnw.oracle.com/javase/tutorial/java/data/strings.html Strings].
Line 71: Line 76:
 
;Links sugeridos
 
;Links sugeridos
 
:[http://download-llnw.oracle.com/javase/tutorial/java/nutsandbolts/QandE/questions_flow.html Questions and Exercises: Control Flow Statements].
 
:[http://download-llnw.oracle.com/javase/tutorial/java/nutsandbolts/QandE/questions_flow.html Questions and Exercises: Control Flow Statements].
 +
;Códigos exemplo
 +
:[[Java: Acumulador]].
 +
:[[Java: Número e seus nomes]].
 
;Problemas
 
;Problemas
 
:[[Problema da sequência de Fibonacci]].
 
:[[Problema da sequência de Fibonacci]].
Line 76: Line 84:
 
:[[Problema do giro da palavra]].
 
:[[Problema do giro da palavra]].
  
=== Aula do dia 28/08/2010 (3,5 h/a) ===
+
=== Aula do dia 04/09/2010 (3,5 h/a) ===
 
;Atividades
 
;Atividades
:O que eu aprendi na aula passada?
+
:Exercícios anteriores.
:Mini-seminário.
+
;Assuntos
+
:Histórico da linguagem JAVA.
+
:Princípios da orientação a objetos (OO) e de OO em Java.
+
::[http://download-llnw.oracle.com/javase/tutorial/java/javaOO/classes.html Classe].
+
:::[http://download-llnw.oracle.com/javase/tutorial/java/javaOO/nested.html Nested Classes].
+
::[http://download-llnw.oracle.com/javase/tutorial/java/javaOO/objects.html Objetos].
+
::Encapsulamento.
+
::Polimorfismo de função.
+
::Associação.
+
 
;Links sugeridos
 
;Links sugeridos
 
:[http://pt.wikipedia.org/wiki/Java_(linguagem_de_programa%C3%A7%C3%A3o) Java (linguagem de programação)].
 
:[http://pt.wikipedia.org/wiki/Java_(linguagem_de_programa%C3%A7%C3%A3o) Java (linguagem de programação)].
 
:[http://www.dca.fee.unicamp.br/cursos/POOCPP/node3.html Introdução a Orientação a Objetos].
 
:[http://www.dca.fee.unicamp.br/cursos/POOCPP/node3.html Introdução a Orientação a Objetos].
;Material utilizado
 
:[http://www.adonaimedrado.pro.br/documentos/Programacao_Orientada_a_Objeto_-_Introducao.pdf Programação Orientada a Objeto - Introdução].
 
:[http://www.adonaimedrado.pro.br/documentos/Comentarios_Refatoracao_e_Testes_de_Unidade.pdf Uso de Comentários, Refatoração e Testes de Unidade em Aplicações Comerciais].
 
 
;Trabalhos de outros alunos
 
;Trabalhos de outros alunos
:'''Atenção''': o material abaixo '''não''' deve ser tomado como modelo e pode conter erros (veja '''alguns''' dos pontos indicados para correção em [http://www.adonaimedrado.pro.br/wiki/index.php?title=Linguagens_para_Aplica%C3%A7%C3%A3o_Comercial_(UFBA_2009.1)#Resultados_parciais aqui]).
+
:'''Atenção''': o material abaixo '''não''' deve ser tomado como modelo e pode conter erros (veja '''alguns''' dos pontos indicados para correção [http://www.adonaimedrado.pro.br/wiki/index.php?title=Linguagens_para_Aplica%C3%A7%C3%A3o_Comercial_(UFBA_2009.1)#Resultados_parciais aqui]).
 
:[http://www.adonaimedrado.pro.br/wiki/documentos/alunos/LAC_2009_1_EQUIPE_1_DOCUMENTO.pdf Trabalho Semestral - Descrição de Tecnologias Utilizadas (a partir da página 11)].
 
:[http://www.adonaimedrado.pro.br/wiki/documentos/alunos/LAC_2009_1_EQUIPE_1_DOCUMENTO.pdf Trabalho Semestral - Descrição de Tecnologias Utilizadas (a partir da página 11)].
 
:[http://www.adonaimedrado.pro.br/wiki/documentos/alunos/LAC_2009_1_EQUIPE_2_DOCUMENTO.pdf Trabalho Semestral: Java Server Faces (a partir da página 14)].
 
:[http://www.adonaimedrado.pro.br/wiki/documentos/alunos/LAC_2009_1_EQUIPE_2_DOCUMENTO.pdf Trabalho Semestral: Java Server Faces (a partir da página 14)].
 
:[http://www.adonaimedrado.pro.br/wiki/documentos/alunos/LAC_2009_1_EQUIPE_5_DOCUMENTO.pdf Java e RichFaces (a partir da página 5)].
 
:[http://www.adonaimedrado.pro.br/wiki/documentos/alunos/LAC_2009_1_EQUIPE_5_DOCUMENTO.pdf Java e RichFaces (a partir da página 5)].
;Problemas
 
:[[Problema da codificação da string]].
 
:[[Problema da escrita no celular]].
 
:[[Problema do tabuleiro em harmonia]].
 
 
=== Aula do dia 04/09/2010 (3,5 h/a) ===
 
;Atividades
 
:O que eu aprendi na aula passada?
 
:Mini-seminário.
 
:Compartilhamento de soluções.
 
;Problemas
 
:[[Problema da memória transacional]].
 
  
 
=== Aula do dia 11/09/2010 (3,5 h/a) ===
 
=== Aula do dia 11/09/2010 (3,5 h/a) ===
 
;Atividades  
 
;Atividades  
:O que eu aprendi na aula passada?
+
:Excercícios anteriores e dúvidas dos trabalhos.
:Mini-seminário.  
+
:Treinamento no [http://www.ime.usp.br/~cassio/boca/ Boca].
+
:Dúvidas do trabalho em grupo.
+
;Problemas
+
  
 
=== Aula do dia 18/09/2010 (3,5 h/a) ===
 
=== Aula do dia 18/09/2010 (3,5 h/a) ===
Line 127: Line 106:
 
=== Aula do dia 25/09/2010 (3,5 h/a) ===
 
=== Aula do dia 25/09/2010 (3,5 h/a) ===
 
;Atividades  
 
;Atividades  
:Competição de programação (vale pontos/vantagem na prova).
+
:Continuação dos Trabalhos em Grupo AVI.
;Problemas
+
  
 
=== Aula do dia 02/10/2010 (3,5 h/a) ===
 
=== Aula do dia 02/10/2010 (3,5 h/a) ===
;Atividades
+
Não houve aula (eleições).
:Competição de programação (vale pontos/vantagem na prova).
+
:Compartilhamento de soluções.
+
;Problemas
+
:[[Problema da separação das sílabas (versão light)]].
+
  
=== Aula do dia 09/10/2010 (4 h/a) ===
+
=== Aula do dia 09/10/2010 (3,5 h/a) ===
 +
;Atividades
 +
:Continuação dos Trabalhos em Grupo AVI.
 +
 
 +
=== Aula do dia 16/10/2010 (3,5 h/a) ===
 
;Atividade
 
;Atividade
 
:Prova da AVI
 
:Prova da AVI
 
+
::[[Problema das apaixonadas por moto]].
=== Aula do dia 16/10/2010 (3,5 h/a) ===
+
:::[[Solução: Problema das apaixonadas por moto]].
Haverá aula normalmente.
+
::[[Problema da caneta do presidenciável]].
 
+
:::[[Solução: Problema da caneta do presidenciável]]
;Atividades
+
::[[Problema da rotação dos algarismo do número inteiro]].
:O que eu aprendi na aula passada?
+
:::[[Solução: Problema da rotação dos algarismo do número inteiro]].
:Mini-seminário.
+
:Resultado da Prova AVI e dos trabalhos em grupo.
+
;Assuntos
+
:Princípios da orientação a objetos (OO) e de OO em Java.
+
::Agregação (Coleções).
+
;Links sugeridos
+
;Problemas
+
  
 
=== Aula do dia 23/10/2010 (3,5 h/a) ===
 
=== Aula do dia 23/10/2010 (3,5 h/a) ===
;Atividades
 
:O que eu aprendi na aula passada?
 
:Mini-seminário.
 
 
;Assuntos  
 
;Assuntos  
 
:Princípios da orientação a objetos (OO) e de OO em Java.
 
:Princípios da orientação a objetos (OO) e de OO em Java.
::Interface.
+
::Classes.
::Herança.  
+
:::[http://download-llnw.oracle.com/javase/tutorial/java/IandI/abstract.html Classe abstrata].
::Polimorfismo de classe.
+
::[http://download-llnw.oracle.com/javase/tutorial/java/IandI/createinterface.html Interface].
 +
::[http://download-llnw.oracle.com/javase/tutorial/java/IandI/subclasses.html Herança].  
 +
::[http://download-llnw.oracle.com/javase/tutorial/java/IandI/polymorphism.html Polimorfismo de classe].
 
;Links sugeridos  
 
;Links sugeridos  
;Problemas
+
:[http://pt.thefreedictionary.com/classe Classe].
:[[Problema da separação das sílabas (versão light)]].
+
:[http://www.dca.fee.unicamp.br/cursos/PooJava/classes/conceito.html O que é uma classe].
 +
;Material utilizado
 +
:[http://www.adonaimedrado.pro.br/documentos/Programacao_Orientada_a_Objeto_-_Introducao.pdf Programação Orientada a Objeto - Introdução].
  
 
=== Aula do dia 30/10/2010 (3,5 h/a) ===
 
=== Aula do dia 30/10/2010 (3,5 h/a) ===
;Atividades
+
Não houve aula (eleições).
:O que eu aprendi na aula passada?
+
:Mini-seminário.
+
:Dúvidas trabalhos individuais.
+
;Assuntos
+
:Aspectos da linguagem Java.
+
::Arquivos.
+
::Tratamento de exceções.
+
;Links sugeridos
+
;Problemas
+
:[[Problema do jogo do milhão]].
+
  
 
=== Aula do dia 06/11/2010 (3,5 h/a) ===
 
=== Aula do dia 06/11/2010 (3,5 h/a) ===
;Atividade
+
;Atividades
:Trabalhos individuais da AVII
+
:Exercício de orientação a objeto (trabalhando com a [[Problema das apaixonadas por moto | Questão 1]] da Prova da AVI orientada a objeto).
  
 
=== Aula do dia 13/11/2010 (3,5 h/a) ===
 
=== Aula do dia 13/11/2010 (3,5 h/a) ===
 
;Atividades  
 
;Atividades  
:O que eu aprendi na aula passada?
+
:Exercicios com orientação a objeto.
:Mini-seminário.
+
;Assunto
;Assuntos
+
:Coleções (ArrayList).
:Tópicos de orientação a objeto
+
;Problema
::UML.
+
:[[Problema da sala cheia]].
;Links sugeridos
+
:[http://astah.change-vision.com/en/product/astah-community.html astah].
+
;Problemas
+
:[[Exercício herança (Pessoa)]].
+
  
 
=== Aula do dia 20/11/2010 (3,5 h/a) ===
 
=== Aula do dia 20/11/2010 (3,5 h/a) ===
 
;Atividades  
 
;Atividades  
:O que eu aprendi na aula passada?
+
:Exercícios de orientação a objeto.
:Mini-seminário.
+
;Assunto
;Assuntos
+
:Exceções.
:Tópicos de padrões de projeto
+
;Problema
::MVC.
+
:[[Problema da sala cheia]] - variação 1.
:Tópicos da linguagem Java
+
::Swing.
+
;Links sugeridos
+
:[http://download-llnw.oracle.com/javafx/1.3/tutorials/core/ Learning the JavaFX Script Programming Language].
+
;Problemas
+
:[[Problema da competição de ciclismo]].
+
  
 
=== Aula do dia 27/11/2010 (3,5 h/a) ===
 
=== Aula do dia 27/11/2010 (3,5 h/a) ===
 
;Atividades  
 
;Atividades  
:Competição de programação (vale pontos/vantagem na prova).
+
:Apresentação de trabalhos da AVII
:Compartilhamento de soluções.  
+
::Antônio.
;Problemas
+
::Saulo.
  
 
=== Aula do dia 04/12/2010 (4 h/a) ===
 
=== Aula do dia 04/12/2010 (4 h/a) ===
;Atividade
+
:Prova AVII
:Prova da AVII
+
::'''Instruções'''
 +
:::Esta avaliação tem valor de quatro pontos e consta de duas questões de mesmo valor (2,0). Você deve seguir rigorosamente as instruções desta seção e dos enunciados. Descumpri-las implicará em perda total ou parcial de pontuação.
 +
:::*A prova é individual. Isto significa que todos os problemas devem ser resolvidos pelo autor, ou seja, mesmo que este pesquise em outras fontes ele deve construir suas respostas sendo capaz de explicá-las caso seja solicitado.
 +
:::*Todas as questões devem ser feitas para receber entradas por stdin e enviar saídas para stdout. Por exemplo, programas com interface de janela (swing ou similar) que não aceitem entradas por stdin e saídas na stdout serão desconsiderados.
 +
:::*A Questão 1 deve ser feita e entregue em sala.
 +
:::*As proposições da Questão 2 fazem parte da avaliação.
 +
:::*Existem duas possibilidades para a entrega da Questão 2. 1) Feita e entregue em sala no dia desta avaliação; 2) Começada em sala e entregue até o dia 8/12. Nesta última possibilidade o professor se reserva ao direito de pedir explicações a respeito do código entregue. Estas explicações, caso sejam solicitadas, serão feitas impreterivelmente no dia 11/12 na sala de aula. A falta de apresentação quando solicitada acarreta em pontuação nula. A nota será de acordo com a apresentação feita.
 +
:::*A segunda forma de entrega da Questão 2 será unicamente via o e-mail linhadireta@adonaimedrado.pro.br. Se uma confirmação de recebimento não for obtida até o dia 10/12 contate seu professor através do telefone (71) 8873-1906 para providenciar outro método de entrega.
 +
::Questão 1: [[Problema da rotação dos algarismo do número inteiro (invertido)]].
 +
:::[[Solução: Problema da rotação dos algarismo do número inteiro (invertido)]].
 +
::Questão 2: [[Problema do jogo do milhão (Versão para Java)]].
 +
:::[[Solução: Problema do jogo do milhão (Versão para Java)]].

Latest revision as of 19:05, 18 December 2010

Programa

O programa oficial da disciplina está disponível em PDF.

Links sugeridos

Avaliações

Conforme padrão pedagógico FAZAG:

  • AVI: Trabalho em Grupo (4,0 pontos) + Prova (6,0 pontos).
  • AVII: Trabalho Individual (6,0 pontos) + Prova (4,0 pontos).

Especificação de trabalho

Cronograma

Aula do dia 14/08/2010 (3,5 h/a)

Atividades
Apresentação da disciplina, professor e alunos.
Proposta do método de trabalho.
Assuntos
Conceitos básicos
Estrutura básica do código Java.
Tipos primitivos.
byte.
short.
int.
long.
float.
double.
boolean.
char.
Operações entre os tipos básicos.
Controle fluxo(Condicionais e laços)
if-then/if-then-else.
for.
Links sugeridos
Hello World!" for Microsoft Windows.
Hello World!" for Solaris OS and Linux.
A Closer Look at the "Hello World!" Application.
Códigos exemplo
Java: Programa Eco.
Java: Soma de dois números inteiros.
Java: Divisão de dois números inteiros.
Problemas
Problema da soma.
Problema da média.
Problema do número espelho.

Aula do dia 21/08/2010 (3,5 h/a)

Atividades
Problemas anteriores.

Aula do dia 28/08/2010 (3,5 h/a)

Atividades
O que eu aprendi na aula passada?
Assuntos
Conceitos básicos
Função/Método.
Arrays.
Strings.
Controle fluxo (Condicionais e laços)
switch.
while.
break.
Links sugeridos
Questions and Exercises: Control Flow Statements.
Códigos exemplo
Java: Acumulador.
Java: Número e seus nomes.
Problemas
Problema da sequência de Fibonacci.
Problema do quadrado gêmeo das partes.
Problema do giro da palavra.

Aula do dia 04/09/2010 (3,5 h/a)

Atividades
Exercícios anteriores.
Links sugeridos
Java (linguagem de programação).
Introdução a Orientação a Objetos.
Trabalhos de outros alunos
Atenção: o material abaixo não deve ser tomado como modelo e pode conter erros (veja alguns dos pontos indicados para correção aqui).
Trabalho Semestral - Descrição de Tecnologias Utilizadas (a partir da página 11).
Trabalho Semestral: Java Server Faces (a partir da página 14).
Java e RichFaces (a partir da página 5).

Aula do dia 11/09/2010 (3,5 h/a)

Atividades
Excercícios anteriores e dúvidas dos trabalhos.

Aula do dia 18/09/2010 (3,5 h/a)

Atividade
Trabalho em grupo da AVI

Aula do dia 25/09/2010 (3,5 h/a)

Atividades
Continuação dos Trabalhos em Grupo AVI.

Aula do dia 02/10/2010 (3,5 h/a)

Não houve aula (eleições).

Aula do dia 09/10/2010 (3,5 h/a)

Atividades
Continuação dos Trabalhos em Grupo AVI.

Aula do dia 16/10/2010 (3,5 h/a)

Atividade
Prova da AVI
Problema das apaixonadas por moto.
Solução: Problema das apaixonadas por moto.
Problema da caneta do presidenciável.
Solução: Problema da caneta do presidenciável
Problema da rotação dos algarismo do número inteiro.
Solução: Problema da rotação dos algarismo do número inteiro.

Aula do dia 23/10/2010 (3,5 h/a)

Assuntos
Princípios da orientação a objetos (OO) e de OO em Java.
Classes.
Classe abstrata.
Interface.
Herança.
Polimorfismo de classe.
Links sugeridos
Classe.
O que é uma classe.
Material utilizado
Programação Orientada a Objeto - Introdução.

Aula do dia 30/10/2010 (3,5 h/a)

Não houve aula (eleições).

Aula do dia 06/11/2010 (3,5 h/a)

Atividades
Exercício de orientação a objeto (trabalhando com a Questão 1 da Prova da AVI orientada a objeto).

Aula do dia 13/11/2010 (3,5 h/a)

Atividades
Exercicios com orientação a objeto.
Assunto
Coleções (ArrayList).
Problema
Problema da sala cheia.

Aula do dia 20/11/2010 (3,5 h/a)

Atividades
Exercícios de orientação a objeto.
Assunto
Exceções.
Problema
Problema da sala cheia - variação 1.

Aula do dia 27/11/2010 (3,5 h/a)

Atividades
Apresentação de trabalhos da AVII
Antônio.
Saulo.

Aula do dia 04/12/2010 (4 h/a)

Prova AVII
Instruções
Esta avaliação tem valor de quatro pontos e consta de duas questões de mesmo valor (2,0). Você deve seguir rigorosamente as instruções desta seção e dos enunciados. Descumpri-las implicará em perda total ou parcial de pontuação.
  • A prova é individual. Isto significa que todos os problemas devem ser resolvidos pelo autor, ou seja, mesmo que este pesquise em outras fontes ele deve construir suas respostas sendo capaz de explicá-las caso seja solicitado.
  • Todas as questões devem ser feitas para receber entradas por stdin e enviar saídas para stdout. Por exemplo, programas com interface de janela (swing ou similar) que não aceitem entradas por stdin e saídas na stdout serão desconsiderados.
  • A Questão 1 deve ser feita e entregue em sala.
  • As proposições da Questão 2 fazem parte da avaliação.
  • Existem duas possibilidades para a entrega da Questão 2. 1) Feita e entregue em sala no dia desta avaliação; 2) Começada em sala e entregue até o dia 8/12. Nesta última possibilidade o professor se reserva ao direito de pedir explicações a respeito do código entregue. Estas explicações, caso sejam solicitadas, serão feitas impreterivelmente no dia 11/12 na sala de aula. A falta de apresentação quando solicitada acarreta em pontuação nula. A nota será de acordo com a apresentação feita.
  • A segunda forma de entrega da Questão 2 será unicamente via o e-mail linhadireta@adonaimedrado.pro.br. Se uma confirmação de recebimento não for obtida até o dia 10/12 contate seu professor através do telefone (71) 8873-1906 para providenciar outro método de entrega.
Questão 1: Problema da rotação dos algarismo do número inteiro (invertido).
Solução: Problema da rotação dos algarismo do número inteiro (invertido).
Questão 2: Problema do jogo do milhão (Versão para Java).
Solução: Problema do jogo do milhão (Versão para Java).