Linguagem de Programação (2009.2)
UFPB - Campus IV - Curso de Sistemas de Informação
Carga Horária: 60h
Período: 2009.2
Horário:
Quinta 10h-12h (Sala 3 - Bloco Administrativo) e
Sexta 8h-10h ( Laboratório 2 - Garagem)
Horários dos Monitores: Clique aqui
Horários de Atendimento: Quarta e Sexta (10h-12h) ou outro horário a combinar
Grupo de Discussões: http://groups.google.com.br/group/lp_ccae_20092
Minitestes:
Notas dos Alunos: Clique aqui
Ementa: Orientação a Objetos. Conceitos da Orientação: classes e objetos, abstração, encapsulamento, herança e composição, interfaces e polimorfismo. Introdução a uma linguagem de programação orientada a objetos. Tratamento de Exceções. Arquivos.
Objetivo Geral:
Introduzir aos alunos o paradigma da Programação Orientada a Objetos e uma linguagem que segue esse paradigma (Java). Ao final do curso caberá ao aluno:
Reconhecer o que caracteriza uma linguagem orientada a objetos;
Implementar sistemas simples utilizando o paradigma da programação orientada a objetos.
Conteúdo Programático:
Unidade I (20 horas):
1. Introdução à linguagem Java e suas IDEs
2. Orientação a objetos
2.1. Usando objetos
2.2. Coleções
2.3. Criação de classes
Unidade II (20 horas):
2.4. Interfaces e polimorfismo
2.5. Reuso com herança
2.6. Tratamento de erros usando exceções
2.7. Testes de unidade
2.8. Visibilidade
Unidade III (20 horas):
2.9. Regras básicas de design e refatoramento
2.10. Composição de objetos
2.11. Persistência de objetos com arquivos
2.12. Introdução à programação concorrente
Metodologia: Aulas expositivas utilizando recursos didáticos. Aulas práticas ou de exercícios envolvendo a turma.
Recursos Didáticos: Quadro e pincel atômico, datashow. Livros e artigos. Trabalhos práticos realizados com os alunos.
Modos e Meio de Avaliação: Atribuição de notas (0-10) sobre as provas escritas, trabalhos práticos e teóricos. Haverá um total de três (3) notas:
1a. Prova Escrita + Exercícios
2a. Prova Escrita + Exercícios
3a. Projeto + Defesa do projeto + Exercícios
Alguns dos exercícios serão minitestes e serão considerados em média 75% destes.
A nota final será obtida pela média aritmética das 3 notas.
Bibliografia recomendada e referências:
• Tutorial da Sun sobre Java e OO.
• Material do Professor Jacques Sauvè (UFCG)
• Furgeri, Sérgio. Java 6: Ensino Didático: Desenvolvendo e Implementando Aplicações. São Paulo: Érica: 2008.
• Eckel, Bruce.: Thinking in Java, Prentice Hall, 3a Edição, 2002.
• Zakhour et al. The Java Tutorial: A Short Course on the Basics, 4th Edition (Java Series). Prentice Hall, 2006.
• SANTOS, Rafael. Introdução à Programação Orientada a Objetos Usando JAVA. Rio de Janeiro : Campus, 2003.
• Arnold & Gosling : The Java Programming Language. Addison-Wesley, 2000.
• DEITEL, H. M. JAVA como programar. H. M Deitel e P. J. Deitel - 6a ed. Porto Alegre: Prentice-Hall, 2005.
• Kathy Sierra e Bert Bates - Java – Use a Cabeça - Editora Alta Books, 2005
• Horstmann e Cornell: Core Java 2 - Fundamentos, Volume 1. Makron Books, 2000.
• Sierra, Kathy. Certificação Sun Para Programador Java 6 Guia de Estudo. Alta Books, 2008.
Links Importantes
Baixe o JDK aqui
Acesse a API de java a partir daqui
Baixe o Eclipse Windows Linux(32bits) Linux (64 bits)
Dúvidas comuns dos alunos em Java
Fontes para Estudar por assunto:
Aulas (para ver slides e roteiros, acesse as discussões do grupo da disciplina)
04/02/10: Apresentação da disciplina. Introdução à linguagem Java. Primeiro programa em Java. Passagem de argumentos para programas.
05/02/10: Declaração de variáveis (locais e parâmetros). Criação de métodos. Introdução à estrutura condicional "if" e à estrutura de controle de fluxo "for". Roteiros 1, 2 (básicos) e 1_1 (avançado)
11/02/10: Operadores de Java. Tipos primitivos da linguagem. Uso de operadores lógicos na estrutura condicional "if". Manipulação de arrays.
12/02/10: Exercícios sobre a estrutura condicional "if", uso de variáveis em Java e uso da estrutura de controle de fluxo "for". Miniteste 1.
18/02/10:Não haverá aula (professora em reunião no Campus I)
19/02/10: Revisão de tipos Primitivos. O tipo String. Laços com "for", "while" e "do while". break e continue. O "switch" em Java. Fazer roteiro 3.
25/02/10: Operadores, comentários (inclusive Javadoc). Revisão sobre laços (for, while, do while). Manipulação de Strings e da classe Scanner. Atividade: Fazer roteiro 3.
26/02/10: Miniteste 2. Uso da documentação (API) Java. Uso de arrays. Introdução à orientação a objetos através das classes String e Scanner. Fazer Roteiros 4 e 5.
04/03/10: Manipulação de Strings e Scanner consultando a API Java (Usando Objetos). Revisão da criação de métodos. Introdução aos ambientes integrados de desenvolvimento (IDEs) através do Eclipse. Introdução à orientação a Objetos: o operador "new" e criação de variáveis de instância (antes só estávamos vendo variáveis locais).
05/03/10: Criação de Classes em Java (criação de variáveis de instância e métodos não estáticos) e praticando o uso de arrays de objetos. Roteiro 6.
11/03/10: Exercícios sobre criação de classes, de objetos dessas classes e de arrays de tais objetos. Definição de construtores. Sobrecarga de construtores e métodos. Usando objetos.
12/03/10: Mais exercícios sobre uso e criação de objetos (Roteiros 7 e 8)
18/03/10: Modelagem utilizando UML de um programinha de Jogo da Velha definindo suas classes principais com métodos e atributos. Miniteste sobre a criação de classes.
19/03/10: Aula de laboratório: Implementação das classes principais do jogo da velha (Tabuleiro e Jogador) e dos seus métodos. Implementação de classe para testar as classes criadas, invocando seus principais métodos.
25/03/10: Primeiro Estágio
26/03/10: Revisão de conceitos importantes de orientação a objetos: Encapsulamento, estado e comportamento de objetos, nível de acesso dos elementos de uma classe, métodos get e set, mensagens entre objetos (chamadas de métodos), classes, objetos, instanciação, construtores, uso das palavras reservadas this e new, declaração de métodos não estáticos, visibilidade de métodos, assinatura de métodos, métodos estáticos, recursividade, sobrecarga, pacotes.
01/04/10: Feriado (Semana Santa)
02/04/10: Feriado (Semana Santa)
08/04/10: Miniteste sobre teoria OO. Visão geral sobre coleções em Java.
09/04/10: Exercício sobre coleções em Java.
15/04/10: Planejamento: Dicionários (Map) em Java e introdução a Interfaces e Polimorfismo.
16/04/10:
22/04/10:
23/04/10:
29/04/10:
30/04/10:
06/05/10: Segundo Estágio
07/05/10:
13/05/10:
14/05/10:
20/05/10:
21/05/10:
27/05/10:
28/05/10:
03/06/10: Feriado (Corpus Christi)
04/06/10:
10/06/10: Prova Final