Objetivos / Competências
A disciplina de Programação de Computadores pretende fornecer aos alunos os conhecimentos necessários ao nível da programação, através da construção de algoritmos para a resolução de casos ou problemas práticos e da respetiva codificação na linguagem de programação C.
Em termos de competências, a disciplina visa:
• Capacitar os alunos para a utilização eficaz e esclarecida de um computador, na concretização de tarefas de acesso e gestão de recursos.
• Permitir ao aluno desenvolver os hábitos de disciplina e rigor em programação, através do estudo de metodologias de resolução de problemas e das boas práticas de construção de algoritmos.
• Aprender a linguagem de programação C, como forma de testar na prática os conhecimentos de programação apreendidos.
• Aplicar os conhecimentos na escrita de programas que permitam a resolução de tarefas de índole prática.
Conteúdos programáticos resumidos
1. Conceitos básicos - Introdução à programação e seus objetivos
2. Teoria de programação:
2.1 - Linguagens de programação
Classificação
Linguagens de baixo nível
Linguagens de alto nível
Software de tradução
2.2 - Metodologias de programação
Ciclos de desenvolvimento
Análise estruturada de problemas
Formulação do algoritmo
Formas de representação de algoritmos
Construção de algoritmos
Tipos de abordagens
Componentes fundamentais
Estruturas de controlo sequencial, de salto, condicional e repetitivas
Sub-programas
2.3 - Métodos de ordenação e pesquisa
3. Programação em linguagem C:
Estrutura de um programa
Tipos de variáveis
Funções e procedimentos
Instruções de entrada e saída
Estruturas de controlo
Ponteiros
Alocação dinâmica de memória
Tipos estruturados
Ficheiros
Metodologias de ensino e critérios de avaliação
Aulas teóricas: exploração orientada e participada dos conteúdos do programa de estudo, recorrendo a exposição com eventual projecção de experimentações e discussão.
Aulas teórica ou práticas e laboratoriais: experimentação apoiada de conteúdos expressos no programa de estudo, recorrendo a equipamento informático, pesquisa de informação, e discussão.
Orientação tutoria: complemento formativo, recorrendo a atividades que vão de encontro às dificuldades identificadas no processo educativo.
Utilização da plataforma de e-learning de modo a apoiar e promover formação participada e contínua.
Avaliação com base em 3 componentes:
- Mini testes (100%), a realizar até ao término das aulas e de acordo com o calendário de apresentações, min 50%
- Prova escrita/exames (100%), min 50%
Estas regras são válidas para todas as épocas de avaliação e aplicam-se a todos os estatutos de alunos.
Bibliografia resumida
Linguagem C, Damas Luís, H., FCA 1999.
•Manuel Baptista, Acetatos e textos de apoio às aulas, Departamento de Informática - ESTV.
•Programming language pragmatics, Michael L. Scoot. Elsevier, 2009. [004.43 SCO]
• Algorítmos e Estruturas de Dados Guimarães, A. M., Lages, N. A. C., Livros Técnicos e Científicos Editora S.A, 1985.
• Algorítmos e Estruturas de Dados Wirth, N., Prentice Hall, 1975.
• The C Programming Language - 2nd edition Kernighan, B. W., Ritchie, D. M., Prentice Hall, New Jersey, 1988. ISBN 0-13-110362-8; Cota 004.43 C KER PRO - 05705.
• C: A linguagem de programaçao Kernighan, B. W., Ritchie, D. M., Editora Campus, Rio de Janeiro,1986. ISBN 85-7001-410-4; Cota 004.43.C KER LIN - 01671.
• Data Structures Using C TenenBaum, A., M., Langsam, Y. Augenstein M. J., Prentice-Hall, New Jersey, 1990. ISBN 0-13-200411-9; Cota 004.43 C TEN DAT - 03353
• Algorithms and data structures Niklaus Wirth, Prentice Hall, 1986. ISBN 0-13-021999-1; Cota 004.2 WIR - 1577