Introdução à Programação
-
Conhecimentos de Base Recomendados
-
-
Objetivos
- Desenvolver e melhorar a capacidade de raciocínio lógico e formal que permite analisar problemas complexos;
- Apresentar os fundamentos conceptuais e desenvolver as capacidades relacionadas com a programação de computadores:
- Compreensão dos princípios gerais de engenharia de software;
- Compreensão e valorização do papel central do Algoritmo;
- Aprender os fundamentos de sistemas digitais, bases numéricas econversões entre bases;
- Desenvolvimento do raciocínio lógico e algorítmico;
- Aprendizagem de uma linguagem de programação e sua aplicação na resolução de exercícios paradigmáticos.
- Compreensão dos conceitos e princípios básicos de funcionamento de um computador;
- Compreensão dos conceitos associados à representação de valores em diferentes bases numéricas e respetiva conversão;
- Capacidade de codificar (implementar) os algoritmos em linguagens de programação;
- Capacidade de implementar um projeto usando uma linguagem de programação.
-
Métodos de Ensino
A metodologia de ensino é essencialmente baseada em aulas teórico-práticas e laboratórios. Pretende-se que os alunos apliquem diretamente os conhecimentos que vão adquirindo e ao mesmo tempo estimulem a criatividade e o raciocínio com desafios reais. Adicionalmente, os alunos têm suporte extra-aulas, efetuado através da plataforma Moodle, Zoom, Teams e outras.
-
Estágio(s)
Não
-
Programa
1- Enquadramento da programação no contexto geral da informática
- Descrição básica de um computador;
- Operações básicas realizadas por um computador e sua ligação à programação;
- Em que consiste a programação de computadores;
- A programação e a resolução de problemas; Representação de Informação;
2- Linguagens de programação
- Conceitos de: linguagem natural, linguagem de programação e de linguagem máquina;
- Características e gerações de Linguagens de programação;
- Breve história da linguagem C e contexto histórico;
- Compilador vs interpretador;
- Fases de desenvolvimento de programas;
- Ciclo de vida de um programa informático;
3 – Algoritmos
- Conceito de Algoritmo; Pseudocódigo;
- Abordagem Top-down;
4 - Sistemas digitiais
- Representação de valores numérios nas bases decimal, octal, binária e hexadecimal;
- Conversão entre bases.
5 – Programação numa linguagem de alto nível: Linguagem C
Introdução
- Estrutura de um programa;
- Tipos de dados básicos;
- Operadores e Expressões;
Funções de entrada e saída
- printf, scanf, putchar, getchar, puts, gets;
Instruções condicionais
- if, switch, break, continue;
Ciclos
- while, do...while, for;
Funções e procedimentos
- Funções e procedimentos simples (ctype.h);
- Passagem de parâmetros para funções;
- void e tipos de retorno;
Arrays e Strings
- Funções e procedimentos sobre strings (string.h);
Apontadores
- Porquê o uso de apontadores;
- Aritmética de apontadores;
- Passagem de apontadores como argumento de funções;
Ficheiros
- Operações básicas sobre ficheiros: open, read, write, close;
- standard input, standard output, standard error;
- Implementação de pipes;
Tópicos avançados
- Registos;
- Memória dinâmica;
- Macros. -
Demonstração de conteúdos
-
-
Demonstração da metodologia
-
-
Docente(s) responsável(eis)
Luís Miguel Lopes de Oliveira Esteves - 1.º Semestre
-
Bibliografia
Dennis Ritchie e Brian W. Kernighan ; The C Programming Language, PEARSON EDUCATION . ISBN: 9780133086232
Luís Damas; Linguagem C, FCA. ISBN: 9789727221561
Detalhes do curso
-
Código
SEC07
-
Modo de Ensino
PRESENCIAL
-
ECTS
6.0
-
Duração
Semestral
-
Horas
60h Teórico-Práticas
