Computação e Programação

« Voltar

Objetivos

1. Introduzir os conceitos indispensáveis à resolução algorítmica de problemas;

2. Dotar os alunos com os conceitos básicos de programação imperativa;

3. Fornecer competências para o desenvolvimento de programas, de pequena e média complexidade, que modelem situações concretas.

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.

Código

0104606

ECTS

6

Aulas

  • Práticas e Laboratórios - 21 horas
  • Teóricas - 42 horas