IAED/AED Tagus, 2009/20010 Apresentação da Cadeira.

24
IAED/AED Tagus, 2009/20010 Apresentação da Cadeira

Transcript of IAED/AED Tagus, 2009/20010 Apresentação da Cadeira.

Page 1: IAED/AED Tagus, 2009/20010 Apresentação da Cadeira.

IAED/AED Tagus, 2009/20010

Apresentação da Cadeira

Page 2: IAED/AED Tagus, 2009/20010 Apresentação da Cadeira.

2 IAED/AED Tagus, 2009/20010

Docentes

• Aulas Teóricas– Vasco Manquinho (responsável)

• Aulas de Laboratório– Ana Matos– César Pimentel– Joel Sacramento– Joana Campos– Outro docente a definir...

• Aulas de Dúvidas– Todos os docentes têm um horário, que está afixado na página da

cadeira– A aula termina após 15 minutos sem comparência de alunos

Page 3: IAED/AED Tagus, 2009/20010 Apresentação da Cadeira.

3 IAED/AED Tagus, 2009/20010

Carga Horária

• Aulas Teóricas: 2 aulas semanais de 1h30 cada– 1ª aula da semana

• 3ª feira, 8h00 – 9h30, A1

• 3ª feira, 12h00 – 13h30, A2

– 2ª aula da semana• 5ª feira, 8h30 – 10h00, A2

• 5ª feira, 11h30 – 13h00, A2

Page 4: IAED/AED Tagus, 2009/20010 Apresentação da Cadeira.

4 IAED/AED Tagus, 2009/20010

Carga Horária

• Aulas de Laboratório: 1 aula semanal de 1h30– 18 turnos de laboratório, 8 grupos por turno e 3 elementos por

grupo (será o mesmo grupo do projecto)– Inscrições a partir das 14h00 de amanhã no Fénix, no

Agrupamento “Laboratórios”– Ver FAQ na página da cadeira sobre a constituição de grupos

– Guia de laboratório disponibilizado na semana anterior para preparação da aula

Page 5: IAED/AED Tagus, 2009/20010 Apresentação da Cadeira.

5 IAED/AED Tagus, 2009/20010

Programa

• Introdução à linguagem de programação C• Introdução ao estudo da eficiência de algoritmos• Algoritmos de ordenação: inserção directa, selecção

directa, bubblesort, quicksort, shellsort, heapsort e radixsort

• Estruturas de dados: pilhas, filas de espera, filas de prioridade, amontoados, árvores e tabelas de dispersão

• Grafos: representação, pesquisa em largura e profundidade, àrvores abrangentes de menor custo, caminhos mais curtos de fonte única

Page 6: IAED/AED Tagus, 2009/20010 Apresentação da Cadeira.

6 IAED/AED Tagus, 2009/20010

Avaliação

• Componente Teórica (T): média dos 2 testes, com repescagem de um deles (só conta se melhorar); nota mínima de 8.0 / 20 na média dos testes– 1º Teste: 27 de Abril– 2º Teste: 14 de Junho– Repescagem: 09 de Julho

• Projecto (P): média de 3 entregas; sem nota mínima; nota de cada aluno ponderada pela discussão final– 1ª Entrega: 12 de Abril– 2ª Entrega: 03 de Maio– 3ª Entrega: 31 de Maio– Enunciados disponíveis 15 dias antes da data de entrega

Page 7: IAED/AED Tagus, 2009/20010 Apresentação da Cadeira.

7 IAED/AED Tagus, 2009/20010

Avaliação

• Avaliação Contínua (C): média de 3 exercícios realizados nas aulas de laboratório; sem nota mínima

• Nota Final (NF)– 50% Componente Teórica– 40% Projecto– 10% Avaliação Continua

• NF = 0.5 * T + 0.4 * P + 0.1 * C

NF (trabalhador estudante) = 0.55 * T + 0.45 * P

Page 8: IAED/AED Tagus, 2009/20010 Apresentação da Cadeira.

8 IAED/AED Tagus, 2009/20010

Avaliação

• Não serão tolerados quaisquer tipos de fraude em qualquer componente da avaliação– Exemplos:

• Obtenção do enunciado antes da prova

• Cópia de respostas em teste

• Cópias totais ou parciais de funções/projecto

• Fornecer código do projecto a outro grupo

• ...

• Comunicação da tentativa de fraude aos orgãos do IST• Penalizações serão as maiores possíveis de acordo

com o regulamento do IST

Page 9: IAED/AED Tagus, 2009/20010 Apresentação da Cadeira.

9 IAED/AED Tagus, 2009/20010

Bibliografia Recomendada

• Programação em C– B. Kernighan e D. Ritchie, The C Programming Language, 1988,

Prentice Hall

• Estruturas de Dados e Algoritmos de Ordenação– R. Sedgewick, Algorithms in C: Parts 1-4, 1998, Addison-Wesley

Publishing Company

• Grafos– T. Cormen, C. Leiserson, R. Rivest, C. Stein, Introduction to

Algorithms, 2001, McGraw Hill e MIT Press– Livro também recomendado em Análise e Síntese de Algoritmos

Page 10: IAED/AED Tagus, 2009/20010 Apresentação da Cadeira.

10 IAED/AED Tagus, 2009/20010

Bibliografia Adicional

• Programação em C– Luis Damas, Linguagem C, FCA – Editora Informática

Page 11: IAED/AED Tagus, 2009/20010 Apresentação da Cadeira.

11 IAED/AED Tagus, 2009/20010

Material de Apoio

• Teóricas: slides das aulas teóricas, afixados depois da aula ter decorrido

• Laboratórios: enunciados dos exercícios de laboratório para cada semana (normalmente afixados no final da semana anterior para preparação da aula)

• Avaliação: enunciados e resoluções de testes de anos anteriores

• Projecto: enunciados dos projectos, ficheiros de exemplo, etc.

• Secção “Material de Apoio” no site da cadeira

Page 12: IAED/AED Tagus, 2009/20010 Apresentação da Cadeira.

12 IAED/AED Tagus, 2009/20010

Super computador IBM BlueGene/Po computador mais rápido do mundo

(Março de 2009) Argonne Leadership Computing Facility, USA

Page 13: IAED/AED Tagus, 2009/20010 Apresentação da Cadeira.

IAED/AED Tagus, 2009/20010

Introdução à Linguagem C

K&R: Capitulo 1

Page 14: IAED/AED Tagus, 2009/20010 Apresentação da Cadeira.

14 IAED/AED Tagus, 2009/20010

Introdução

• Desenvolvida em 1972 por Dennis Ritchie, nos Bell Labs, para utilização no sistema operativo UNIX

• O standard ANSI C (ISO/IEC 9899:1990) foi adoptado pela ISO em 1990

• Linguagem de alto nível, mas que permite acesso de baixo nível a memória e dispositivos

• A maioria dos sistemas operativos actuais (Linux, Windows, MacOS, etc) continua a ser programado em C

• Influenciou o desenvolvimento de diversas linguagem como: Java, C++, C#, Perl, PHP, JavaScript, etc

Page 15: IAED/AED Tagus, 2009/20010 Apresentação da Cadeira.

15 IAED/AED Tagus, 2009/20010

Introdução

• Introdução rápida à linguagem C, utilizando exemplos:– Programa que escreve hello, world– Conversão de temperaturas– Cópia de ficheiros– Contagem de caracteres– Contagem de linhas– Contagem de palavras– Tabelas– Funções– Passagem por valor– Tabelas de caracteres– Variáveis externas

Page 16: IAED/AED Tagus, 2009/20010 Apresentação da Cadeira.

16 IAED/AED Tagus, 2009/20010

hello, world

#include <stdio.h>

main()

{

printf("hello, world\n");

}

Page 17: IAED/AED Tagus, 2009/20010 Apresentação da Cadeira.

17 IAED/AED Tagus, 2009/20010

hello, world

#include <stdio.h>

main()

{

printf("hello, world\n");

}

• Biblioteca de funções de entrada/saída

Page 18: IAED/AED Tagus, 2009/20010 Apresentação da Cadeira.

18 IAED/AED Tagus, 2009/20010

hello, world

#include <stdio.h>

main()

{

printf("hello, world\n");

}

• Função main• Nome de uma função pode ser qualquer• Todos os programas têm uma função main• Função main é a primeira a ser executada• Funções podem ser definidas em múltiplos ficheiros

Page 19: IAED/AED Tagus, 2009/20010 Apresentação da Cadeira.

19 IAED/AED Tagus, 2009/20010

hello, world

#include <stdio.h>

main()

{

printf("hello, world\n");

}

• Parâmetros formais da função• Comunicação do exterior com a função• Neste caso não existem parâmetros

Page 20: IAED/AED Tagus, 2009/20010 Apresentação da Cadeira.

20 IAED/AED Tagus, 2009/20010

hello, world

#include <stdio.h>

main()

{

printf("hello, world\n");

}

• Instruções associadas à função entre chavetas

Page 21: IAED/AED Tagus, 2009/20010 Apresentação da Cadeira.

21 IAED/AED Tagus, 2009/20010

hello, world

#include <stdio.h>

main()

{

printf("hello, world\n");

}

• Apenas uma instrução• Chamada à função printf• Parâmetros actuais da função printf colocados entre

parênteses• Instruções separadas por ;

Page 22: IAED/AED Tagus, 2009/20010 Apresentação da Cadeira.

22 IAED/AED Tagus, 2009/20010

hello, world

#include <stdio.h>

main()

{

printf("hello, world\n");

}

• Cadeia de caracteres entre aspas• Outros caracteres

– \n Sequência de caracteres que representa newline– \t tab– \b backspace– \" aspas– \\ barra

Page 23: IAED/AED Tagus, 2009/20010 Apresentação da Cadeira.

23 IAED/AED Tagus, 2009/20010

hello, world

#include <stdio.h>

main()

{

printf("hello, world\n");

}

• E agora vamos vêr se funciona ...

$ cc –o hello hello.c

$ ./hello

hello, world

Page 24: IAED/AED Tagus, 2009/20010 Apresentação da Cadeira.

24 IAED/AED Tagus, 2009/20010

Dennis Ritchie e Ken Thompsona programarem um computador

Digital PDP-11, utilizando dois terminais Teletype 33