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:
-
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)
Verónica Maria Marques do Carreiro Silva VasconcelosMé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.