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
--
Objetivos Gerais / Objectives
Atingir um nível de programação que permita desenvolver aplicações de média escala em colaboração, bens como noções fundamentais de programação concorrente. 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 para desenhar, implementar, testar e depurar pequenas aplicações, numa linguagem orientada para objetos. OA2. Definir e usar os conceitos de abstração, encapsulamento, herança e polimorfismo. OA3. Escolher e usar as estruturas de dados fundamentais de uma biblioteca. OA4. Usar 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 de padrões simples."
Conteúdos Programáticos / Syllabus
"CP1. Modularização física e encapsulamento CP2. Herança e Polimorfismo CP3. Interfaces CP4. Coleções e classes genéricas CP5. Biblioteca standard do Java (principais estruturas de dados) CP6. Exceções e tratamento de erros CP7. Leitura e escrita de ficheiros CP8. Introdução ao planeamento de projetos, teste e documentação CP9. 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: O primeiro objetivo é geral a todos os contéudos programáticos e à sua prática. O segundo objetivo está principalemnte relacionado com os três primeiros conteúdos programáticos, que são basilares à Programação Orientada para Objetos. O terceiro, quarto e quinto objetivos estão muito diretamente ligados aos conteúdos programáticos 5, 6 e 9, respetivamente. Sumário esquemático: CP1 - OA1, OA2 CP2 - OA1, OA2 CP3 - OA1, OA2, OA5 CP4 - OA1 CP5 - OA3 CP6 - OA4 CP7 - OA1 CP8 - OA1 CP9 - OA5"
Avaliação / Assessment
"A nota é calculada por uma sucessão de exercícios práticos (nas aulas 2 a 11), um teste e um projeto, de modo a avaliar a progressão do aluno ao longo do curso. As classificações possíveis nos exrecícios são de 0-5. Os exercícios e projeto devem ser resolvidos aos pares. A nota final será: 25% * 4* (média da classificação dos exercícios) + 25% teste de meio-de-semestre + 50% projeto."
Metodologias de Ensino / Teaching methodologies
"Serão utilizadas as seguintes metodologias de ensino-aprendizagem (MEA): MEA1: Ilustrativas, para exemplificação dos conceitos teóricos em contextos reais e com a intervenção de professores. MEA2: Argumentativas, com apresentação e discussão dos trabalhos. MEA3. Participativas e Ativas, com realização prática de tarefas e trabalho de projeto. MEA4. Experimentais, com desenvolvimento e exploração de soluções de software. MEA5. Autoestudo, com trabalho autónomo por parte do aluno."
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 é, no nosso ponto de vista, a metodologia mais adequada. É também pela mesma razão que os trabalhos práticos são fundamentais para a avaliação desta UC. O alinhamento entre cada instrumento de avaliação e os objetivos de aprendizagem definidos para a UC é realizado através de vários trabalhos práticos de modo a atingir e avaliar todos os objetivos: OA1 a OA5."
Observações / Observations
--
Bibliografia Principal / Main Bibliography
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 Application Programming Interface)"
Data da última atualização / Last Update Date
2024-12-04