Unidade Curricular: | Código: | ||
Linguagens de Programação II | 1093LPR2 | ||
Ano: | Nível: | Curso: | Créditos: |
2 | Licenciatura | Engenharia Informática | 7 ects |
Período Lectivo: | Língua de Instrução: | Nº Horas: | |
Segundo Semestre | Português/Inglês | 91 | |
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. |