Programação II


Uma disciplina do primeiro ano da licenciatura em Informática e Gestão de Empresas do ISCTE.

Ano lectivo de 1996/1997, segundo semestre.

Responsável: Eng. Manuel Menezes de Sequeira.


Avisos


Sumário


Dúvidas

O esclarecimento de dúvidas pode ser feito nos horários de dúvidas da cadeira, por correio electrónico, ou, quando o servidor do ISCTE tiver extensões Frontpage, através da Rede.


1. Objectivos

Consolidar conhecimentos já adquiridos na programação em linguagem C. Alargar conhecimentos no que respeita a estruturas de dados e modularização de programas.


2. Programa

Número de aulas: 12

  1. Funções e sua utilização. Sequência de execução dos programas. Utilidade das funções no desenvolvimento de algoritmos.
  2. Categoria, âmbito, classe ou permanência e validade de objectos e nomes em C. Funções recursivas.
  3. Modularização de programas. Vantagens. Ocultação de pormenores de implementação. Compilação separada e posterior ligação dos ficheiros objecto num único ficheiro executável.
  4. Estruturas e sua utilização. Definição de novos tipos.
  5. Ponteiros. Os conceitos duais de "endereço de" e "conteúdo de". Interpretação das definições de variáveis, funções e tipos em C. Inicialização de ponteiros. Passagem de argumentos por referência e sua utilidade.
  6. Relação entre ponteiros e matrizes em C. Algumas regras para interpretação de expressões envolvendo ponteiros e/ou matrizes em C.
  7. Ficheiros binários. Sua utilidade e manipulação. Revisão dos conceitos de canal e descritor de canal.
  8. Memória dinâmica. Afectação e desafectação de memória. Matrizes dinâmicas. Cuidados a ter.
  9. Construção de estruturas de dados complexas: listas. Conceito de lista. Duas implementações usando matrizes. Implementação usando memória dinâmica.
  10. Noções de pilha e fila como restrições da funcionalidade de uma lista. Árvores e árvores binárias. Árvores e recursividade.
  11. Algoritmos de ordenação e procura. Utilização de estruturas de dados complexas. Noções básicas de complexidade de algoritmos.
  12. Conceitos de programação e fases de desenvolvimento dum projecto. Exemplos.

3. Metodologia

Aulas teóricas onde são ministrados os conceitos teóricos básicos do programa. Aulas práticas com curtas revisões da matéria necessária para a aula e apresentação de pormenores relativos à linguagem C. Resolução de problemas e esclarecimento de dúvidas. Aulas de dúvidas. Os enunciados dos exercícios a realizar serão entregues na semana anterior às correspondentes aulas práticas.

Os sumários das aulas estão disponíveis apenas em versão electrónica.

Para efeitos das aulas práticas, as turmas estão divididas em dois turnos. Os alunos com número par pertencem ao turno A da respectiva turma, os alunos com número ímpar pertencem ao turno B.


4. Avaliação

A cadeira realiza-se apenas por avaliação contínua, não existindo, por isso, possibilidade de recurso a exame. A avaliação contínua consiste em dois trabalhos (o último com discussão oral), duas frequências, e problemas das aulas práticas.

4.1 Avaliação contínua

Trabalhos práticos:
Dois (2) trabalhos práticos obrigatórios a entregar respectivamente no meio e no final do semestre (datas a anunciar nos respectivos enunciados):
  1. Os trabalhos serão realizados em grupos de dois alunos no máximo.
  2. Os grupos serão formados pelos alunos, que deverão fazer a respectiva inscrição até à segunda semana de aulas.
  3. Os enunciados dos trabalhos serão entregues no início do semestre.
  4. Os trabalhos a entregar consistirão num relatório, nas listagens e numa disquete:
    1. O relatório deverá incluir a explicação das principais opções tomadas e um pequeno manual de utilização do programa. Concisão, clareza e sobriedade são valorizadas.
    2. As listagens (com páginas numeradas) deverão ser apensas ao relatório. Todo o código deverá ser comentado e cada módulo identificado claramente.
    3. A disquete conterá os módulos fonte (*.c) e o programa executável. A interface do programa com o utilizador deverá ser consistente e simples. Não se valorizam interfaces sofisticadas.
  5. A nota do primeiro trabalho (NT1) contribui com 20% para a nota final (N).
  6. A nota do segundo trabalho será atribuida apenas depois de discussão oral do mesmo.
  7. A nota do segundo trabalho (NT2) contribui com 50% para a nota final (N).
Frequências:
Duas (2) frequências a realizar em datas a combinar:
  1. Consistem numa parte teórica (escrita em folhas de resposta normalizadas) e, possivelmente, numa parte prática (a realizar em computador e entregue em disquete).
  2. A parte prática só é realizada depois de entregue a parte teórica.
  3. Não há recurso a consulta.
  4. A duração máxima das frequências é de hora e meia.
  5. A nota final das frequências (NF) é a média aritmética das notas de cada frequência e contribui com 30% para a nota final (N).
Problemas das aulas práticas:
No enunciado de (4) aulas práticas será indicado um dos exercícios para avaliação:
  1. Os exercícios indicados serão resolvidos individualmente até à aula prática respectiva e entregues em papel (devidamente identificado) nessa mesma aula.
  2. É obrigatório o aproveitamento em pelo menos um destes problemas.

Têm aproveitamento na cadeira os alunos que obtiverem aproveitamento em pelo menos um dos problemas das aulas práticas e cuja nota final, N = 0,2 NT1 + 0,5 NT2 + 0,3 NF, seja superior ou igual a 9,5 valores.

4.2 Observações

As revisões de provas realizam-se apenas nas condições indicadas no Regulamento sobre Avaliação de Conhecimentos do ISCTE, aplicando-se apenas às Frequências.


5. Docentes

Eng. Manuel Menezes de Sequeira, email: Manuel.Sequeira@iscte.pt
Aulas teóricas (IA1 e IA2) e práticas (IA2).
Sr. João Vasco Preto, email: a11903@students.iscte.pt
Aulas práticas (IA1).

Contactos formais (para marcação de provas ou sua revisão, etc.) com os docentes de Programação II serão realizados:

  1. oralmente durante as aulas ou os horários de dúvidas;
  2. por escrito, utilizando os cacifos (na recepção da entrada principal do ISCTE).

6. Horários

Horas Terça Quarta Quinta Sexta
8:00-9:30 Teórica IA2 (1E2)   Teórica IA1 (2E8)  
9:45-12:45 Prática IA1-B (1E14)
Prática IA2-B (1SE1)
  Prática IA1-A (0S5)
Prática IA2-A (0S6)
 
14:30-16:00 Dúvidas
Vasco Preto (0S8)
Dúvidas Eng. Sequeira
(gab. 9)
Dúvidas Eng. Sequeira
(gab. 9)
Dúvidas Vasco Preto (0S8)
16:00-16:45    

Na semana de 7 a 11 de Abril:

Horas Terça Quinta
8:00-9:30 Teórica IA2 (1E2) Teórica IA1 (2E8)
9:45-12:45 Prática IA1-B (1E14) Prática IA2-B (1SE1) Prática IA1-A (0S5)
14:30-16:00 Dúvidas Eng. Sequeira (gab.9) Dúvidas Vasco Preto (0S8)  
16:00-16:45  

Na semana de 14 a 18 de Abril:

Horas Segunda Terça Quinta Sexta
8:00-9:30   Teórica IA2 (1E2) Teórica IA1 (2E8)  
9:45-12:45   Prática IA1-B (1E14)
Prática IA2-B (1SE1)
Prática IA1-A (0S5)
Prática IA2-A (0S6)
 
14:30-16:00 Dúvidas Eng. Sequeira
(gab. 9)
Dúvidas Eng. Sequeira
(gab. 9)
Dúvidas
Vasco Preto (0S8)
Dúvidas Eng. Sequeira
(gab. 9)
Dúvidas Vasco Preto (0S8)
16:00-16:45 Prática IA2-A (0S5)    
16:45-19:00    

Nas semanas dos feriados que calham à quinta-feira, 1 de Maio e 29 de Maio:

Horas Segunda Terça Quarta
8:00-9:30   Teórica IA2 (1E2)  
9:45-12:45   Prática IA1-B (1E14)
Prática IA2-B (1SE1)
 
14:00-15:30 Dúvidas Vasco Preto (0S8) Teórica IA1 (2N8) Prática IA2-A (0S6)
15:30-16:00 Dúvidas Eng. Sequeira
(gab. 9)
 
16:00-17:00 Prática IA1-A (0S6)
17:00-19:00  
17:00-20:00    

Nas semanas de 23 a 27 de Junho e de 30 de Junho a 4 de Julho:

Horas Terça
9:00-13:30 Dúvidas Eng. Sequeira
(gab. 9 ou 0S5 a 0S8)
16:00-19:00 Dúvidas Vasco Preto
(0S8)

As aulas práticas da turma IA2 serão leccionadas pelo Eng. Manuel Menezes de Sequeira e as da turma IA1 serão leccionadas pelo Sr. João Vasco Preto.


7. Aulas, enunciados e resoluções

7.1 Algumas regras de programação em C

7.2 Exercícios das aulas práticas

7.3 Exames, frequências e trabalhos

7.4 Folhas das aulas teóricas e práticas

7.5 Notas sobre o Borland C++

7.6 Sumários das aulas


8. Bibliografia

8.1 Bibliografia básica

8.2 Outras publicações interessantes


9. Outras informações

Informação actualizada sobre a cadeira pode ser encontrada na Rede (http://www.iscte.pt/programacao/p2/).


Página concebida e mantida por Eng. Manuel Menezes de Sequeira (última actualização 1998/03/05)
Copyright © 1996-1998 ISCTE