Ficha Unidade Curricular (FUC)
Informação Geral / General Information
Carga Horária / Course Load
Área científica / Scientific area
Ciências e Tecnologias da Programação
Departamento / Department
Departamento de Ciências e Tecnologias da Informação
Ano letivo / Execution Year
2023/2024
Pré-requisitos / Pre-Requisites
Aprovação a Introdução à Programação
Objetivos Gerais / Objectives
Atingir um nível de programação que permita desenvolver aplicações de média escala em colaboração. Aprender os principais conceitos associados a linguagens de alto nível orientadas para objetos.
Objetivos de Aprendizagem e a sua compatibilidade com o método de ensino (conhecimentos, aptidões e competências a desenvolver pelos estudantes) / Learning outcomes
No final do período letivo o aluno deverá ser capaz de: OA1. Usar uma linguagem de programação orientada para objetos para desenhar, implementar, testar e depurar pequenas aplicações. OA2. Entender e aplicar os conceitos de abstração, encapsulamento, herança e polimorfismo. OA3. Saber utilizar as estruturas de dados fundamentais de uma biblioteca (pilhas, filas, árvores, tabelas de dispersão). OA4. Aplicar mecanismos de controlo de erros. OA5. Explicar a utilidade da utilização de padrões de desenho de software e demonstrar a sua utilização em casos simples.
Conteúdos Programáticos / Syllabus
CP1. Pacotes e encapsulamento CP2. Leitura e escrita de ficheiros CP3. Exceções e tratamento de erros CP4. Polimorfismo and interfaces CP5. Classes anónimas e lambdas CP6. Herança CP7. Coleções e classes genéricas CP8. Introdução aos padrões de desenho
Demonstração da coerência dos conteúdos programáticos com os objetivos de aprendizagem da UC / Evidence that the curricular units content dovetails with the specified learning outcomes
A relação entre os Conteúdos Programáticos e os Objetivos de Aprendizagem é a seguinte: CP1 - OA1, OA2 CP2 - OA1, OA4 CP3 - OA1, OA4 CP4 - OA1, OA2, OA5 CP5 - OA1, OA2 CP6 - OA1, OA2, OA5 CP7 - OA1, OA3 CP8 - OA5
Avaliação / Assessment
A avaliação pode ser realizada segundo uma das seguintes modalidades: Modalidade A: - Exercícios realizados em aula (20%, grupos de 2 ou individual) - Prova escrita a meio do semestre (30%, individual, nota mínima de 7 val.) - Projeto (50%, grupos de 2 ou individual) Modalidade B: - Prova escrita a meio do semestre ou em época especial (50%, individual, nota mínima de 7 val.) - Projeto (50%, grupos de 2 ou individual) Independentemente da modalidade seguida, a nota da componente "Projeto" é limitada pelo desempenho demonstrado individualmente numa discussão oral, de acordo com a seguinte regra: - Muito bom desempenho - sem limite; - Bom desempenho - limite de 16 val. - Desempenho suficiente - limite de 12 val. - Mau desempenho na discussão - reprovado à UC. Dado o caráter prático da UC não há lugar a avaliação por exame. A avaliação em época especial segue a modalidade B. Melhoria de nota só pode ser feita repetindo o processo de avaliação no ano seguinte.
Metodologias de Ensino / Teaching methodologies
Nas aulas TP são introduzidos os temas semanais em estudo através de exposições breves e da implementação de programas de exemplo. Nas aulas práticas de 3h são realizados exercícios: no início o docente tem um papel ativo na resolução, mas depois passam a ser resolvidos de forma mais autónoma pelos estudantes. As aulas servem também para acompanhamento dos projetos. Espera-se que um estudante use 5h/semana em trabalho autónomo, sendo importante a leitura dos guiões antes das aulas práticas.
Demonstração da coerência das metodologias de ensino e avaliação com os objetivos de aprendizagem da UC / Evidence that the teaching and assessment methodologies are appropriate for the learning outcomes
Esta disciplina ministra conhecimentos em que a prática guiada é fundamental. Daí que o intercalar de exposição com prática (sensivelmente em módulos de 1h30 teórico-prática e 3h de prática) é, no nosso ponto de vista, a metodologia mais adequada. É também pela mesma razão que o projeto é fundamental para a avaliação. O alinhamento entre cada instrumento de avaliação e os objectivos de aprendizagem é o seguinte: Projeto: OA1, 2, 3, 4 e 5 Testes/Exame: OA2, 3, 4 e 5
Observações / Observations
A obrigatoriedade de aprovação no projeto também se aplica à época especial. Caso o estudante já tenha realizado e obtido aprovação no projeto durante o período normal de lecionação da UC, o mesmo será considerado para a época especial. Caso ainda não tenha realizado o projeto, deverá entregá-lo até à data definida e realizar a discussão. Nessa situação, a data limite para entrega e a discussão serão agendadas para a semana que antecede a época especial.
Bibliografia Principal / Main Bibliography
Folhas de apoio disponíveis no e-learning. Y. Daniel Liang, "Introduction to Java Programming: Comprehensive Version" 10th Ed. Prentice-Hall / Pearson, 2015.
Bibliografia Secundária / Secondary Bibliography
F. Mário Martins, "Java 8 POO + Construções Funcionais", FCA - Editora de Informática, 2017. ISBN: 978-972-722-838-6 (portuguese) Ken Arnold, James Gosling e David Holmes, "The JavaTM Programming Language", 3ª edição, Addison-Wesley, 2000. ISBN: 0-201-70433-1 Bruce Eckel, "Thinking in Java", 3ª edição, Prentice Hall, 2002. ISBN: 0-13-100287-2 Gamma, Helm, Johnson & Vlissides (1994). Design Patterns. Addison-Wesley. ISBN 0-201-63361-2. Java resources at http://java.sun.com; (tutorials and Java Aplication Programming Interface)
Data da última atualização / Last Update Date
2024-02-16