Unidade Curricular:Código:
Linguagens de Programação I831LPR1
Ano:Nível:Curso:Créditos:
2LicenciaturaEngenharia Informática7 ects
Período Lectivo:Língua de Instrução:Nº Horas:
Primeiro SemestrePortuguês/Inglês91
Objectivos de Aprendizagem:
Esta unidade curricular pretende que os alunos consigam compreender e expressar-se algoritmicamente através da linguagem de programação C. Inicialmente os conceitos básicos da linguagem são introduzidos (cf. tipos de dados, operadores e expressões, estruturas de controlo, estruturação de funções, vectores, estruturas, apontadores e gestão de memória, etc.) de modo a que os alunos consigam analisar, compreender e desenvolver programas em C. Posteriormente, pretende-se que os alunos dominem a implementação de estruturas de dados lineares com recurso a apontadores (cf. pilhas, listas ligadas, etc.) e ficheiros (cf. texto e binários), bem como de mecanismos vulgarmente utilizadas na modelização e desenvolvimento de soluções concretas em C. Os alunos deverão ser capazes de compreender fluentemente qualquer programa em C e utilizar todas as potencialidades da linguagem para definir estruturas de dados e desenvolver os algoritmos necessários à resolução de múltiplos problemas de programação.
Conteúdos Programáticos:
1. Introdução à programação em C
2. Estruturação dos programas em funções
3. Vectores e Strings
4. Apontadores
5. Estruturas de dados
6. Apontadores e estruturas de dados dinâmicas
7. Ficheiros
8. Conceitos avançados
Demonstração da Coerência dos Conteúdos Programáticos com os Objectivos da Unidade Curricular:
Os conteúdos programáticos estão coerentes com os objectivos de aprendizagem na medida em que abordam todos os temas sobre a linguagem C que deverão ser dominados pelos alunos no final da unidade curricular. Em particular começa-se por abordar os conceitos fundamentais inerentes aos tipos de dados e estruturação de programas em C. Particulariza-se inicialmente o estudo na manipulação de vetores e strings e posteriormente abordam-se os apontadores bem como a sua aplicação na passagem de parâmetros por referência e na definição e manipulação de estruturas de dados dinâmicas. Todos os temas abordados são exemplificados com a aplicação em vários exercícios concretos. Os objectivos da aprendizagem estão portanto alinhados com os temas abordados tanto ao nível teórico-prático como prático, sendo aplicados em exemplos concretos variados tanto nas aulas como em trabalhos para casa.
Metodologias de Ensino (Avaliação Incluída):
Esta unidade curricular está organizada em aulas teórico-práticas (TP) e práticas (PR). A metodologia de ensino utilizada no âmbito das aulas TP baseia-se na exposição oral dos conteúdos programáticos e na sua imediata exemplificação em aplicações e exercícios concretos sobre os temas abordados. Paralelamente, no contexto das aulas práticas laboratoriais, os alunos têm oportunidade de aplicar e desenvolver mais exercícios que complementam a base de experiências com o desenvolvimento e estruturação de funções e programas em C. A avaliação é contínua, contemplando na componente TP duas frequências e na componente PL um projecto prático. As frequência têm um peso de 30% e 40% respectivamente. O projeto prático tem um peso de 30%. Para efeitos de cálculo da classificação final será necessário obter positiva a ambas as componentes individualmente (frequências TP e projecto PL).
Demonstração da Coerência das Metodologias de Ensino com os Objectivos de Aprendizagem da Unidade Curricular:
As metodologias de ensino aplicadas nesta unidade curricular procuram levar os alunos a contactar e dominar os conceitos mais importantes para o desenvolvimento de aplicações na linguagem de programação C. Procura-se ainda que os alunos desenvolvam competências práticas na estruturação de aplicações e desenvolvimento de programas em C. As aulas teórico-práticas e em particular as aulas práticas laboratoriais permitem um contato permanente com a implementação e estruturação de aplicações com base em funções, facilitando portanto o progresso gradual no desenvolvimento de aplicações em C. Esta experiência e contato com contextos práticos específicos e concretos permite ainda melhorar o conhecimento e aplicação da linguagem C, sendo essencial para aumentar o progresso técnico e as competências de programação dos estudantes.
Bibliografia:
[1] L. Damas, Linguagem C, 10ª Edição, FCA, 1999.
[2] M. Sá, Fundamentos de Programação usando C, FCA, 2004.
[3] B. Kernighan & D. Ritchie, The C Programming Language, Prentice-Hall International, 1988.
[4] J. Tremblay & P. Sorensen, Introduction to Data Structures Applications, McGraw-Hill, 1984.
[5] J. Vasconcelos & J. Carvalho, Algoritmia e Estruturas de Dados: Programação nas linguagens C e Java, Centro Atlântico, 2005.
Docente (* Responsável):
Christophe Soares (csoares@ufp.edu.pt)
Rui Silva Moreira (rmoreira@ufp.edu.pt)