Ficha Unidade Curricular (FUC)

Informação Geral / General Information


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

Carga Horária / Course Load


Semestre :
1
Créditos ECTS :
6.0
Aula Teórica (T) :
12.0h/sem
Aula Teórico-Prática (TP) :
12.0h/sem
Aula Prática e Laboratorial (PL) :
12.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


480 - Informática

Departamento / Department


Departamento de Tecnologias Digitais

Ano letivo / Execution Year


2026/2027

Pré-requisitos / Pre-Requisites


Não existem pré-requisitos específicos para a frequência desta unidade curricular.

Objetivos Gerais / Objectives


A unidade curricular Fundamentos de Programação tem como principal objetivo dotar os estudantes de pensamento crítico, lógico e estruturado (algorítmico) na resolução de problemas de complexidade intermédia utilizando uma linguagem de programação.

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 da UC, o aluno deverá estar apto a: OA1: Aplicar os conceitos fundamentais de programação. OA2: Criar procedimentos e funções com parâmetros. OA3: Compreender a sintaxe da linguagem de programação Python. OA4: Desenvolver soluções com programação para problemas de complexidades intermédia. OA5: Explicar, executar e depurar fragmentos de código desenvolvido em Python. OA6: Interpretar os resultados obtidos com a execução de código desenvolvido em Python . OA7: Desenvolver projetos de programação.

Conteúdos Programáticos / Syllabus


CP1. Ambientes integrados de desenvolvimento. Introdução à programação: Sequência lógica e instruções, Entrada e saída de dados. CP2. Constantes, variáveis e tipos de dados. Operações lógicas, aritméticas e relacionais. CP3. Estruturas de controlo. CP4. Listas e matrizes (listas de listas). CP5. Procedimentos e funções. Referências e parâmetros. CP6. Objetos e classes de objetos. CP7. Manipulação de ficheiros.

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 demonstração de coerência decorre da interligação dos conteúdos programáticos com os objetivos de aprendizagem (OA), como a seguir se explicita: OA1 está associado aos conteúdos CP1,2,3,5,6,7, que cobrem conceitos essenciais como variáveis, controle de fluxo e manipulação de dados. OA2 está associado a CP1,2,3,4,5, abordando a criação de funções, parâmetros, listas e estruturas de controle, essenciais para código modular. OA3 está relacionado a todos os conteúdos, desde a introdução até conceitos avançados, como objetos e interfaces gráficas. OA4 está associado a CP1,2,3,4,7, focando a resolução de problemas com estruturas de controle, listas e manipulação de ficheiros. OA5 e OA6 associam-se a todos os conteúdos, abrangendo a execução, depuração e interpretação de código. OA7 está também associado a todo o conteúdo, exigindo aplicação total dos conhecimentos para a criação de projetos completos.

Avaliação / Assessment


A UC segue o modelo de avaliação ao longo do semestre por projeto pelo seu carácter eminentemente prático, não contemplando exame final. O estudante é avaliado pelas seguintes componentes (A1+A2 +A3): A1: 3 Tarefas de Aprendizagem individuais com validação dos docentes [15% - 5% cada uma] Serão realizadas 3 tarefas de aprendizagem ao longo do semestre. A classificação de A1 corresponde à média das notas das 3 tarefas. Nota mínima de 8 valores. A2: ePortfolio [15%]. Serão propostos desafios ao longo do semestre, incluindo atividades que devem ser realizadas fora do contexto da sala de aula (participação em workshops, seminários ou formações). A classificação de A2 corresponde à média das notas calculada sobre o número de desafios propostos. Sem nota mínima. A3: Projeto em Grupo (3) e discussão teórico-prática individual [70%] A classificação de A3 corresponde a uma percentagem aplicada à nota do projeto, que decorre diretamente do desempenho demonstrado na discussão teórica-prática individual. Nota mínima de 9,5 valores. Assiduidade: Não é obrigatória a presença às aulas.

Metodologias de Ensino / Teaching methodologies


A Unidade Curricular seguirá uma abordagem baseada nas Teorias de Desenvolvimento Cognitivo, como a Teoria do Desenvolvimento Cognitivo de Jerome Bruner (para ensino), e Teoria da Aprendizagem Cumulativa de Robert Gagné (para aprendizagem). O Modelo Instrutivo é baseado em um Modelo Sistémico como o Modelo Instrucional dos Quatro Componentes para aprendizagens complexas (4C-ID, Merriënboer). As tarefas de aprendizagem são o centro do processo de instrução, com Aulas Teóricas (T), Aulas Práticas e Laboriatoriais (PL) e Orientação Tutorial (OT). Serão abordadas práticas pedagógicas ativas que se resumem nos tópicos de metodologias ensino e de aprendizagem a seguir: MEA1: Aprendizagem Baseada em Tarefas. MEA2: Aprendizagem baseada em 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


A coerência entre as metodologias de ensino e avaliação (MEA) e os objetivos de aprendizagem (OA) é fundamentada em abordagens pedagógicas que favorecem a aplicação prática e a integração de competências. As metodologias adoptadas, nomeadamente MEA1 (Aprendizagem Baseada em Tarefas) e MEA2 (Aprendizagem Baseada em Projetos), promoverão desenvolver as habilidades e o conhecimento necessários para atingir cada objetivo de aprendizagem, especificamente segue detalhado caso a caso: OA1 (Aplicar os conceitos fundamentais de programação) é abordado por meio de MEA1, através de tarefas estruturadas que permitem a prática contínua de conceitos-chave, como variáveis, estruturas de controle e manipulação de dados. Além disso, MEA2 contribui ao exigir a aplicação desses conceitos em projetos mais abrangentes e integrados, consolidando a aprendizagem através da experiência prática. OA2 (Criar procedimentos e funções com parâmetros) é igualmente suportado por MEA1 e MEA2, já que os estudantes são incentivados a desenvolver funções e procedimentos em atividades específicas, com avaliação formativa que os ajuda a compreender a passagem de parâmetros e o desenvolvimento de código modular. MEA2 fortalece esse processo ao permitir a aplicação desses procedimentos em projetos que exigem a reutilização e integração de código. OA3 (Compreender a sintaxe da linguagem de programação Python) é abordado principalmente através de MEA1, onde tarefas específicas focam na sintaxe, gramática e estruturas da linguagem, permitindo aos alunos adquirir uma base sólida na compreensão do código. OA4 (Desenvolver soluções com programação para problemas de complexidade intermédia) é facilitado tanto por MEA1 quanto por MEA2. A abordagem de tarefas incrementais permite que os alunos desenvolvam e testem soluções para problemas de complexidade crescente. MEA2 reforça a capacidade de resolver problemas mais desafiadores em projetos mais amplos, que requerem a integração de várias soluções em um único sistema. OA5 e OA6 (Explicar, executar, depurar e interpretar fragmentos de código em Python) estão fortemente relacionados a MEA1, onde os estudantes são solicitados a depurar e interpretar fragmentos de código em tarefas específicas. A execução contínua de pequenas tarefas práticas permite que eles desenvolvam a habilidade de identificar erros, explicar o funcionamento do código e analisar os resultados de maneira rigorosa. OA7 (Desenvolver projetos de programação) está essencialmente associado a MEA2, uma vez que a metodologia baseada em projeto oferece um ambiente que exige a integração de todos os conhecimentos adquiridos, desde os conceitos fundamentais até a criação de soluções completas. Os projetos envolvem o planejamento, desenvolvimento e apresentação de soluções completas, exigindo uma aplicação aprofundada dos conceitos e técnicas de programação.

Observações / Observations


--

Bibliografia Principal / Main Bibliography


Portela, F., & Pereira, T. (2023). Introdução à Algoritmia e Programação com Python. FCA. ISBN: 9789727229314. Sobral, S. R. (2024). Introdução à Programação Usando Python (2.ª ed.). Edições Sílabo. ISBN: 9789895613878. Downey, A. B. (2024). Think Python: How to Think Like a Computer Scientist (3rd ed.). O'Reilly Media. ISBN: 9781098155438. Python Software Foundation. Python 3 Documentation. Disponível em: https://docs.python.org/3/

Bibliografia Secundária / Secondary Bibliography


Menezes, N. N. C. (2019). Introdução à Programação com Python: Algoritmos e Lógica de Programação para Iniciantes. Novatec Editora. ISBN: 9788575227183. Matthes, E. (2023). Python Crash Course (3rd ed.). No Starch Press. ISBN: 9781718502703. Martins, J. P. (2015). Programação em Python: Introdução à Programação com Múltiplos Paradigmas. IST Press. ISBN: 9789898481474. Reitz, K., & Schlusser, T. (2016). The Hitchhiker's Guide to Python: Best Practices for Development. O'Reilly Media. ISBN: 9781491933176. Disponível em: https://docs.python-guide.org/ Beazley, D., & Jones, B. K. (2013). Python Cookbook: Recipes for Mastering Python (3rd ed.). O'Reilly Media. ISBN: 9781449340377.

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


2026-07-28