Programação de Computadores

Conhecimentos de Base Recomendados

Conhecimentos base de uma Linguagem de programação.

Métodos de Ensino

Não há lugar à lecionação de aulas de qualquer tipologia.

 

Resultados de Aprendizagem

Objetivos: O objetivo principal desta unidade curricular é dotar os alunos das técnicas/ferramentas indispensáveis para resolver, escrever, efetuar o debug e testar, pequenas e médias aplicações utilizando a Linguagem de Programação C.

Competências:

  1. Aplicar os conceitos e técnicas necessárias para desenvolver algoritmos eficientes na resolução de problemas propostos.

  2. Desenvolver programas de forma estruturada em linguagem C, abordando problemas reais de maneira eficaz e organizada.

  3. Realizar debugging e testes de programas de forma sistemática, interpretando e analisando os resultados para garantir a correção e eficiência do código desenvolvido.

  4. Demonstrar compreensão das principais características e conceitos das linguagens orientadas a objetos, contribuindo para uma visão mais ampla e abrangente na resolução de problemas de programação.

  5. Contribuir ativamente para o trabalho em grupo, comunicando-se eficazmente, compartilhando ideias e conhecimentos, e colaborando de forma construtiva para alcançar os objetivos propostos.

  6. Realizar apresentações de forma profissional, comunicando claramente ideias e resultados técnicos de maneira organizada.

  7. Demonstrar capacidade na escrita e documentação de relatórios técnicos.

  8. Adotar práticas éticas na realização de trabalhos acadêmicos, evitando o plágio e referenciando adequadamente sites e autores, promovendo a integridade acadêmica e a honestidade intelectual.

Programa

1. Vetores (Arrays)

 – Revisão dos conceitos fundamentais de vetores e apontadores

 – Vetores e strings como argumentos de funções

 – Vetores de apontadores

– Vetores multidimensionais

– Vetores multidimensionais como argumentos de funções 

2. Gestão de Memória Dinâmica

 – Alocação de memória

 – Principais funções de alocação dinâmica de memória

– Libertação de memória 

3. Algoritmos de Ordenamento e Pesquisa

 – Ordenamento por Seleção

 – Ordenamento por Borbulhagem

 – Ordenamento por Inserção

 – Pesquisa Linear

 – Pesquisa Linear com Sentinela

 – Pesquisa Binária

4. Estruturas

 – Definição

 – Declaração e inicialização de estruturas

 – Regras de processamento de estruturas

 – Operações sobre estruturas

 – Estruturas hierárquicas

 – Definição de novos tipos

 – Vetores de estruturas

 – Funções e estruturas: parâmetros e retorno

 – Apontadores para estruturas

 – Uniões

 – Bit Fields

5. Ficheiros

 – Ficheiros de texto versus ficheiros binários

 – Streams (Fluxos de Comunicação)

 – Operações básicas sobre ficheiros

 – Ficheiros Standard

 – Acesso em modo de texto

 – Acesso em modo binário

 – Acesso direto e acesso sequencial

 – Inserir, alterar e apagar Elementos de um ficheiro

6. Estruturas de Dados Dinâmicas

 – Estruturas autorreferenciáveis

 – Tipos de estruturas de dados dinâmicas

 – Listas ligadas

 – Operações sobre listas ligadas.

7. Programas de Grandes Dimensões

 – Header Files

 – Divisão de um programa em vários ficheiros.

 8. Tópicos Vários

 – Tipos Enumerados

 – Operador Condicional ? :

 – Operador Vírgula

 – Macros 

 – Argumentos de um Programa

9. Introdução às Linguagens Orientadas a Objetos

 – Paradigmas de programação

 – Principais características das linguagens orientadas a objetos

 – Classes e Objetos

 – Análise de pequenos exemplos em C++

 

Docente(s) responsável(eis)

Verónica Maria Marques do Carreiro Silva Vasconcelos

Métodos de Avaliação

Hipótese #1

 - Se o aluno obteve o mínimo de 2,5 valores (em 5 valores) no projeto, noano letivo 2023/24.

 - Classificação Final (0-20) = Exame Escrito (0-15) + Projeto (0-5)

Hipótese #2

 - Exame escrito para 20 valores.

Regimes Especiais: Durante as duas primeiras semanas de aulas, devem ser expostos, por email, o regime especial e respectivo enquadramento. Será aplicada a lei/regulamento em vigor.

Caso o professor entenda necessário, a nota final será validada por um exame oral. 

 

 


    Estágio(s)

    NAO

    Bibliografia

    Bibliografia Recomendada:

    Vasconcelos, V., Marques, L. (2012). Linguagem C – Textos de apoio. Instituto Superior de Engenharia de Coimbra.

    Damas, L. (1999). Linguagem C. FCA – Editora de Informática.

    Rodrigues, P., Pereira, P. , Sousa, M. (1998).  Programação em C++ . FCA – Editora de Informática, 3ª Ed.

    Ritchie, D. M., Kernighan, B. W., & Lesk, M. E. (1988). The C programming language. Englewood Cliffs: Prentice Hall.

    Schildt, H. (2000). Teach Yourself C. McGraw-Hill, 4th Ed.

    King, K. N. (2008). C programming: a modern approach. WW Norton & Company.

    Vasconcelos, V. (2021). Apontamentos das aulas, folhas práticas, exercícios resolvidos e software de apoio. Coimbra: ISEC.