Fundamentos da Programação
Código
01061094Créditos ECTS
6Objetivos
Fornecer conhecimentos sobre conceitos fundamentais relativos à actividade de programação, nomeadamente, algoritmo, abstracção procedimental e abstracção de dados, a programação como construção de abstracções, paradigmas de programação. Após a frequência da cadeira, os alunos deverão dominar os conceitos apresentados e serem capazes de desenvolver programas numa linguagem de programação de alto nível, o Python.
Programa
"1. Introdução à computação e programação: Computadores, programas, algoritmos. Linguagens de programação, elementos básicos de programação, instruções e sequenciação. Sintaxe e semântica. Open source e proprietário. Computadores e sistemas operativos. Utilização Software: interativa do Python com Jupiter. Diferentes paradigmas de linguagens de programação. Algoritmos de busca simples.
2. Tipos e estruturas de dados em Python: Tipos elementares de dados. Nomes e atribuição. Conversão de tipos. Operações com cadeias de caracteres. Dados estruturados em listas, dicionários, tuplos e conjuntos. Manipulação de estruturas de dados. Cálculo algébrico com vetores e matrizes. Utilização de ficheiros para ler e gravar dados. Utilização de bibliotecas/módulos gráficos em Python. Utilização do Python para análise de dados.
3. Algoritmos e programação estruturada: Descrição de algoritmos com pseudolinguagens. Controlo de fluxo de execução: seleção e repetição. Tuplos e ciclos contados. Funções. Abstração procedimental. Recursão e iteração. Funções de ordem superior. Programação funcional. Desenho de algoritmos e escrita de código na resolução de problemas. Introdução a algoritmos de ordenação. Utilização do IDE Visual Studio Code.
4. Conceitos de orientação aos objetos com Python: conceito de classe e instância, abstração de dados. Tipos abstratos de dados."
Métodos de Ensino
As aulas teórica incluem segmentos expositivos em que se apresentam os conceitos com recurso a exemplos e demonstrações que ilustram a utilização da linguagem de programação. Utilizam-se algumas metodologias dinâmicas baseadas em gamificação.
As aulas de laboratório são preenchidas pela resolução conjunta de problemas e fichas de trabalho.
São igualmente utilizadas atividades de tutoria e de apoio à realização dos trabalhos tanto de grupo como trabalhos semanais avaliados e comentados pelo docente. Utilizam-se métodos de ensino baseados na experiência.
Bibliografia
Essencial
Gaël Varoquaux, Olav Vahtras, Emmanuelle Gouillart, & Pierre de Buyl (Eds.). (2024). Scipy Lecture Notes. Release 2024.1 (April 2024). https://scipy-lectures.org/
Ernesto Costa. (2015). Programação em Python—Fundamentos e Resolução de Problemas. FCA. Biblioteca SD 004.43 C871p
Pine, D.J. (2019) Introduction to Python for Science and Engineering. CRC Press.
Complementar
Downey, A. B. (2024). Think Python: How to Think Like a Computer Scientist. O'Reilly Media; 3rd edition.
Galea, A. (2018). Beginning Data Science with Python and Jupyter: Use powerful tools to unlock actionable insights from data. Packt Publishing.