Ano Lectivo:

2004/2005

 

Disciplina:

Programação

 

Docente:

José Manuel Torres

 

Curso - Ano:

Engenharia Civil - 1º Ano

 

Regime:

Semestral – S2

 

Domínio:

Formação de Base

 

Horário Semanal:

Quatro Horas (2 aulas de 2 horas)

 

Enquadramento e Objectivos da Disciplina:

Estudo da noção de algoritmo, da sua forma de desenvolvimento e da forma de descrição de programas utilizando notações estruturadas. Introdução aos conceitos gerais da programação e às principais linguagens utilizadas actualmente. Introdução à Engenharia de Software e à metodologia da utilização de computadores na resolução de problemas.

Estudo de conceitos básicos de programação como estruturas de controlo, tipos e declarações de dados, operadores e expressões. Introdução a algumas estruturas de dados básicas, como sejam vectores, matrizes e cadeias de caracteres. Utilização de subrotinas (procedimentos) e funções como forma de estruturação de um programa.

Estudo de uma linguagem procedimental, gráfica e orientada aos eventos: Visual Basic. Introdução e estudo dos componentes e estrutura de um programa/projecto desenvolvido em Visual Basic.

 

Sistema de Avaliação:

1-      Avaliação Contínua:

Os conhecimentos do aluno serão certificados através da realização de dois testes escritos cujas datas serão marcadas pelo docente no início do semestre abrangendo no seu conjunto a totalidade do programa e tendo no total um peso de 70% na nota final. Os alunos terão ainda de realizar um trabalho prático em grupo a ser entregue até ao último dia de aulas e que terá um peso de 30% na nota final.

Cada falha a um momento da avaliação será convertida numa classificação zero para efeitos de cálculo da média final. Uma classificação média final inferior a 9,5 valores remete o aluno automaticamente para o exame de recurso (não estando prevista a realização de provas orais).

A assistência às aulas teóricas, teórico-práticas ou práticas não laboratoriais é obrigatória em, pelo menos, 40% das aulas dadas. Com excepção dos trabalhadores-estudantes, o não cumprimento das percentagens indicadas impede o aluno de ser avaliado à disciplina.

 

2-      Época de Recurso/Época especial:

O exame de recurso/época especial é uma prova que incide sobre a totalidade da matéria teórico-prática incluída no programa da disciplina. Esta prova destina-se aos alunos que não obtiveram aprovação na disciplina na época normal, ou alunos em regimes especiais.

Caso o aluno não tenha realizado trabalho prático à disciplina a nota final será dada pela nota do exame de recurso.

Caso o aluno tenha realizado trabalho prático à disciplina a nota final contará com a nota do trabalho de acordo com a fórmula usada na avaliação contínua desde que a nota do trabalho seja superior à nota do exame. Se a nota do trabalho for inferior à nota do exame a nota final do aluno será a nota obtida no exame de recurso.

 

 

Programa da Disciplina:

  1. Algoritmos e Computação

1.1  Noção de Algoritmo

1.2  Representação de Algoritmos

                                                  1.2.1     Linguagem auxiliar (pseudo-código)

                                                  1.2.2     Diagrama de fluxo (fluxograma)

                                                  1.2.3     Linguagem de programação

1.3  Prova e Teste de Algoritmos

                                                  1.3.1     Seguimento de algoritmos

                                                  1.3.2     Prova matemática de algoritmos

                                                  1.3.3     Teste de algoritmos

1.4  Programação "top-down" e "bottom-up"

1.5  Resolução de Problemas

                                                  1.5.1     Análise do Problema

                                                  1.5.2     Especificação do Programa

                                                  1.5.3     Codificação do Programa

                                                  1.5.4     Teste e Refinamento do Programa

                                                  1.5.5     Geração da Documentação

                                                  1.5.6     Manutenção do Programa

  1. Introdução à Programação

2.1  Conceitos de programa e software

2.2  Tipos de software

2.3  Linguagem máquina, assembly e de alto nível

2.4  Programação em linguagens de alto nível

                                                  2.4.1     Programa fonte

                                                  2.4.2     Compilador

                                                  2.4.3     Interpretador

                                                  2.4.4     Programa objecto

                                                  2.4.5     Bibliotecas

                                                  2.4.6     Programa executável

2.5  Principais linguagens de programação de alto nível e suas aplicações

  1. Estruturas de controlo

3.1  Instruções simples e estruturadas

3.2  Instruções condicionais

                                                  3.2.1     Instrução "if-then-else"

                                                  3.2.2     Instrução de selecção "case"

3.3  Instruções repetitivas

                                                  3.3.1     Instrução "while"

                                                  3.3.2     Instrução "until"

                                                  3.3.3     Instrução "for"

  1. Tipos e declarações de dados, expressões e funções intrínsecas

4.1  Tipos de dados

                                                  4.1.1     Tipos ordinais

                                                  4.1.2     Tipos reais

                                                  4.1.3     Tipo cadeia de caracteres

                                                  4.1.4     Definição e conversão de tipos

4.2  Declaração de constantes

4.3  Operadores e expressões

                                                  4.3.1     Definição de operando, operador e expressão

                                                  4.3.2     Operadores aritméticos

                                                  4.3.3     Operadores lógicos

                                                  4.3.4     Operadores booleanos

                                                  4.3.5     Operadores relacionais

                                                  4.3.6     Regras de precedência na avaliação de expressões

4.4  Funções intrínsecas

  1. Variáveis indexadas e cadeias de caracteres

5.1  Introdução à indexação

5.2  Conceitos de vector e matriz

5.3  Utilização de vectores

                                                  5.3.1     Pesquisa em vectores: linear e binária

                                                  5.3.2     Ordenação de vectores: por selecção, por fusão, "Buble sort", por partição e troca

5.4  Utilização de matrizes

5.5  Utilização de cadeias de caracteres

                                                  5.5.1     Conceito de cadeia de caracteres

                                                  5.5.2     Operações sobre cadeias de caracteres

  1. Subrotinas/Procedimentos e funções

6.1  Conceitos de procedimento e função

6.2  Variáveis locais vs globais

6.3  Subrotinas/Procedimentos

                                                  6.3.1     Introdução aos procedimentos

                                                  6.3.2     Tipos de parâmetros

                                                  6.3.3     Passagem de parâmetros por valor

                                                  6.3.4     Passagem de parâmetros por referência

6.4  Funções

                                                  6.4.1     Introdução às funções

                                                  6.4.2     Diferenças relativamente aos procedimentos

                                                  6.4.3     Parâmetros de entrada

                                                  6.4.4     Parâmetro de retorno

6.5  Introdução à recursividade

  1. Projectos de programação

7.1  Desenvolvimento de pequenos projectos de programação

 

Bibliografia Principal:

[1]            Schneider, David I. "An Introduction to Programming Using Visual Basic 6.0" Prentice Hall, 1999, ISBN: 0-13-936428-5 (biblioteca UFP).

[2]            Halvorson, Michael "Microsoft Visual Basic Professional 6.0 Step by Step" Microsoft Press, 1998 (biblioteca UFP).

 

Bibliografia Complementar:

[3]       Dodge, Stinson "Microsoft Excel version 2002 Inside Out" Microsoft Press, 2001, ISBN: 0-7356-1281-1 (biblioteca UFP).

[4]            Cormen, Leiserson, Rivest "Introduction to Algorithms " MIT-Press, 1990, ISBN: 0-262-03141-8 (biblioteca UFP).

 

Distribuição de Tempos Lectivos e da Bibliografia:

1.        Algoritmos e Computação.
Horas Previstas: 10h
Bibliografia: [1,4]

2.        Introdução à Programação.
Horas Previstas: 6h
Bibliografia: [1,4]

3.        Estruturas de controlo.
Horas Previstas: 6h
Bibliografia: [1,2]

4.        Tipos e declarações de dados, expressões e funções intrínsecas.
Horas Previstas: 6h
Bibliografia: [1,2]

5.        Variáveis indexadas e cadeias de caracteres
Horas Previstas: 6h
Bibliografia: [1,2]

6.        Subrotinas/Procedimentos e funções.

Horas Previstas: 6h
Bibliografia: [1,2]

7.        Projectos de programação.

Horas Previstas: 10h
Bibliografia: [1,2,3]

 

As restantes horas serão dedicadas a exercícios e revisões para avaliação.

 

Horário de Atendimento ao Aluno:

A designar

 

Resumo:

Algoritmos e Computação. Introdução à Programação. Estruturas de controlo. Tipos e declarações de dados, expressões e funções intrínsecas. Variáveis indexadas e cadeias de caracteres. Subrotinas/Procedimentos e funções.

 

Abstract:

Algorithms and Computation. Introduction to Programming. Control structures. Data types and their declaration, expressions and built-in functions. Indexed variables and strings. Subroutines/Procedures and functions.