Ficha Unidade Curricular (FUC)

Informação Geral / General Information


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

Carga Horária / Course Load


Semestre :
2
Créditos ECTS :
6.0
Aula Teórica (T) :
0.0h/sem
Aula Teórico-Prática (TP) :
36.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


2026/2027

Pré-requisitos / Pre-Requisites


Domínio básico de Inglês.

Objetivos Gerais / Objectives


Adquirir conhecimentos e noções essenciais de lógica e algoritmia, bem como experiência prática de programação, utilizando a linguagem Java.

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


Com esta unidade curricular o aluno deverá ficar apto a: 1. Criar algoritmos para resolver problemas simples. 2. Manipular tipos de dados (tipos primitivos, vectores, matrizes, cadeias de caracteres). 3. Usar instruções de selecção. 4. Usar instruções de iteração (ciclos). 5. Desenvolver funções e procedimentos. 6. Aplicar os conceitos de classe e objecto, e desenvolver classes de objectos. 7. Usar a decomposição funcional na resolução de problemas em programação. 8. Desenvolver pequenos programas utilizando um ambiente de desenvolvimento integrado (incluindo depurador).

Conteúdos Programáticos / Syllabus


Os principais conteúdos programáticos a abordar são: 1. O computador como máquina programável. 2. Noção de Algoritmo e modos de representar um algoritmo. 3. Tipos de dados primitivos. 4. Variáveis e expressões. 5. Instruções de selecção. 6. Instruções de iteração (ciclos). 7. Matrizes e String. 8. Métodos: funções e procedimentos. 9. Classes de objectos. 10. Abordagem de problemas em programação.

Demonstração da coerência dos conteúdos programáticos com os objetivos de aprendizagem da UC / Evidence that the curricular unit's 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: 1. O computador como máquina programável: OA1 2. Noção de Algoritmo e modos de representar um algoritmo: OA1 3. Tipos de dados primitivos: OA2 4. Variáveis e expressões: OA2 5. Instruções de selecção: OA1, OA2, OA3 6. Instruções de iteração (ciclos): OA1 a OA4 7. Matrizes e String: OA2 a OA4 8. Métodos: funções e procedimentos: OA5, OA7 9. Classes de objectos: OA6, OA7 10. Abordagem de problemas em programação: OA2 a OA8

Avaliação / Assessment


Avaliação ao longo do semestre: - Trabalho de grupo (50%): Projecto, obrigatório, com um tema de algoritmia e programação (essencialmente) procedimental, diferente para cada grupo; sem nota mínima. - Teste individual (50%): Teste escrito, sem consulta, obrigatório, intercalar - com toda a matéria, com maior incidência na avaliação de conhecimentos em programação orientada para objectos –, a realizar na última semana de aulas; com a nota mínima de 7 valores (em 20). Pode ser realizado no e-learning e apoio por zoom. Exame Final (100%): - Exame escrito individual, sem consulta, com toda a matéria. Realiza exame final – na época 1, 2 ou especial, quem não concluir a avaliação ao longo do semestre com uma nota média superior ou igual a 10 (em 20). A assiduidade não é requisito de aprovação.

Metodologias de Ensino / Teaching methodologies


Aulas teórico-práticas. Metodologias de ensino-aprendizagem (ME): 1. Expositivas, para apresentação de quadros teóricos de referência. 2. Participativas, com discussão de exemplos. 3. Ativas, com realização de exercícios. 4. Trabalho Autónomo: Espera-se que cada estudante trabalhe cerca de 10 horas semanais para consultar bibliografia, rever matéria, pesquisar temas e resolver exercícios. Neste processo, o docente apoia o uso adequado, ético e pedagógico de plataformas de IA para promover o entendimento da lógica algorítmica, a capacidade de raciocínio e a prática de programação.

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 metodologias de ensino-aprendizagem visam o desenvolvimento das principais competências de aprendizagem dos alunos que permitam cumprir com cada um dos objectivos de aprendizagem. A seguir, apresentam-se as principais interligações entre as metodologias de ensino-aprendizagem e os respectivos objectivos de aprendizagem (OA): 1. Aulas Expositivas: OA2 a OA6 2. Aulas Participativas: OA1 a OA7 3. Aulas Ativas: OA1 a OA8 4. Trabalho Autónomo: OA3 a OA8 O documento de Planeamento de Unidade Curricular (PUC), detalhado para cada aula, evidencia a relação entre os métodos pedagógicos de ensino (conforme a tipologia de aula) e os objectivos de aprendizagem. Neste caso, o alinhamento entre os instrumentos de avaliação e os objectivos de aprendizagem, são alcançados com a prova prática - realizada no computador, e que envolve as noções básicas sobre algoritmia e programação estruturada (OA1 a OA5) -, e um teste escrito individual e sem consulta, englobando toda a matéria (OA2 a OA8), incidindo em particular nas noções sobre programação orientada a objectos (OA6 a OA8).

Observações / Observations


Toda a documentação necessária ao acompanhamento dos conteúdos leccionados nesta unidade curricular está disponível (ou, em alguns casos, é indicada) na plataforma de e-learning, onde também serão publicados os resultados da avaliação. O uso adequado, ético e pedagógico das plataformas de IA é também encorajado para auxiliar na aprendizagem, nomeadamente na resolução de problemas, na compreensão da lógica algorítmica, no raciocínio, no pensamento crítico e nas boas práticas de programação.

Bibliografia Principal / Main Bibliography


- Liang, Daniel (2018). Introduction to Java, Comprehensive Version: International Edition (10th ed.). London, NJ: Prentice Hall / Pearson Education. ISBN-10: 0-27-3771388 ISBN-13: 978-0273771388 - Mendes, António e Marcelino, Maria (2012). Fundamentos de Programação em Java (4ª ed.). Lisboa: FCA. ISBN 978-972-722-637-5 - Aulas, apontamentos, exemplos e exercícios práticos disponibilizados na plataforma de e-learning.

Bibliografia Secundária / Secondary Bibliography


- Eckel, Bruce (2007). Thinking in Java (4th ed.). London: Prentice Hall. ISBN: 0-13-187248-6 - Hubbard, John (2002). Programação em Java. Lisboa: McGraw-Hill. ISBN 972-773-141-4 - Jesus, Carla (2013). Curso Prático de Java. Lisboa: FCA. ISBN 978-972-722-750-1 - Neto, João (2014). Programação, Algoritmos e Estruturas de Dados (3ª ed.). Lisboa: Escolar Editora. ISBN: 972-592-179-8 - Tutoriais de Java disponíveis online. - Apontamentos, exemplos, exercícios e manuais disponibilizados na plataforma de e-learning.

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


2026-07-10