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