Cronograma de Programação I e Laboratório I - 2008/1 – Versão Aula 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Programação I de 15/01/2008 Laboratório I Modelos conceituais baseados em classes e objetos. Exemplos de classes e suas funcionalidades. Exemplo de objetos. Exemplos de atributos. Tipos de atributos. Classes em Java. Definição de atributos. Restrições de visibilidade (public e private).Tipos de dados (int, double, String). Instanciação de objetos. Introdução ao uso do computador. Arquitetura de Von Neumann. Sistemas operacionais. Arquivos. Tipos de arquivos. Diretórios. Unidades de disco. Edição, compilação, execução e interpretação. Java. JVM. Algoritmo. Exemplo de um pequeno programa em Java. Uso do javac e java (pelo DOS). Tipos de erros: compilação, execução e lógica. Definição de métodos. Atribuição. Passagem de Ambiente de programação. Blue J. Editor (abrir , parâmetros. Construtores. Saída de dados. salvar, copiar, colar, navegar), compilador, Sobrecarga de métodos e construtores. Classes de execução. Exercícios com classes prontas para teste (método main). ambientação no Blue J. Métodos que retornam um valor. Entrada de dados Exercícios sobre modelagem envolvendo classes. (usar uma classe pronta). Tipos numéricos. UML e Java. Exercícios com atribuição e Expressões aritméticas. expressões aritméticas simples. Exercícios ou continuação da teoria, se necessária. Programação com objetos. Classe de teste. Expressões relacionais. Expressões lógicas. Testes Programação com objetos. (usar todos os conceitos condicionais. Comparações de objetos. Constantes apresentados até a 3ª. aula de Prog I) com nome (final). Exercícios. Programas orientados a objeto com seleção. Comandos de iteração (while-do, for e do-while). Programas orientados a objeto com seleção. Contadores e acumuladores. Variáveis locais e escopo de variáveis. A refência this. Exercícios. Programas orientados a objeto com iteração. Processo de teste e depuração (execução passo a passo no BlueJ). Herança e Polimorfismo. Classes derivadas e Programas orientados a objeto com iteração. primitivas. Generalização/Especialização. Sobrescrita de métodos. Integralização do grau A. Integralização do grau A. Exercícios. Programas orientados a objeto com herança. Membros estáticos de uma classe. Arrays Exercícios. unidimensionais. Exercícios. Exercícios. Arrays bidimensionais. Arrays de Objetos. Exercícios com arrays unidimensionais. Exercícios. Exercícios. Exercícios. Exercícios com arrays bidimensionais. Exercícios. Exercícios. Integralização do Grau B. Integralização do Grau B. Divulgação dos resultados. Divulgação dos resultados. Grau C. Grau C. Observações: a) Lab I: na primeira aula, identificar com os alunos a necessidade de dar maior ou menor ênfase aos tópicos “Sistemas operacionais. Arquivos. Tipos de arquivos. Diretórios. Unidades de disco.” previstos no cronograma para serem abordados nesta aula. b) Variáveis locais: introduzir quando surgir a necessidade (Prog I ou Lab I). c) Entrada e saída: usar classe pronta para entrada. Para a saída, fica a critério do professor usar System.out ou criar uma classe utilitária. Cada professor pode usar a definição que achar mais apropriada, pois acreditamos que a diversidade é saudável. Em Programação I tem sido mantido um padrão (que consta nas notas de aula elaboradas pelo professor Aníbal). d) Dar o conceito de constante com nome (variavel final) – evite os números mágicos. e) f) g) h) i) j) k) l) m) n) This: evitar o uso do this nas primeiras aulas; introduzir o conceito conforme a necessidade, entre a 4ª. e a 7ª. aula de Prog I (para chamada de outro construtor ou ref. explícita ao próprio objeto). Consultar as notas de aula de Prog I para verificar quando esse conceito já foi trabalhado. Prog I: no final da 4ª aula, sugerir a leitura sobre o material de Associação (elaborado pelo professor Aníbal – Notas de Aula 8). Restringir ao máximo o uso de métodos static – usar apenas o main e os utilitários (ex. classe Math); Lab I: recomenda-se o uso da API sempre que possível e indicado; por exemplo, usar a classe Math, String, etc. Não apresentar Interface. Nas duas primeiras aulas de Lab I, explicar bem o que é tempo de compilação e tempo de execução. Recomenda-se fortemente que sejam trabalhados exercícios com relacionamento de associação. Notação: usar UML para modelagem. Recomenda-se o uso do BlueJ como ferramenta de desenvolvimento em Lab I. Em Prog I: sugestão de os alunos poderem usar uma “cola oficial” para a realização das provas. Isso tem se demonstrado como uma forma de motivar os alunos a estudarem para a prova.