Objetivos / Competências
Nesta unidade curricular pretende-se essencialmente que os alunos adquiram competências fundamentais relativas a:
(1) Metodologias e mecanismos abstratos de resolução de problemas;
(2) Especificações de algoritmos para resolução de problemas;
(3) Fases de elaboração de um programa escrito numa linguagem de alto nível;
(4) Aplicação de metodologia de programação em linguagem C.
Conteúdos programáticos resumidos
1. Teoria de programação - conceitos básicos:
a. Introdução à programação e seus objetivos;
b. Linguagens de programação;
c. Metodologia de programação;
d. Construção de um algoritmo.
2. Programação numa linguagem de alto nível - Linguagme C:
a. Estrutura de um programa em linguagem C;
b. Tipos de dados básicos;
c. Testes e condições - expressões e operadores. Precedências;
d. Estruturas de repetição;
e. Funções e procedimentos;
f. Subprogramas: conceito e utilidade;
g. Variáveis locais. Parâmetros;
h. Passagem de parâmetros de tipos básicos;
i. Tipos de dados estruturados: Vetores; Strings;
j. Apontadores: Declaração e inicialização; Aritmética de apontadores;
k. Passagem de parâmetros de tipos estruturados;
l. Estruturas;
m. Memória Dinâmica;
n. Ficheiros de texto e binários.
3. Recursividade:
a. Definição;
b. Análise da eficiência do processo recursivo;
c. Recursão direta e indireta.
Metodologias de ensino e critérios de avaliação
A aprendizagem dos alunos nesta disciplina far-se-á fundamentalmente através do estudo da matéria teórica e da análise e implementação de casos, baseados em situações reais e atuais, visando uma consolidação dos conceitos lecionados. Os alunos serão estimulados a trabalhar em grupo, através de instrumentos colaborativos, constituindo o seu empenhamento e a familiarização com esses meios um dos fatores relevantes na aprendizagem da cadeira. Avaliação: 1. A avaliação na época de frequência ou na época normal ou na época de recurso consiste em duas componentes: (a) 12 valores para um projeto (Parte I, Parte II e Parte III, cada a valer 4 valores) de grupo a entregar e defender (avaliação individual) até ao final das aulas e em datas a definir ao longo do semestre; e (b) 8 valores para a prova escrita individual. 2.A avaliação na época especial ou na época extraordinária ou em outra época consiste na realização de uma prova escrita que vale 20.
Bibliografia resumida
1. Material de apoio às aulas disponibilizados no Moodle
2. The C Programming Language – 2nd Edition, Kernighan B W, Ritchie D M, Prentice Hall, 1988. COTA: [004.43 C KER PRO]
3. Linguagem C (14a Edição), Damas L, FCA, 2006. COTA: [004.43C DAM- 13aed.]
4. Algorithms and data structures, Wirth N, Prentice Hall, 1986. COTA:[004.2 WIR]
5. C: a Linguagem de Programação, Kernighan B W, Ritchie D M, Editora Campus, Rio de Janeiro, 1986. COTA:[004.43.C KER LIN]
6. Data Structures Using C, Tenebaum A M, Langsam Y, Augenstein M J, Prentice Hall, 1990. COTA: [004.43 C TEN DAT]
7. Estruturas de Dados e Algoritmos em C, 3ª Edição Revista e Aumentada, António Adrego da Rocha, Edição: 2014, ISBN: 978-972-722-769-3
8. Elementos de Programação com C, 3.ª Edição Actualizada e Aumentada, Pedro Guerreiro, Edição: 2006, ISBN: 978-972-722-510-1