Introdução à Programação
Áreas Científicas |
Classificação |
Área Científica |
CNAEF |
Ciências informáticas |
Ocorrência: 2022/2023 - 1S
Ciclos de Estudo/Cursos
Docência - Responsabilidades
Língua de trabalho
Português
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.
Resultados de aprendizagem e competências
- 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.
Modo de trabalho
Presencial
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.
Bibliografia Obrigatória
Luís Damas; Linguagem C, FCA. ISBN: 9789727221561
Bibliografia Complementar
Dennis Ritchie e Brian W. Kernighan ; The C Programming Language, PEARSON EDUCATION . ISBN: 9780133086232
Métodos de ensino e atividades de aprendizagem
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.
Software
CodeBlocks
Tipo de avaliação
Avaliação distribuída com exame final
Componentes de Avaliação
Designação |
Peso (%) |
Teste |
50,00 |
Trabalho laboratorial |
50,00 |
Total: |
100,00 |
Componentes de Ocupação
Designação |
Tempo (Horas) |
Estudo autónomo |
102,00 |
Frequência das aulas |
60,00 |
Total: |
162,00 |
Obtenção de frequência
O estudante poderá optar por avaliação contínua ou exame.
Para obter aprovação à disciplina o estudante terá de ter:
Nota de Testes/Exame >=10 valores (em vinte);
Nota da Componente Prática >=10 valores (em vinte).
Se optar por avaliação contínua, o estudante realizará A) dois testes ao longo do semestre e B) componente prática.
A) Cada teste será dividido numa componente prática realizada em computador e uma outra realizada em papel. Os testes serão realizados no horário das aulas da disciplina e valem 50% da nota final da disciplina.
B) A componente prática da disciplina será composta por 4 laboratórios avaliados (5% da nota final/cada=20%) e por um projeto final (30%) que será avaliado em 2 fases ao longo do semestre.
Caso pretenda ser avaliado por exame, prestará prova em Época Normal e/ou Época de Recurso.
A) Exame (70%);
B) Projeto final (30%).
Fórmula de cálculo da classificação final
- Avaliação contínua:
- Laboratórios (20% da nota final):
- Laboratórios avaliados: 4. (5% cada). Grupos de 2. Não existe nota mínima.
- Testes: >= 10. (50% da nota final).
- T1 – Teste 1 vale 40% da notas dos testes (50% pratica + 50% escrita);
- T2 – Teste 2 vale 60% da notas dos testes (50% pratica + 50% escrita).
- Projeto: Nota Final de projeto >= 10 (30% da nota final).
- P1 >= 8;
- P2 >= 8;
- Final: (P1*1/3 + P2*2/3) >=10.
- Nota final de Laboratórios + Projeto (0..20) >=10.
- Avaliação exame:
- Projeto (30%).
-
- Exame (70%)