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
2024/2025
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
Os CP contribuem em geral para o OA1 (aprender a usar uma liguagem OO) dado que são exemplificados e exercitados com uma linguagem OO. O CP1 e 4 a 6 contribuem para entender e exercitar os conceitos mencionados no OA2 (abstração, encapsulamento, herança e polimorfismo). Os CP2, 7 e 8 destinam-se a solidificar o conhecimento das estruturas de dados fundamentais de uma biblioteca standard (OA3). Os objetivos 4 e 5, exceções e padrões de desenho, estão muito diretamente relacionados com os CP 3 e 8, respetivamente. 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
Sendo uma UC de caráter eminentemente prático, este UC não tem avaliação por exame a 100%, só havendo avaliação ao longo do semestre. Na avaliação ao longo do semestre há 2 modalidades: A e B. Modalidade A (necessário presença em mais de 2/3 das aulas práticas e fazer o Teste 1): - Participação na aula (25%, grupos de 2 ou individual) - Prova escrita (Teste 1) a meio do semestre (25%, individual, nota mínima de 8 valores) - Projeto (50%, grupos de 2 ou individual, entrega e discussão na última semana de aulas, nota mínima de 8 valores) Modalidade B: - Prova escrita a meio do semestre (25%), (individual, nota mínima de 8 valores) - Prova escrita na data da 1ª época (25%, parte da matéria ou 50%, toda a matéria - neste caso pode substituir o teste 1, caso este tenha nota <8), (individual, nota mínima de 8 valores) - Projeto (50%, grupos de 2 ou individual, entrega e discussão na última semana de aulas, nota mínima de 8 valores) 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. A avaliação em época especial é composta por projeto e teste, valendo 50% cada componente. 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: O Projeto e a participação têm impacto em todos os objetivos de aprendizagem, dado que obrigam a pôr em prática toda a matéria. Os Testes são especialmente úteis para solidificar os objetivos OA1 e 3
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-07-18