Unidade Curricular:Código:
Linguagens de Programação II1093LPR2
Ano:Nível:Curso:Créditos:
2LicenciaturaEngenharia Informática7 ects
Período Lectivo:Língua de Instrução:Nº Horas:
Segundo SemestrePortuguês/Inglês91
Objectivos de Aprendizagem:
Nesta unidade curricular pretende-se que os alunos consigam compreender e utilizar os conceitos de programação orientada aos objectos (POO) e aplicá-los em Java. Mais concretamente:
• Dominar os conceitos de POO, aplicando-os na implementação concreta de classes, interfaces, herança e polimorfismo
• Possuir capacidades de abstracção na elaboração de diagramas de classes UML
• Utilizar fluentemente tipos de dados, operadores e expressões, controlo de fluxo e colecções de dados para implementar diagramas de classes UML
• Compreender, interpretar e identificar erros de compilação e execução de programas orientados a objectos em Java
• Dominar as técnicas e métodos de estruturação e desenvolvimento de aplicações/projectos orientados aos objectos em Java
• Desenhar e implementar interfaces gráficas (GUI) com recurso a packages Java
• Estruturar e manipular adequadamente o armazenamento persistente de informação em Java
• Criar e utilizar estruturas de dados com recurso a genéricos
Conteúdos Programáticos:
1. Introdução à POO em Java: concepção de software OO, classes vs objectos, mensagens, herança e polimorfismo
2. Ferramentas CASE de suporte a metodologias baseadas em UML (diagramas de classes e implementação em Java)
3. Introdução à linguagem de programação Java: classes, tipos de dados, atributos, métodos – polimorfismo (overload e override), encapsulamento, operadores, controlo de fluxo, arrays e vectores, contratos e serviços (interfaces), herança de classes (extends) e de interfaces (implements)
4. Interfaces gráficas utilizando modelos e packages normalizadas em Java: hierarquia de componentes gráficos, componentes contentores, componentes gráficos, gestores de estrutura (layout e ficheiros XML) e programação por eventos
5. Manipulação de erros e excepções
6. Manipulação de ficheiros (binários, objetos e texto)
7. Criação e utilização de genéricos
Demonstração da Coerência dos Conteúdos Programáticos com os Objectivos da Unidade Curricular:
O conteúdo programático cobre os objectivos previstos, uma vez que se organiza em módulos que endereçam especificamente os conceitos de programação orientada-objectos na linguagem Java e a sua utilização na resolução de problemas concretos. Os conceitos básicos são revistos nos módulos 1, 2 e 3 (cf. classes – atributos, construtores e métodos, interfaces, tipos de dados, controlo de fluxo, arrays e colecções). Os conceitos mais avançados são abordados nos módulos 4, 5, 6 e 7 (cf. interfaces gráficas, manipulação de excepções, persistência de informação e genéricos). Em todos os módulos são abordados os conceitos teóricos associados a cada tema e demonstrada, com exemplos concretos, a sua aplicação. Estimula-se ainda a resolução individual de exercícios em cada módulo.
Metodologias de Ensino (Avaliação Incluída):
Os conteúdos são introduzidos e expostos nas aulas teórico-práticas (TP), recorrendo tipicamente a exemplos simples e ilustrativos de aplicação a problemas concretos e realistas. Esta metodologia é complementada com a proposta de exercícios práticos, quer para resolução na aula, quer para resolução ou finalização individual em casa. As aulas práticas-laboratoriais (PL) acompanham o ritmo das aulas TP com a proposta e resolução de exercícios adequados a cada módulo, complementando o esfroço das aulas TP.
Os alunos instalam tipicamente um dos IDEs mais utilizados na comunicade de desenvolvimento em Java (e.g. IntelliJ, Netbeans) e no qual criam um projecto que é organizado para acompanhar toda a unidade curricular e dentro do qual criam e integram os exercícios que desenvolvem.
A avaliação compreende duas componentes TP e PL com as seguintes percentagens:
TP (25% Teste 1 + 45% Teste 2) + PL (30% Projecto)
Demonstração da Coerência das Metodologias de Ensino com os Objectivos de Aprendizagem da Unidade Curricular:
A metodologia de ensino foca-se na compreensão dos conceitos de programação orientados-objectos suportados na sintaxe e semântica da linguagem de programação. Estes conceitos são aplicados à resolução de problemas concretos e reais. Os exercícios propostos direccionam-se para a compreensão dos mecanismos disponíveis na linguagem de programação, aplicados na estruturação e implementação de soluções de programação orientada-objectos. A resolução recorrente de exercícios pretende estimular a aplicação dos conhecimentos referente os mecanismos de programação. Esta prática pretende ainda consolidar o domínio sobre todo o processo de desenvolvimento orientado-objectos, i.e., a concepção, implementação e teste de diagramas de classes aplicados a problemas concretos.
Bibliografia:
1. Eckel, Bruce, Thinking in Java, 4th Ed., Prentice Hall, 2006.
2. Paul Deitel, Harvey Deitel, Java How to Program, Early Objects, 11th Ed., 2018.