Licenciatura | Engenharia Informática

Programação I

Área Científica

Ciências Informáticas

Duração

Semestral

ECTS

6

Horas de Contacto Teórico Práticas

60h

OBJETIVOS DA APRENDIZAGEM

Para concluir com sucesso esta unidade curricular, os estudantes deverão demonstrar possuir os seguintes conhecimentos e capacidades:

  1. Conhecer as técnicas fundamentais de programação;
  2. Conhecer a estrutura da linguagem C;
  3. Saber compilar e executar programas em C;
  4. Saber escrever programas que utilizem as estruturas de decisão;
  5. Saber escrever programas que utilizem as estruturas de repetição;
  6. Saber utilizar funções de manipulação de strings;
  7. Saber escrever programas que usem arrays;
  8. Saber escrever programas que usem pointers e structures;
  9. Criar programas que acedam a ficheiros;
  10. Compreender os conceitos de classes e objetos e respetiva implementação em C++;
  11. Saber escrever, compilar executar programas em C++ utilizando classes e objetos.

PROGRAMA

1. Técnicas básicas de programação

1.1. Algoritmos e programas

1.2. Programas e linguagens

1.3. Tipos de dados

1.4. Identificadores, variáveis e constantes

1.5. Operadores e expressões

1.6. Strings

1.7. Estruturas de decisão e repetição

2. Apresentação da linguagem C

2.1. Programas e linguagens de programação

2.2. Contextualização da linguagem C perante os diferentes paradigmas de programação

2.3. Compiladores e interpretadores

2.4. Compilação e linkagem

2.5. O código fonte e o executável

2.6. Identificadores

2.7. Constantes e strings de caracteres

2.8. Operadores e funções

3. Variáveis, constantes e tipos básicos de dados

3.1. Declaração e inicialização de variáveis

3.2. Variáveis locais e globais

3.3. Constantes

4. Input e output

4.1. A função printf()

4.2. Data identifiers

4.3. A função scanf()

4.4. O operador addressof

5. Operadores

5.1. Operadores e expressões

5.2. Operadores aritméticos

5.3. Operadores lógicos

5.4. Operadores de comparação

5.5. Operadores de incremento e decremento

6. Estruturas de decisão e repetição

6.1. O statement if

6.2. O statement switch

6.3. O statement while

6.4. O statement for

7. Funções

7.1. Criar e aceder a funções

7.2. Argumentos de funções

7.3. O valor retornado pelas funções

7.4. Recursividade

8. Arrays

8.1. Declaração e inicialização de arrays

8.2. Aceder aos elementos de arrays

8.3. Arrays multidimensionais

9. Strings

9.1. Conceito de string

9.2. Inicializar strings de caracteres

9.3. Funções básicas de strings

10. Pointers

10.1. Aceder a variáveis através de endereços

10.2. Variáveis do tipo pointer

10.3. Programação de pointers para pointers

11. Structures

11.1. Conceito de Structures

11.2. Criar Structures

11.3. Aceder aos membros das Structures

12. Ficheiros

12.1. Ficheiros de Texto

12.2. Ficheiros Binários

13. Elementos da linguagem C++

13.1. Tipos de dados

13.2. Input do teclado

13.3. Output para o ecrã

14. Classes e objetos

14.1. Conceitos base

14.2. Data members e function members

14.3. Comunicação entre objectos

14.4. Class Constructors

14.5. Criar múltiplos objectos de uma classe

14.6. Class Destructor

14.7. Herança de classes

15. Desenvolvimento de uma Aplicação em C/C++

DEMONSTRAÇÃO DE COERÊNCIA ENTRE CONTEÚDOS PROGRAMÁTICOS E RESULTADOS DA APRENDIZAGEM

Para muitos alunos, esta cadeira pode constituir o primeiro contacto com uma linguagem de programação. Por esse motivo, antes de iniciar o estudo da linguagem C, são apresentados conceitos básicos de lógica de programação, usando uma linguagem de pseudocódigo.
Posteriormente, e sem prejuízo do rigor e do formalismo, a linguagem C é apresentada através de exemplos simples de programas de input e output. A apresentação dos vários tipos de statements é acompanhada de exemplos de progressiva complexidade. A linguagem C++ é usada para apresentar os conceitos de classes e objetos.

METODOLOGIA DE ENSINO E AVALIAÇÃO

Todas as aulas são de natureza teórico-prática. Estão previstas 60 horas de contato. O tempo total de trabalho do aluno corresponde a 162 horas. A apresentação da estrutura das linguagens C e C++ é feita com base em exemplos apresentados pelo professor e em pequenos exercícios propostos aos alunos, como forma de facilitar a compreensão das estruturas e dos statements da linguagem. Esta evolução gradual permitirá que os alunos possam acompanhar o desenvolvimento da matéria e criar programas de complexidade crescente.

De acordo com o Regulamento de Funcionamento do ISTEC a avaliação é efetuada através de um exame escrito individual e obrigatório. Na classificação final, poderão ser considerados elementos de avaliação contínua, tais como testes, trabalhos individuais ou em grupo, assim como a participação nas aulas presenciais e em recursos de aprendizagem proporcionados por sistemas de e-learning.

DEMONSTRAÇÃO DE COERÊNCIA ENTRE METODOLOGIAS DE ENSINO E RESULTADOS DE APRENDIZAGEM

Ao longo do processo de aprendizagem da unidade curricular, os alunos participam e resolvem um vasto e diversificado número de exemplos e exercícios que lhes permitem adquirir familiaridade com as linguagens. A elaboração de uma aplicação final em C/C++, usando todos as estruturas da linguagem, designadamente as estruturas de decisão e repetição, as funções, os arrays, os pointers, as structures, os ficheiros e ainda, as classes e os objetos, permite adquirir os conhecimentos e as capacidades definidas como objetivos da unidade curricular.

BIBLIOGRAFIA

Fundamental:
Deitel, Paul e Deitel, Harvey (2016). C How to Program – With an introduction to C++
ROCHA, António; Introdução à Programação Utilizando C, Editora FCA
RODRIGUES, Pimenta; Programação em C++, Editora FCA

Complementar:
CARRIÇO, Rui; Introdução à Programação usando linguagem C, Edições Chambel
CARRIÇO, Rui; Linguagem C++, Edições Chambel
DAMAS, Luís; Linguagem C, Editora FCA
RITCHIE, Dennis; KERNIGHAN, Brian; The C Programming Language, Prentice Hall
MEYERS, Scot; Effective Modern C++, O’Reily
ECKEL, Bruce; Using C++, MacGraw Hill
HENNEFELD, Julien; BAKER, Laura; BURCHARD, Charles. Using C++ An Introduction 2nd Edition,
Brooks/Cole
GUERREIRO, Pedro; Programação de Classes em C++, Editora FCA

INTERNET:
Acesso a publicações da especialidade, gratuitamente, através da rede SPRINGER:
https://link.springer.com/