Código: | LIB10102 | Sigla: | FP | |
Área Científica: | Informática |
Página Web: | https://arturmarques.com/edu/fp/ |
Área de Ensino: | Informática |
Sigla | Nº de Estudantes | Plano de Estudos | Ano Curricular | Créditos | Horas Contacto | Horas Totais |
---|---|---|---|---|---|---|
LIB1 | 47 | Despacho n.º 9236/2020, de 28 de setembro | 1º | 7 | 75 | 175 |
Teórico-Práticas: | 71,50 |
Docência - Horas Semanais
|
Docência - Responsabilidades
|
Português
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.
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
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).
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
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.
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.