Conhecimentos de Base Recomendados
Conhecimentos base de uma Linguagem de programação.
Métodos de Ensino
Nas aulas teóricas, a metodologia de ensino predominante é o método expositivo, complementado pela análise de exemplos ilustrativos. As aulas laboratoriais permitem a consolidação dos conhecimentos teóricos adquiridos ao longo do semestre através da resolução orientada de problemas propostos. Existirá ainda uma componente de projeto que será desenvolvida no final do semestre.
As aulas laboratoriais realizam-se nos Laboratórios de Apoio à Informática onde os aluno têm ao seu dispor computadores pessoais.
Resultados de Aprendizagem
Objectivos: 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:
-
Aplicar os conceitos e técnicas necessárias para desenvolver algoritmos eficientes na resolução de problemas propostos.
-
Desenvolver programas de forma estruturada em linguagem C, abordando problemas reais de maneira eficaz e organizada.
-
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.
-
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.
-
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.
-
Realizar apresentações de forma profissional, comunicando claramente ideias e resultados técnicos de maneira organizada.
-
Demonstrar capacidade na escrita e documentação de relatórios técnicos
-
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)
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.