Ficha Unidade Curricular:

Linguagens De Programa�‹o I

Docente:

Rui Silva Moreira

Grau AcadŽmico:

Doutor

Categoria Funcional:

Professor Associado

Curso:

Engenharia Inform‡tica

Ciclo De Estudos:

1¼ Ciclo

Ano Lectivo:

2015-2016

Semestre Curricular:

1¼ Semestre

N.¼ Total ECTS:

7

N.¼ ECTS Contacto:

3

Tipologia Das Aulas:

Te—rico-Pr‡tica (TP) e Pr‡tica-Laboratorial (PL)

 

 

 

 

 

 

 

 

 

 

 

 

1        Introdu�‹o

A linguagem C surgiu no inicio da dŽcada de 70 nos Bell Telephone Laboratories e foi utilizada como linguagem de desenvolvimento do sistema Unix. ƒ por isso considerada uma linguagem de sistema, com um ‰mbito de aplica�‹o alargado. Foi mais tarde normalizada pelo American National Standards Institute (ANSI) e Ž considerada actualmente uma linguagem genŽrica de ampla utiliza�‹o.

Esta unidade curricular pretende que os alunos consigam compreender e expressar-se algoritmicamente atravŽs da linguagem 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. de texto e bin‡rios), mecanismos vulgarmente utilizadas na modeliza�‹o e desenvolvimento de solu�›es concretas. 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.

2        Distribui�‹o das Horas de Trabalho

ECTS:

Presencial: 7

N‹o Presencial: 0

Total (Presencial + N‹o Presencial): 7

 

Tipologia:

(x) Forma�‹o Espec’fica

( ) Forma�‹o B‡sica

( ) Unidade Curricular de Op�‹o

( ) Projecto de Gradua�‹o

 

Parcela                 (Horas)

Te—rica                                                                     

Te—rico-Pr‡tica: 32

Pr‡tica                                                                      

Pr‡tica Laboratorial: 32

Ensino Cl’nico                                     

Semin‡rio                                             

Trabalho de Campo: 10

Est‡gio                                                                      

Orienta�‹o Tutorial: 10

Avalia�‹o:

 

Nota: 1 ECTS = 26 horas

3        Requisitos PrŽvios

Algoritmia e Programa�‹o

4        Compet�ncias / Resultados da Aprendizagem

Lista de compet�ncias a alcan�ar no final da unidade curricular de acordo com o formato dos Descritores de Dublin:

1.     Conhecimento e capacidade de compreens‹o:

1.1.  Dom’nio da sintaxe e da sem‰ntica da linguagem C

1.2.  Capacidades de abstrac�‹o e de racioc’nio na elabora�‹o de programas em C

1.3.  Dom’nio das tŽcnicas e mŽtodos de estrutura�‹o e desenvolvimento de aplica�›es e projectos em C

1.4.  Dom’nio da correcta utiliza�‹o de tipos de dados, operadores e express›es, estruturas de controlo, estrutura�‹o dos programas em fun�›es, vectores, estruturas de dados e apontadores

1.5.  Dom’nio da implementa�‹o de estruturas de dados lineares com recurso a apontadores (cf. pilhas, listas ligadas, etc.) e ficheiros (cf. de texto e bin‡rios)

2.     Aplica�‹o de conhecimentos e compreens‹o:

2.1.  Conhecimentos para utilizar/aplicar a linguagem C na modeliza�‹o e implementa�‹o de programas em C para problemas reais

2.2.  Conhecimentos para compreender e interpretar fluentemente diferentes tipos de programas em C

2.3.  Conhecimentos para utilizar/aplicar a linguagem C na implementa�‹o de estruturas de dados din‰micas

2.4.  Conhecimentos para utilizar/aplicar tipos estruturados e ficheiros na resolu�‹o de problemas reais

3.     Realiza�‹o de julgamento/tomada de decis›es:

3.1.  Capacidade para definir e escolher estruturas de dados alternativas

3.2.  Capacidade para definir e escolher a estrutura�‹o de programas

3.3.  Capacidade para definir e escolher solu�›es algor’tmicas adequadas

3.4.  Capacidade para definir e escolher solu�›es de armazenamento persistente de dados

4.     Comunica�‹o:

4.1.  Capacidade de descrever/explicar um programa ou fun�‹o

4.2.  Capacidade para estruturar e desenvolver programas em grupo

4.3.  Capacidades de apresenta�‹o e justifica�‹o de solu�›es desenvolvidas

5.     Compet�ncias de auto-aprendizagem:

5.1.  Capacidade/curiosidade para conhecer e aprofundar conhecimentos sobre a utiliza�‹o de linguagens de programa�‹o

5.2.  Capacidades de autonomia e de auto-disciplina para procurar solu�›es alternativas e ultrapassar autonomamente dificuldades inerentes ao desenvolvimento de programas

5        Conteœdos Program‡ticos

0.     Apresenta�‹o

0.1.   Enquadramento e Objectivos

0.2.   Metodologia e Sistema de Avalia�‹o

0.3.   Conteœdo Program‡tico e Bibliografia

1.     Introdu�‹o ˆ programa�‹o em C

1.1.   Ambiente de programa�‹o

1.1.1.     Plataforma de desenvolvimento (CodeBlocks)

1.1.2.     Cria�‹o de projectos

1.1.3.     Ciclo de desenvolvimento

1.1.4.     Execu�‹o de programas

1.2.   Conceitos b‡sicos em C

1.2.1.     Estrutura dos programas

1.2.2.     Entrada e sa’da standard de dados

1.3.   Vari‡veis e tipos de dados

1.3.1.     Tipos de dados primitivos

1.3.2.     Declara�‹o e atribui�‹o

1.3.3.     Operadores e express›es

1.4.   Estruturas de controlo b‡sicas

1.4.1.     Execu�‹o condicional (if-else; switch)

1.4.2.     Ciclos (for, while, do-while)

1.4.3.     Controlo da execu�‹o (break, continue)

2.     Estrutura�‹o dos programas em fun�›es

2.1.   Defini�‹o de fun�›es

2.2.   Passagem de par‰metros por valor

2.3.   Vari‡veis locais

2.4.   Valores de retorno

2.5.   Recursividade

3.     Vectores e Strings

3.1.   Declara�‹o e inicializa�‹o de vectores

3.2.   Passagem de vectores por par‰metro

3.3.   Defini�‹o de constantes e macros

3.4.   Cadeias de caracteres (Strings)

3.5.   Fun�›es de manipula�‹o de Strings

3.6.   Vectores multi-dimensionais

4.     Apontadores

4.1.   Declara�‹o e inicializa�‹o apontadores

4.2.   AritmŽtica de apontadores

4.3.   Apontadores e vectores (Arrays)

4.4.   Passagem de vectores para fun�›es

4.5.   Passagem de par‰metros por refer�ncia

4.6.   Apontadores para apontadores

5.     Estruturas de dados

5.1.   Declara�‹o de estruturas de dados (struct)

5.2.   Declara�‹o e inicializa�‹o de vari‡veis do tipo struct

5.3.   Declara�‹o de tipos de estruturas (typedef)

5.4.   Operadores sobre estruturas

5.5.   Passagem de estruturas como par‰metros de fun�›es

5.6.   Aloca�‹o/liberta�‹o din‰mica de mem—ria

6.     Apontadores e estruturas de dados din‰micas

6.1.   Estruturas com apontadores

6.2.   Implementa�‹o de pilhas (Stack) com listas ligadas

6.3.   Implementa�‹o de filas (Queue) com listas ligadas

6.4.   Algoritmos de ordena�‹o e pesquisa

7.     Ficheiros

7.1.   Entrada e sa’da de dados (streams)

7.2.   Ficheiros standard (stdin, stdout, stderr)

7.3.   Modos de abertura de ficheiros

7.4.   Ficheiros de texto

7.5.   Ficheiros bin‡rios

7.6.   Ficheiros de acesso aleat—rio

8.     Conceitos avan�ados

8.1.   Instru�›es ao prŽ-processador

8.2.   Vari‡veis de registo (register)

8.3.   Vari‡veis do tipo enum

8.4.   Vari‡veis do tipo union

8.5.   Apontadores para fun�›es

8.6.   Fun�›es e vari‡veis static

8.7.   Organiza�‹o de projectos em v‡rios ficheiros

6        Metodologia de Ensino-Aprendizagem e Execu�‹o de ECTS

Designa�‹o da unidade lectiva; Horas Contacto (HC) - (T+TP+P+L+TC+OT); Horas de Estudo Individual (HEI); ECTS; Bibliografia (B)

1. Apresenta�‹o; HC:1; HEI;ECTS;B:

2. Introdu�‹o ˆ programa�‹o em C; HC: 6; HEI: 8; ECTS: 0,5; B: [1], [2], [3]

3. Estrutura�‹o dos programas em fun�›es; HC: 6; HEI: 8; ECTS: 0,5; B: [1], [2], [3]

4. Vetores e Strings; HC: 8; HEI: 18; ECTS: 1; B: [1], [2], [3]            

5. Apontadores; HC: 8; HEI: 18; ECTS: 1; B: [1], [2], [3]

5. Estruturas de dados; HC: 10; HEI: 16; ECTS: 1; B: [1], [2], [3], [4], [5]

7. Apontadores e estruturas dados din‰micas; HC: 12; HEI: 26; ECTS: 1,5: B: [1], [2], [3], [4], [5]

8. Ficheiros; HC: 8; HEI: 18; ECTS: 1: B: [1], [2], [3]

9. Conceitos avan�ados; HC: 6; HEI: 8; ECTS: 0,5; B: [1], [2], [3]

 

TOTAL

Horas Contacto (TP+PL): 84

Horas Estudo Individual: 98

Horas Totais: 182

ECTS: 7

N¼ ECTS = N¼ horas/26

7        Sistema de Avalia�‹o

O sistema de avalia�‹o desta disciplina segue na generalidade o regulamento pedag—gico da UFP e define em espec’fico as seguintes regras de c‡lculo:

 

1 - Avalia�‹o cont’nua

A avalia�‹o compreende duas componentes: uma componente Te—rico-Pr‡tica (TP) e uma componente Pr‡tica-Laboratorial (PL). A classifica�‹o final da disciplina ser‡ calculada atravŽs da seguinte express‹o:

 

Nota final = 50% Nota Componente TP + 50% Nota Componente PL

 

Componente Te—rico-Pr‡tica (TP)

A componente TP realiza-se de forma cont’nua durante o semestre e inclui os seguintes elementos de avalia�‹o:

 

¥ Dois testes te—rico-pr‡ticos de avalia�‹o individual: incidem sobre os conhecimentos leccionados atŽ ao momento em que s‹o realizados. Um teste realiza-se a meio do semestre e o outro no fim do semestre em data a indicar. Os testes incluir‹o perguntas sobre a sintaxe e sem‰ntica da linguagem C, exerc’cios de interpreta�‹o ou escrita de programas ou instru�›es em C e a implementa�‹o de determinadas estruturas de dados e algoritmos utilizando a linguagem C.

 

A falta aos momentos de avalia�‹o ser‡ convertida numa nota 0 (zero) para efeitos de c‡lculo da classifica�‹o. A classifica�‹o obtida na componente TP ser‡ calculada atravŽs da seguinte express‹o:

 

Nota Componente TP = 50% 1¼ Teste + 50% 2¼ Teste

 

Componente Pr‡tica Laboratorial (PL)

A componente PL realiza-se de modo cont’nuo durante as aulas e atravŽs da realiza�‹o de projectos pr‡ticos realizados individualmente ou em grupo (m‡ximo 2 alunos), sobre um ou mais temas propostos durante o semestre. A avalia�‹o da componente PL inclui os seguintes elementos de avalia�‹o:

 

¥ Um teste pr‡tico de avalia�‹o individual: incide sobre os conhecimentos leccionados atŽ ao momento em que s‹o realizados. O teste realiza-se em data a indicar e incluir‡ exerc’cios de implementa�‹o de estruturas de dados e algoritmos utilizando a linguagem C.

 

¥ Projecto: no final do semestre (em data a especificar) os alunos dever‹o entregar um relat—rio com todas as estruturas de dados e as fun�›es C que implementam a totalidade do projecto proposto. Os alunos ter‹o que marcar presen�a em duas ou mais sess›es de discuss‹o/an‡lise dos trabalhos propostos durante as horas de atendimento para acompanhamento do projecto e/ou esclarecimento de dœvidas. Dever‹o fazer ainda, em sala de aula, uma defesa e demonstra�‹o das solu�›es desenvolvidas.

 

A falta aos momentos de avalia�‹o ser‡ convertida numa nota 0 (zero) para efeitos de c‡lculo da classifica�‹o. A classifica�‹o obtida na componente PL ser‡ calculada atravŽs da seguinte express‹o:

 

Nota Componente PL = 40% Teste + 60% Projecto.

 

O acesso ˆs Žpocas de exame, relativas apenas ˆ componente TP, faz-se de acordo com o regulamento pedag—gico. A componente PL n‹o pode ser efectuada por exame.

 

2 - Exames

Os exames ser‹o realizados de acordo com o regulamento pedag—gico da UFP nos per’odos previstos no cronograma e incidir‹o sobre a totalidade da matŽria inclu’da no programa da disciplina. O docente poder‡ solicitar o desenvolvimento de trabalhos com apresenta�‹o oral de modo a melhor aferir o n’vel de conhecimentos e compet�ncias alcan�adas pelos alunos. A classifica�‹o final do aluno ser‡ calculada utilizando a equa�‹o indicada acima.

8        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.

9        Recursos Did‡cticos

Computador Port‡til

CodeBlocks (http://www.codeblocks.org/)

10    Resumo

Introdu�‹o ˆ programa�‹o em C: ambiente de programa�‹o; estrutura�‹o dos programas; vari‡veis e tipos de dados primitivos; operadores e express›es; controlo do fluxo de execu�‹o. Estrutura�‹o dos programas em fun�›es: passagem de par‰metros por valor, vari‡veis locais e fun�›es recursivas. Vectores e Strings: declara�‹o e inicializa�‹o de vectores; passagem de vectores por par‰metro; fun�›es de manipula�‹o de Strings e vectores multi-dimensionais. Apontadores: declara�‹o e inicializa�‹o de apontadores; aritmŽtica de apontadores; apontadores e vectores; passagem de par‰metros por refer�ncia e apontadores para apontadores. Estruturas de dados: declara�‹o de tipos e estruturas de dados (struct); declara�‹o e inicializa�‹o de vari‡veis do tipo struct; passagem de estruturas como par‰metros de fun�›es; aloca�‹o/liberta�‹o din‰mica de mem—ria. Apontadores e estruturas de dados din‰micas: implementa�‹o de pilhas e filas com listas ligadas. Ficheiros: entrada e sa’da de dados e streams de ficheiros (stdin, stdout, stderr); ficheiros de texto e bin‡rios; Ficheiros sequenciais e de acesso aleat—rio. Conceitos avan�ados: instru�›es ao prŽ-processador; vari‡veis de registo, enumera�‹o e uni‹o; apontadores para fun�›es; fun�›es e vari‡veis est‡ticas.

11    Abstract

Introduction to C programming: programming environment, structuring programs; variables and primitive data types; operators and expressions; flow control. Structuring programs into functions: passing parameters by-value, local variables and recursive functions. Arrays and Strings: declaring and initializing arrays; passing arrays as parameters; functions for string manipulation and multi-dimensional arrays. Pointers: declaring and initializing pointers; pointer arithmetic; pointers and arrays; passing parameters by-reference and pointer to pointers. Data structures: declaring types and data structures; declaring and initializing variables of type struct; operators on structures; passing structures as functions parameters; dynamic memory allocation/deallocation. Pointers and dynamic data structures: implementing stacks and queues with linked lists. Files: I/O data streams; text and binary files; sequential and random access files. Advanced concepts: pre-processor instructions; variables of type register, enum and union; pointers to functions; static variables and functions.

 


 

12    ECTS

Course Title:

Linguagens de programa�‹o I / Programming languages I

Code

Language of Instruction

PT

Assessment Method

Avalia�‹o cont’nua

Continue evaluation

Level of Course

Licenciatura

Undergraduate

Number of Credits

 

Year of Studies

1¼ Ciclo, 1¼ ano

Name of Lecturer

Rui Moreira

Winter Semester     X

Spring Semester      ð

 

Total Hours:

175

Course Objectives:

Programa�‹o de estruturas de dados e algoritmos em C.

 

Programming da structures and algorithms in C.

Course Description:

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

 

1. Introducing to C programming

2. Structuring programs into functions

3. Vectors and strings

4. Pointers

5. Data structures

6. Pointers and dynamic data structures

7. Files

8. Advanced concepts

 

 

 

 

 

 

 

 

 

 

Obligatory Reading

[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.

Supplementary Reading

[4] J. Tremblay & P. Sorensen, Introduction to Data Structures with 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.

Method of Teaching

Aulas te—rica e pr‡ticas / Theoretical and practical classes

Prerequisites

Conhecimentos de estruturas de dados e algoritmia

Knowledge of data structures and algorithms

Assessment method

 

 

 

 

 

Exames & projectos / Exams & projects

Responsible person

Rui Moreira

e-mail: rmoreira@ufp.edu.pt

 

 

 


 

Modelo A3ES: LP1

 

1        Objetivos de Aprendizagem (conhecimentos, aptid›es e compet�ncias a desenvolver pelos estudantes) – 1000 caracteres

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.

Learning Goals (knowledge, skills and competences to be developed by students)

This course intents students may understand and algorithmically express themselves through the C programing language. Initially the basic concepts of the language are introduced (cf. data types, operators and expressions, control structures, structuring functions, vectors, structs, pointers and memory management, etc.) so that students can analyze, understand and develop programs in C. Thereafter, it is intended that students master the implementation of linear data structures using pointers (cf. stacks, linked lists, etc.) and files (cf. text and binary), as well as mechanisms commonly used in the modeling and development of practical and concrete C solutions. Students should be able to fluently understand any C program and make full use of the language for defining data structures and develop the algorithms needed to solve multiple programming problems.

2        Conteœdos Program‡ticos – 1000 caracteres

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

 

Program Content

1. Introducing to C programming

2. Structuring programs into functions

3. Vectors and strings

4. Pointers

5. Data structures

6. Pointers and dynamic data structures

7. Files

8. Advanced concepts

 

3        Demonstra�‹o da coer�ncia dos conteœdos program‡ticos com os objetivos de aprendizagem da unidade curricular – 1000 caracteres

 

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.

 

Demonstration of the consistency between the syllabus and the learning objectives of the course

 

The contents are consistent with the learning objectives since they addresses all the issues about the C programming language that must be mastered by the students at the end of the course. In particular it begins by addressing the fundamental concepts inherent to applicationÕs structure and data types used on C programs. Initially the study particularizes the manipulation of vectors and strings and afterwards addresses pointers as well as its application for passing parameters that reference out scope variables (passage by reference) and defining and manipulating dynamic data structures. All covered topics are exemplified with applications in several practical exercises. The learning objectives are therefore aligned with the themes addressed both at practical and theoretic-practical levels, and applied in various concrete examples both in the classroom and in homework assignments.

 

 

4        Metodologias de ensino (avalia�‹o inclu’da) – 1000 caracteres

 

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 em partes iguais a componente TP e PR. A componente TP Ž avaliada por dois exames realizados durante o semestre. A componente PR Ž avaliada pela realiza�‹o de um exame e pela implementa�‹o de um projeto pr‡tico cujos requisitos s‹o propostos durante o semestre.

Teaching methodologies (including evaluation)

This course is organized into theoretic-practical (TP) and practical (PR) classes. The teaching methodology used within the TP classes is based on the oral presentation of contents and immediate exemplification with concrete applications and exercises on the topics covered. In parallel, in the context of laboratory classes, students have the opportunity to apply and further develop exercises that complement the experience basis regarding the development and structuring of functions and programs in C. The assessment is continuous, covering in equal parts the TP and PR components. The TP component is assessed by two exams during the semester. The PR component is assessed through an exam and the implementation of a practical project whose requirements are proposed during the semester.

 

5        Demonstra�‹o da coer�ncia das metodologias de ensino com os objetivos de aprendizagem da unidade curricular – 3000 caracteres

 

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.

Demonstration of the consistency between the teaching methodologies with the learning objectives of the course

Teaching methodologies applied in this course seek to lead students to contact and master the most important concepts for the development of applications using the C programming language. We intend also that students develop practical skills in structuring applications and development of programs in C. The theoretic-practical classes and in particular the laboratory classes allow permanent contact with the structuring and implementation of applications mainly based on functions, thus facilitating the gradual progress in the development of applications in C. This experience and contact with specific and concrete practical contexts allows also to improve the knowledge and the application of the C language, thus being essential to increase the technical progress and programming skills of students.

 

6        Bibliografia de consulta/exist�ncia obrigat—ria – 1000 caracteres

[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.