Conhecimentos de Base Recomendados
Os alunos devem possuir e dominar conceitos de programação procedimental e algoritmia.
Recomenda-se a conclusão anterior das seguintes unidades curriculares:
– Fundamentos de Programação;
– Estruturas de Dados.
Métodos de Ensino
Nesta unidade curricular são utilizadas as seguintes metodologias de ensino:
1 – Método expositivo: método explicativo onde fundamentos teóricos e conceito são apresentados pelo professor e discutidos com a turma, seguido de exemplos demonstrativos;
2 – Método experimental: método ativo onde o aluno desenvolve o conhecimento através da resolução problemas e o desenvolvimento de projetos laboratoriais individuais ou em dinâmica de grupo, sendo o método predominante.
Cada aula será composta por dois momentos:
1 – Exposição introdutória: No início da aula o docente expõe e discute com os alunos os novos conteúdos em estudo;
2 – Aplicação prática: Após a exposição introdutória, os alunos desenvolvem fichas de trabalho e projetos de programação, individualmente e em conjunto, para aplicação prática dos novos conceitos, de forma autónoma e sob a orientação do docente.
Esta será uma unidade curricular predominantemente prática e focada no desenvolvimento de projetos de programação.
Resultados de Aprendizagem
Espera-se que no final da unidade curricular o aluno esteja habilitado a:
1. Identificar os conceitos básicos de Programação Orientada a Objetos (POO): objetos, classes, polimorfismo e herança;
2. Implementar e gerir estruturas de dados estáticos (tabelas uni e multi-dimensionais) e dinâmicos (java collections, nomeadamente arrays, vetores e dicionários);
3. Utilizar estruturas de memória persistente: ficheiros (binários, texto e objetos);
4. Planear, desenvolver e testar programas usando a linguagem Java.
Programa
1. Introdução à linguagem Java; Estrutura e sintaxe;
2. Programação Orientada a Objetos (POO): Classes e Objetos;
3. Tratamento de Exceções;
4. Estruturas de dados estáticas: Tabelas Unidimensionais e Multidimensionais
5. Estruturas de dados dinâmicas: Java Collections, incluindo Arrays, Vetores e Dicionários; Pesquisa e iteração de estruturas de dados;
6. Ficheiros: Texto, Binários e de Objetos; Java Properties; Leitura de dados a partir de dispositivos de entrada; Manipulação de ficheiros e diretorias; Streams de dados;
7. Programação Orientada a Objetos (POO): Herança e Polimorfismo.
Docente(s) responsável(eis)
Métodos de Avaliação
- - dois projectos em grupo com apresentações (35% cada) - 70.0%
- - dois trabalhos práticos individuais (15% cada) - 30.0%
- - uma prova escrita individual (30%) - 30.0%
- - um projecto individual com apresentação (70%). - 70.0%
Estágio(s)
NAO
Bibliografia
Flanagan, D. , & Evans, B. (2019). Java in a nutshell – A desktop quick reference (7.ª ed). O’Reilly.
Jesus, C. (2013). Curso prático de java. FCA.
Martins, F. (2017). Java 8 – POO + construções funcionais. FCA.
Martins, F. (2014). Projectos de POO em java. FCA.
Urma, R., Fusco, M., & Mycroft, A. (2018). Modern java in action – Lambdas, streams, functional and reactive programming. Manning.