Conhecimentos de Base Recomendados
Os alunos devem possuir e dominar conceitos de Programação Orientada a Objectos (POO) em linguagem Java e Bases de Dados Relacionais.
Recomenda-se a conclusão anterior das seguintes unidades curriculares:
– Programação I;
– Programação II;
– Programação III;
– Bases 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 activo onde o aluno desenvolve o conhecimento através da resolução problemas e o desenvolvimento de projectos 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 projectos 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 projectos de programação.
Resultados de Aprendizagem
Espera-se que no final da unidade curricular o aluno esteja habilitado a:
1. Demostrar os conceitos básicos Programação Orientada a Objectos (POO): objectos, classes, polimorfismo, herança;
2. Manipular estruturas de memória persistente: acessos a bases de dados relacionais via ODBC;
3. Desenvolver aplicações com comunicação em rede e paralelismo;
4. Implementar e manipular interfaces de interacção com o utilizador e desenvolver aplicações gráficas em Java Swing/Java FX.
5. Projectar e implementar aplicações recorrendo à linguagem Java.
Programa
1. Elementos de apoio para desenvolvimento de aplicações Java: Organização de código (Packages); Documentação de código (JavaDoc); Java Archives (JAR); Convenções da linguagem Java; Formatação de números, datas e calendários; Expressões Regulares; Acesso universal a recursos/ficheiros; Agendamento de tarefas; Impressão; Chamadas ao sistema operativo;
2. Debugging e logging;
3. Acesso e manipulação de Bases de Dados relacionais através de ODBC e JDBC;
4. Sistemas concorrentes; Sincronização de Threads;
5. Programação em rede; comunicação através de sockets; arquitectura cliente-servidor;
6. Interfaces Gráficos (Java Swing, Java FX and AWT); Componentes; Gestores de Posicionamento; Processadores de eventos; Formatações de Interface;
7. Desenvolvimento de aplicações usando o Modelo MVC (Model, View, Controller).
Docente(s) responsável(eis)
Métodos de Avaliação
- - Prova Escrita - 30.0%
- - Projecto - 70.0%
- - Projecto 1 - 30.0%
- - Projecto 3 - 35.0%
- - Projecto 2 - 35.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.M. (2017). Java 8: POO + construções funcionais. FCA.
Martins, F.M. (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.