Disciplina Curricular

Fundamentos de Programação FPro

Mestrado Bolonha em Bioinformática e Biologia Computacional - 1_MBBC 2017/18

Contextos

Grupo: 1_MBBC 2017/18 > 2º Ciclo > Parte Escolar > Opcionais > 977 - 1º Ano/1º Sem do Mestrado em BBC

Período:

Peso

6.0 (para cálculo da média)

Objectivos

O objetivo principal desta unidade curricular é apresentar aos estudantes de ciências e engenharia a base e os aspetos teóricos da programação. No final do semestre, os estudantes deverão ser capazes de lidar com problemas de programação de média complexidade, utilizando uma linguagem de programação interpretada, por exemplo, Python. Mais especificamente, espera-se que os estudantes: - Sejam capazes de descrever os princípios, conceitos e fundamentos da programação. - Sejam capazes de projetar e implementar, numa linguagem de programação, uma solução executável (para um determinado problema) que utilize as bases e fundamentos da programação, cálculos básicos, estruturas condicionais, input / ouput, persistência e exceções. - Sejam capazes de escrever funções que recebam e retornem outras funções e determinar corretamente o escopo léxico de variáveis. - Sejam capazes de compreender a abstração de dados e usar tipos de dados adequados a determinado problema. - Sejam capazes de escrever e documentar programas de acordo com os princípios de software comuns e as melhores práticas. - Sejam capazes de aplicar técnicas de teste de software apropriadas e avaliar a qualidade de um software.

Programa

Breve introdução aos fundamentos da programação, programação de computadores e linguagens de programação, seguida de uma discussão aprofundada dos seguintes conceitos de programação: - Variáveis: identificadores, operadores de atribuição, identificadores recomendáveis e palavras reservadas. - Tipos de dados I: strings, lists, and arrays; objectos mutáveis e não mutáveis. - Tipos de dados II: tuples, dictionaries, and objects. - Condicionais: if, elif, else e operadores lógicos. - Funções: argumentos, número variável de argumentos, funções como argumentos, escopo léxico, funções anónimas, recursão. - Bibliotecas e módulos. - Input e Output: leitura de dados a partir do teclado, escrita de dados para no ecrã, leitura/escrita de dados de e para ficheiro - Programação orientada a objetos: classes, herança, asserções e exceções. - Teste e depuração de software; documentação. - Análise e manipulação de dados: leitura de dados, estruturas de dados e visualização de dados com recurso a gráficos.

Métodos de ensino e avaliação

O contínuo envolvimento dos estudantes nesta unidade curricular é promovido pelo estudo e pela discussão dos vários tópicos lecionados semanalmente. Para fomentar a aprendizagem autónoma de cada estudante, são publicados semanalmente exercícios de programação para serem solucionados fora da aula e individualmente por cada estudante, e discutidos posteriormente na aula teórico-prática. Durante o semestre, os estudantes têm também que trabalhar em projetos de programação onde se espera que apliquem a maioria dos conceitos apresentados nas aulas teóricas. As aulas teóricas são utilizadas para expor os conceitos e aspetos fundamentais da programação, utilizando a linguagem de programação Python. Sempre que possível, os conceitos são formalmente expostos juntamente com a apresentação e discussão de exemplos reais e/ou introduzidos no contexto dos projetos dos estudantes. As aulas teórico-práticas são usadas para ajudar os estudantes a entender os tópicos expostos em cada aula teórica e para resolver os exercícios de programação publicados semanalmente. A avaliação de cada estudante é baseada em dois testes de escolha múltipla e/ou resposta aberta (20%) e em dois projetos de programação (80%).

Disciplinas Execução

2020/2021 - 1º semestre

2019/2020 - 1 Semestre

2018/2019 - 1 Semestre

2017/2018 - 1 Semestre