• EN
  • Facebook
  • Instagram
  • Youtube
  • Linkedin
Você está em: Início > Ensino > Unidades Curriculares > LIB10102
Autenticação
ATENÇÃO: Este site utiliza cookies. Ao navegar no site estará a consentir a sua utilização.

Fundamentos de Programação

Código: LIB10102    Sigla: FP
Área Científica: Informática

Ocorrência: 2023/24 - 1S

Página Web:https://arturmarques.com/edu/fp/
Área de Ensino: Informática

Cursos

Sigla Nº de Estudantes Plano de Estudos Ano Curricular Créditos Horas Contacto Horas Totais
LIB1 48 Despacho n.º 9236/2020, de 28 de setembro 7 75 175

Horas Efetivamente Lecionadas

LI-1-TA

Teórico-Práticas: 71,50

Docência - Horas Semanais

Teórico-Práticas: 5,00

Tipo Docente Turmas Horas
Teórico-Práticas Totais 1 5,00
Cristina Maria Costa Rodrigues - ESGT   5,00

Docência - Responsabilidades

Docente Responsabilidade
Cristina Maria Costa Rodrigues - ESGT Responsável

Língua de Ensino

Português

Objetivos de Aprendizagem (conhecimento, aptidões e competências a desenvolver pelos estudantes)

Uma vez obtida aprovação na disciplina, o aluno deverá:
(o1) Entender os conceitos de linguagem, sintaxe, gramática, semântica, algoritmo, programação, assinatura, implementação, abstração, depuração, iteração e recursão;
(o2) Ser capaz de mapear os conceitos em notações de muito alto-nível, refinadas até à sua concretização em linguagem artificial livre de contexto adequada (por exemplo, Python), utilizando abordagens e técnicas de suporte, como criação top-down, bottom-up, abstração funcional, abstração de dados;
(o3) Saber criar as construções programáticas adequadas para representação dos dados adequados a um problema, utilizando tipos de dados nativos e/ou criando os seus próprios tipos de dados, incluindo tuplos, listas e dicionários;
(o4) Saber criar as construções programáticas adequadas para a expressão de algoritmos, incluindo funções e métodos;
(o5) Saber criar, documentar, e fazer debug de soluções, incluindo competência para reutilização de código.

Conteúdos programáticos

Introdução ao pensamento computacional e à programação
Conceitos: linguagem, sintaxe, gramática, semântica, algoritmo, programação, assinatura, implementação, abstração, depuração, iteração e recursão
Técnicas de abordagem a problemas
Seleção de uma linguagem de programação e de um ambiente de desenvolvimento
Dados e tipos de dados
Operações e operadores, notação, aridade
Input e output
Instruções condicionais
Repetições
Documentação
Reutilização de código
Observação do funcionamento, incluindo com ferramentas de debugging
Functions, scoping, abstração
Iterações e recursões
Except e Assert
Criação de tipos de dados customizados, usando class
Escrita de programas diversos, que criem oportunidades para algoritmos de ordenação e procura

Demonstração da Coerência dos Conteúdos Programáticos com os Objetivos de Aprendizagem da Unidade Curricular

Os tópicos permitem ao estudante fazer um caminho que começa por discutir e entender o que é "pensamento computacional" e "programação", introduzindo, elaborando e exemplificando conceitos fundamentais (o1).

O desenvolvimento prático de soluções faz-se com linguagens e ferramentas concretas, que são  selecionadas e postas em ação, ficando disponível uma forma de expressar as ideias e abordagens discutidas (o2).

O estudo e a prática com tipos de dados, e a capacidade de criar novos, satisfaz (o3).

O estudo e a prática com algoritmos, functions e métodos, satisfaz (o4).

Esta abordagem deverá conferir a aptidão de criar soluções simples, com boas práticas de notação, reutilização, organização, e documentação, fazendo uso de algoritmos conhecidos ou novos, do autor (o5).

Metodologia de Ensino (Avaliação incluída)

Apresentações e casos de estudo.
Desenvolvimento prático de soluções.
Avaliação:
Trabalhos propostos pelo estudante e acordados com o docente (T)
Elemento de avaliação controlado pelo docente (E)
Nota final = 0.5 * T + 0.5 * E


Demonstração da Coerência das Metodologias de Ensino com os Objetivos de Aprendizagem da Unidade Curricular

As apresentações e os casos de estudo, introduzem e concretizam os conceitos, respetivamente, devendo facilitar o seu entendimento.
O desenvolvimento na prática expõe os estudantes à realidade das soluções adotadas, devendo traduzir-se em aptidões para a criação de software.

Bibliografia de consulta (existência obrigatória)

Guttag, J. V. and J. Sussman (2021). Introduction to Computation and Programming Using Python, Third Edition, MIT Press.

Jesús, S. D. and D. Martinez (2020). Applied Computational Thinking with Python: Design algorithmic solutions for complex and challenging real-world, Packt Publishing.

Bhasin, H. (2018). Python Basics: A Self-Teaching Introduction, Mercury Learning and Information.

Observações