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:

Miniteste 1

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