-
Apresentação
Apresentação
Esta unidade curricular oferece uma extensa exploração da programação procedural usando a linguagem de programação C, abrangendo tópicos fundamentais e avançados. Os alunos obterão uma compreensão abrangente da história da programação C e dos seus benefícios, bem como aprenderão a criar e executar programas simples em C. O currículo concentra-se em conceitos essenciais, incluindo tipos de dados, variáveis, estruturas de controlo, funções e ponteiros, com oportunidades de experiência prática para reforçar o conhecimento. A unidade curricular também aborda tópicos avançados, como manipulação de ficheiros, alocação dinâmica de memória e estruturas de dados como listas e filas. Através de projetos de programação, os alunos desenvolverão experiência prática, com ênfase particular em obter uma compreensão completa da organização e operação da memória do computador como um recurso. No final do curso, os alunos serão capazes de criar programas eficientes que fazem uso eficaz da memória.
-
Disciplina do curso
Disciplina do curso
-
Grau | Semestres | ECTS
Grau | Semestres | ECTS
Licenciado | Semestral | 5
-
Ano | Natureza | Lingua
Ano | Natureza | Lingua
1 | Obrigatório | Português
-
Código
Código
ULHT2531-498
-
Pré-requisitos e co-requisitos
Pré-requisitos e co-requisitos
Não aplicável
-
Estágio Profissional
Estágio Profissional
Não
-
Conteúdos Programáticos
Conteúdos Programáticos
M0: Introdução: Visão geral, programação C, história, benefícios, configuração do ambiente, programa simples M1: Sintaxe Básica: Definições, tipos de dados, operadores, entrada/saída, estruturas de controlo M2: Estruturas de controle avançadas: Switch, break/continue, goto M3: Funções: definição/invocação, argumentos/valores de retorno, recursão M4: Matrizes e Strings: Definições, vectores de caracteres, strings, funções, matrizes 2D M5: Ponteiros: Definições, aritmética, pilha/heap, alocação dinâmica de memória M6: Ponteiros Avançados: Ponteiros para ponteiros/funções M7: Estruturas e Uniões: Definições, estruturas aninhadas, uniões M8: Entrada/saída de arquivo: visão geral, abertura/leitura/gravação de ficheiros, entrada/saída binária M9: Diretivas e Macros do Pré-processador: Definições, #define, #ifdef, #undef, macros com parâmetros M10: Listas Ligadas: Definições, criação/manipulação, exemplos, pilhas/filas
-
Objetivos
Objetivos
No final desta Unidade Curricular, os alunos deverão ser capazes de criar programas C eficientes e rápidos, tendo em consideração o uso correto da memória. Deverão adquirir uma compreensão sólida da abstração procedural e ser capazes de analisar e criar algoritmos simples usando essa abordagem. Além disso, os alunos devem entender os princípios por trás dos sistemas "coletores de lixo" em linguagens de alto nível, e da operação de bibliotecas de estruturas de dados. O curso visa fornecer aos alunos conhecimentos necessários para criar programas em C bem projetados, eficientes e robustos e para entender os princípios fundamentais que sustentam a operação das linguagens de programação modernas.
-
Metodologias de ensino e avaliação
Metodologias de ensino e avaliação
Estamos a implementar metodologias inovadoras para apoiar o processo de ensino-aprendizagem, utilizando Ferramentas de Avaliação Automática para promover a descoberta automática e aumentar a motivação dos alunos através de feedback contínuo.
-
Bibliografia principal
Bibliografia principal
Pereira, Alexandre - C e Algoritmos. 2a Ed., Lisboa, Portugal: Edições Sílabo, 2017. Kernighan, B. W. Ritchie D. M. - The C Programming Language. 2nd Ed: Prentice Hall Professional Technical Reference, 1988. ISBN0131103709
-
Horário de Atendimento
Horário de Atendimento
-
Mobilidade
Mobilidade
Não