1 / 24

Apresentação da Cadeira

Apresentação da Cadeira. 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

nikki
Download Presentation

Apresentação da Cadeira

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Apresentação da Cadeira

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

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

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

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

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

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

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

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

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

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

  12. Super computador IBM BlueGene/P o computador mais rápido do mundo (Março de 2009) Argonne Leadership Computing Facility, USA Alguma Dúvida ?

  13. Introdução à Linguagem CK&R: Capitulo 1

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

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

  16. hello, world #include <stdio.h> main() { printf("hello, world\n"); }

  17. hello, world #include <stdio.h> main() { printf("hello, world\n"); } • Biblioteca de funções de entrada/saída

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

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

  20. hello, world #include <stdio.h> main() { printf("hello, world\n"); } • Instruções associadas à função entre chavetas

  21. 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 ;

  22. 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 • \ttab • \bbackspace • \" aspas • \\ barra

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

  24. Dennis Ritchie e Ken Thompson a programarem um computador Digital PDP-11, utilizando dois terminais Teletype 33 Alguma Dúvida ?

More Related