LSD PG AC LIC POO LSD PSC SI AED PICC LS
Que os estudantes detenham as competências adquiridas em Programação, nomeadamente: Distinguem entre valores, tipos e variáveis; Sabem construir e usar expressões; Sabem usar instruções de controlo de fluxo; Sabem criar arrays e aceder aos seus elementos; Conhecem o conceito de classe e objecto como instância de classe.
Componente teórica: 50% o Dois testes parciais a realizar durante o período de aulas ou exame final; o Caso não tenha sido obtida a classificação mínima num dos testes, este pode ser realizado em regime de exame parcial na 1ª época de exames. As provas escritas têm como fonte de consulta unicamente uma folha A4 elaborada pelo estudante com a informação que achar pertinente. Componente prática: 50% o Três trabalhos práticos desenvolvidos ao longo do semestre e uma discussão final; Os trabalhos são realizados em grupo, máximo de três estudantes, no entanto, a discussão final irá definir a classificação individual de cada elemento do grupo
Para ser aprovado na disciplina, o estudante deverá ter: Nota em qualquer dos testes ou exame parcial superior ou igual a 8 (oito) valores; Média dos testes ou nota do exame final superior ou igual a 10 (dez) valores; Nota da discussão final superior ou igual a 10 (dez) valores; Nota do último trabalho superior ou igual a 10 (dez) valores.
Java: An Introduction to Problem Solving and Programming, 4/E WJalter Savitch ISBN: 0-13-149202-0 Publisher: Prentice Hall Copyright: 2005 Capítulos do livro e ordem por que são abordados: Cap. 07: Herança Cap. 12: Interfaces gráficas (Swing) Cap. 08: Tratamento de Excepções Cap. 09: Ficheiros de texto Cap. 10: Estruturas de Dados Dinâmicas
Herança: classes derivadas; classes abstractas; interfaces; ligação dinâmica; polimorfismo. Introdução à interface gráfica: programação event-driven; componentes gráficos; layout managers; listeners. Tratamento de excepções. Ficheiros de texto e binários. Estruturas de dados dinâmicas e genéricos: vectores; listas; iteradores.
Revisões 2 1 2 Introdução herança e polimorfismo 4 3 Aplicação/Interface gráfica 2 Excepções/Streams Estruturas de dados 3º Trabalho
Início do período lectivo Férias da Páscoa Fim do período lectivo 26 de Fevereiro 27 Março a 2 de Abril 15 de Junho FERIADOS Segunda feira Quarta feira Quinta feira - 10 de Junho - 1 de Maio (LT22D, LI21N e LT21N - 1h30m) (LI21D, LI22D e LI23D 3h) - 25 de Abril e 13 de Junho
Semanas 1ª Apresentação: Descrição do programa da disciplina. Regras de avaliação Bibliografia Revisões: Variáveis do tipo valor e do tipo referência; Conversões implícitas e explícitas; Modificadores de acesso (public e private); Classe String e classes wrapper. 2ª Introdução Herança Definição das classes: Ponto e Ponto com Cor; Agregação versus Derivação; Redefinição de métodos; Modificadores de acesso (public, protected e private). Sobreposição versus sobrecarga; Referência super. Invocação explícita do construtor da classe base. Invocação de métodos da classe base; Livro Capitulo 1 a 6 Capitulo 7
Semanas 3ª Polimorfismo Utilização de um array do tipo da classe base. Definição da classe Polígono. Interfaces. Definição da interface Ponto e das classes: PontoCartesiano, PontotPolar a implementarem Ponto; Classe Object. Redefinição do tostring e equals; Classes abstractas e métodos abstractos. Implementar uma aplicação que use (Jogo das Minas) : - Algoritmos recursivos. - Model-View-Control. - Interfaces Gráficas (Componentes gráficos). - Ficheiros. 4ª e 5ª Implementação em modo consola Livro Capitulo 7
Semanas 6ª Introdução às interfaces Gráficas. Componentes gráficos: JFrame; JLabel; Layouts: FlowLayout; BorderLayout; e GridLayout. Componentes gráficos: JButton; JTextField e JTextArea; ActionListeners e ActionEvents 7ª e 8ª e Tratamento de excepções. Instruções try-throw-catch; Cláusula throws. Hierarquia de excepções; Definir classes excepção; Introdução à hierarquia de streams Diferença entre ficheiros binários e de texto; Classes FileOutpuStream; PrintWriter; e a excepção FileNotFoundException. Classes FileReader; BufferedReader; e as excepções FileNotFoundException e IOException. Livro Capitulo 12 Capítulo 8 Capítulo 9
Semanas 9ª Implementar uma aplicação que use (Gestão de stocks) : Algoritmos ordenação. Ficheiros. Coleções. Interface gráfica. 10ª Introdução à hierarquia de classes do framework de coleções disponibilizado pela API do JAVA. Exemplos de utilização da classe parametrizada ArrayList do java.util. Conceito de coleção e iterador. Interfaces: Collection, Iterable, e Iterator; Livro Capitulo 11 Capitulo 10
Semanas 11ª Definição da classe AbstractCollection. Definição da classe ArrayCollection, que implementa uma coleção em array; Redefinição dos métodos que têm implementações mais eficientes. Classes internas Implementação da classe interna ArrayIterator. 12ª Estruturas de dados ligadas. Definição da classe LinkedCollection, que implementa uma coleção em lista simplesmente ligada; Implementação da classe interna LinkedIterator. Livro Capitulo 10
Semanas 13ª Introduzir e implementar o terceiro trabalho (Jogo da cobra): Contentores Ficheiros Listas ligadas 14ª Adicionar menus, icons, borders, e scroll bars; Interface MouseListener e MouseMotionListener. Livro 3º Trabalho 15ª
2º teste 3º Trabalho 2 1 2 1º Trabalho Revisões Introdução herança e polimorfismo 1º Trabalho 4 2º Trabalho 2 3 Aplicação/Interface gráfica Excepções/Streams Estruturas de dados 2º Trabalho 1º teste 3º Trabalho
Os estudantes que terminam com sucesso esta unidade curricular serão capazes de: Exprimir objetivos na forma de algoritmos recursivos. Definir e usar: classes derivadas, classes que representem estruturas de dados dinâmicas. Construir aplicações simples usando o paradigma da Programação Orientada por Objectos e interface gráfica. Saber tratar e lançar excepções. Conhecer os contentores da framework de colecções do Java, em termos das: Características e comportamento que os distinguem. Saber aceder aos elementos dos contentores através dos iteradores.