2024

Programação I

Nome: Programação I
Cód.: INF13175L
6 ECTS
Duração: 15 semanas/156 horas
Área Científica: Informática

Língua(s) de lecionação: Português
Língua(s) de apoio tutorial: Português

Objetivos de Desenvolvimento Sustentável

Objetivos de Aprendizagem

No final desta unidade curricular os alunos deverão ser capazes de:
* aplicar o processo de desenvolvimento de um programa: compreender problema, conceber o algoritmo, implementar o algoritmo e testar o código
* escolher as estruturas de controlo mais adequadas, definindo quais as condições de seleção e repetição
* desenhar e implementar funções e passagem de parâmetros com o objetivo de simplificar a solução de grandes problemas e promover o conceito de reutilização de código
* compreender o conceito de abstração de dados e a utilização de arrays e estruturas
* implementar programas que utilizem ficheiros sequenciais (entrada e saída)

Conteúdos Programáticos

Noção de algoritmo e instrução
Processo de edição, compilação e debug
IDEs e pseudo-código
Noção de constante e variável
Aritmética e expressões
Tipos básicos: inteiro, real, booleano, char
Instrução e atribuição
Estruturas de decisão: comparação, alternativas múltiplas, alternativas aninhadas
Estruturas de repetição: while, for, valores sentinela, ciclos aninhados
Funções: parâmetros e valores de retorno
Âmbito de variáveis e reutilização de funções
Arrays de uma e duas dimensões
Estruturas
Ficheiros de acesso sequencial
Recursividade

Métodos de Ensino

Metodologias de ensino:
* Aulas teóricas com introdução de conceitos, resolução acompanhada de exercícios e esclarecimento de dúvidas.
* Aulas práticas laboratoriais com proposta de problemas que acompanham a matéria teórica e esclarecimento de dúvidas durante a sua resolução. Disponibilização de exercícios, de dificuldade gradual, cobrindo os tópicos ensinados, para os alunos praticarem a matéria.

Avaliação:
* teórica (65%-70%): (i) três frequências escritas e/ou exame final escrito
* prática (30%-35%): (ii) exercícios individuais e/ou de grupo ao longo do semestre (5%-10%) e (iii) desenvolvimento de um pequeno projeto (25-30%). Dependendo do projeto, o trabalho poderá ser dividido em duas fases com análise e recomendações de melhoramento após a primeira fase.

Avaliação

Avaliação contínua:
- frequências (70%)
- projeto (30%)

Avaliação final:
- exame final escrito (70%)
- projeto (30%)

Bibliografia

Programming: Logic and Design, Comprehensive, 9th Edition. Joyce Farrell. Cengage
Clean Code: A Handbook of Agile Software Craftsmanship. Robert C. Martin. Prentice Hall
The C programming language, Kernighan & Ritchie
Introdução à programação usando C, António Rocha

Slides disponibilizados na plataforma de eLearning.
Conjunto de exercícios das aulas práticas.