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
Esta UC tem como precedência as seguintes UC: - Programação Orientada aos Objetos
Objetivos Gerais / Objectives
Atingir um nível de programação que permita desenvolver, em colaboração, aplicações multiparadigma interativas de média escala.
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
Ao completar com sucesso esta unidade curricular, o estudante estará apto a: OA1: entender os princípios da programação funcional; OA2: escrever programas puramente funcionais; OA3: entender os benefícios das características do paradigma funcional comparativamente com outros paradigmas de programação; OA4: desenhar e implementar aplicações multiparadigma (com uma componente interativa) de média dimensão; OA5: trabalhar em equipa.
Conteúdos Programáticos / Syllabus
Os conteúdos programáticos (CP) são: CP1: Introdução ao paradigma funcional em programação e aos seus conceitos fundamentais; CP2: Conceitos avançados de programação funcional; CP3: Introdução às tecnologias essenciais de suporte à programação em equipa; CP4: Programação orientada a eventos; CP5: Padrões para interface do utilizador; CP6: Integração de programas multiparadigma;
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
CP1 -> OA1 CP1, 2 -> OA2 CP2 -> OA3 CP3, 4, 5, 6 -> OA4 CP3 + Desenvolvimento do projeto em equipa ->OA5
Avaliação / Assessment
Avaliação Periódica com Prova Escrita individual (PE) realizada durante o período de avaliação e, Projeto (PRJ) realizado em trabalho de grupo com 2 entregas (durante o período letivo), discussão e aferição individual do PRJ. As classificações possíveis na aferição individual são A, B ou C, definindo a nota do PRJ (np): A - np = à classif. do PRJ B - np = 80% da classif. do PRJ C - reprov. à UC Classificação final: 40%PE + 60%np Nota mínima 9.5 valores em ambos PE e np Não existe avaliação por exame Assiduidade não é usada cm critério de avaliação ou reprovação Estudantes sem nota mínima no projeto (ou que não o realizem) não têm acesso à prova escrita, ficando automaticamente reprovados à UC. Em caso de reprovação na 1ª época, o aluno pode voltar a realizar a prova escrita na 2ª época (e na época especial se a ela tiver acesso) mantendo a nota do Projeto. Não é possível melhorar a nota do projeto entre as avaliações de 1ª e de 2ª época. A obrigatoriedade de nota mínima no projeto também se aplica à Época Especial. Caso o estudante já tenha realizado e obtido nota mínima 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.
Metodologias de Ensino / Teaching methodologies
Aulas teórico-práticas e em laboratório com breves exposições teóricas seguidas de exercícios. Espera-se 5h/sem de trab autónomo para completar os exercícios das aulas e realizar o projeto. Serão utilizadas as seguintes metodologias de ensino-aprendizagem (MEA): MEA1: Expositivas,para apresentação dos conceitos teóricos; MEA2: Ilustrativas,para exemplificação dos conceitos teóricos com resolução prática de exercícios; MEA3: Orientadoras,com acompanhamento ao longo do desenvolvimento do projeto.
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
As competências cognitivas são desenvolvidas através da exposição participativa e da resolução de exercícios. As competências práticas e de trabalho em equipa são desenvolvidas nos trabalhos em grupo supervisionados. 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 laboratório) é, no nosso ponto de vista, a metodologia mais adequada. É também pela mesma razão que o projeto é fundamental para a avaliação. MEA1, MEA2, MEA3 -> OA1 MEA1, MEA2, MEA3 -> OA2 MEA1, MEA2, MEA3 -> OA3 MEA1, MEA2, MEA3 -> OA4 MEA3 -> OA5
Observações / Observations
.
Bibliografia Principal / Main Bibliography
Backfield, J. (2014). Becoming Functional: Steps for Transforming Into a Functional Programmer. ISBN 978-1449368173. Chiusano, P., & Bjarnason, R. (2014). Functional Programming in Scala. ISBN 978-1617290657. Wampler, D., & Payne, A. (2015). Programming Scala: Scalability = Functional Programming + Objects. ISBN 978-1491949856 Schildt, H. (2015). Introducing JavaFX 8 Programming. ISBN 978-0071842556. Tidwell, J., Brewer, C., & Valencia, A. (2020). Designing Interfaces: Patterns for Effective Interaction Design. ISBN 978-1492051961.
Bibliografia Secundária / Secondary Bibliography
Hutton, G. (2007). Programming in Haskell. ISBN 978-0521692694. Coplien, J. O. (1998). Multi-Paradigm Design for C++. ISBN 978-0201824674.
Data da última atualização / Last Update Date
2024-02-16