Programação
Código
0104647Créditos ECTS
6Objetivos
A disciplina de Programação tem por objectivo dotar os alunos com os conceitos básicos de programação procedimental em linguagens de alto nível. Pretende-se que os alunos adquiram os conceitos indispensáveis à resolução algorítmica de problemas, com especial enfâse nos que surgem habitualmente na área da Engenharia, estruturação de aplicações, e abstracção procedimental e de dados.
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. Diferentes paradigmas de linguagens de programação. Desenvolvimento, compilação e depuração de um programa em C. Algoritmos de busca simples.
2. Tipos e estruturas de dados em C: Tipos elementares de dados. Conversão de tipos. Nomes e atribuição. Operadores e expressões. Dados estruturados em vetores. Operações com cadeias de caracteres. Introdução às instruções de entrada/saída. Estrutura de um programa. 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 em C. Registos ou structs. Apontadores. Apontadores para vetores e registos. Utilização do C para análise de dados.
3. Algoritmos e programação estruturada:. Controlo de fluxo de execução: instruções de seleção e repetição. Funções. Abstração procedimental. Recursão e iteração. Funções de ordem superior. Passagem de argumentos: valor e referência. Variáveis globais e locais. Visibilidade e tempo de vida de uma variável. Programação funcional. Desenho de algoritmos e escrita de código com pseudolinguagens na resolução de problemas. Introdução a algoritmos de ordenação. Utilização do IDE Visual Studio Code.
4. 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. As aulas de laboratório são preenchidas pela apresentação e discussão com os alunos da resolução de problemas e fichas de trabalho.
São igualmente utilizadas atividades de tutoria e de apoio à realização dos trabalhos em grupo. Nas aulas de laboratório utilizam-se métodos de ensino baseados em aprender fazendo.
Bibliografia
Principal:
Brian W Kernighan e Dennis M. Ritchie. The C Programming Language. 2nd ed. Prentice Hall Software Series. Prentice Hall, 2008.
Outras referências para consulta:
Marques de Sá. Fundamentos de Programação usando C. Tecnologias de Informação. FCA, 2004. BibUAc SD 004.42 S112f (UACSD) - 113537E1. - Sala 3 (Amarelo)
Robert Sedgewick. Algorithms in C, Parts 1-5 (Bundle) Fundamentals, Data Structures, Sorting, Searching, and Graph Algorithms. 3rd ed. Pearson Education Ltd., 2001.
Luís Damas. Linguagem C. Tecnologias de Informação. FCA, 1999.
Pedro Guerreiro. Elementos de Programação com C. 4.a ed. Tecnologias de Informação. FCA, 2006