Ficha Unidade Curricular (FUC)

Informação Geral / General Information


Código :
M4310
Acrónimo :
M4310
Ciclo :
2.º ciclo
Línguas de Ensino :
Português (pt)
Língua(s) amigável(eis) :
Inglês

Carga Horária / Course Load


Semestre :
2
Créditos ECTS :
6.0
Aula Teórica (T) :
18.0h/sem
Aula Teórico-Prática (TP) :
18.0h/sem
Aula Prática e Laboratorial (PL) :
0.0h/sem
Trabalho de Campo (TC) :
0.0h/sem
Seminario (S) :
0.0h/sem
Estágio (E) :
0.0h/sem
Orientação Tutorial (OT) :
1.0h/sem
Outras (O) :
0.0h/sem
Horas de Contacto :
37.0h/sem
Trabalho Autónomo :
113.0
Horas de Trabalho Total :
150.0h/sem

Á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


2022/2023

Pré-requisitos / Pre-Requisites


Programação Orientada por Objetos

Objetivos Gerais / Objectives


Abordar o desenvolvimento de componentes reutilizáveis de software com boas propriedades relativas à sua usabilidade e adaptação. São introduzidos conceitos que assentam em noções prévias de programação orientada por objetos, envolvendo padrões de desenho, desenho de API, boas práticas da indústria de software.

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


Após a conclusão desta unidade curricular o estudante deverá ficar apto a: OA1. Conhecer os fundamentos de programação funcional OA2. Aplicar mecanismos de meta-programação OA3. Desenhar APIs (application programming interfaces) OA4. Desenvolver software reutilizável

Conteúdos Programáticos / Syllabus


CP1. Introdução à linguagem Kotlin CP2. Meta-programação e anotações CP3. Padrões de desenho para extensibilidade CP4. Sistemas baseados em plugins

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 interligação entre os conteúdos programáticos e os objetivos de aprendizagem (OA) realiza-se da seguinte forma: OA1: CP1 OA2: CP2 OA3: CP3 OA4: CP4

Avaliação / Assessment


Avaliação Periódica: - Quizzes em tempo de aula (20%) - Avaliação intermédia de projeto (20%), durante o período letivo - Projeto (60%), com entrega e discussão durante o período de avaliação (época de exames) Para aprovação à UC é exigida uma assiduidade mínima às aulas efetivamente lecionadas de 50%. A realização de Projeto é única forma de avaliação, não existe a possibilidade de avaliação por Exame. A avaliação em Época Especial consiste na entrega e discussão do Projeto, sendo obrigatório que o mesmo tenha sido iniciado e acompanhado pelo docente durante o período letivo.

Metodologias de Ensino / Teaching methodologies


Serão utilizadas as seguintes metodologias de ensino-aprendizagem(MEA): MEA1: Expositivas, para apresentação da motivação para as matérias abordadas e demonstração de aplicações práticas MEA2: Participativas, através da resolução de exercícios práticos MEA3: Argumentativas, através de um acompanhamento próximo e discussão das opções seguidas no 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


Principais interligações entre as metodologias de ensino-aprendizagem (MEA) e os respectivos objectivos (OA): OA1: MEA1, MEA2 OA2: MEA1, MEA2, MEA3 OA3: MEA1, MEA2, MEA3 OA4: MEA2, MEA3

Observações / Observations


.

Bibliografia Principal / Main Bibliography


André L. Santos, Livro digital de apoio (Kotlin, padrões de desenho), 2021.

Bibliografia Secundária / Secondary Bibliography


Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides. Design Patterns. Elements of Reusable Object-Oriented Software, Addison-Wesley, 1995. Joshua Bloch, Effective Java (3ª edição), 2017. Dmitry Jemerov and Svetlana Isakova, Kotlin in Action, Manning, 2017. David Farley, Modern Software Engineering: Doing What Works to Build Better Software Faster, Addison-Wesley, 2021.

Data da última atualização / Last Update Date


2024-02-16