MC346 2s2019

1 Exames

  • RA 158336: 4.0
  • RA 139511: 4.5
  • RA 187386: 3.0

2 Horário

3a: das 16 as 18h CB 16

5a: das 16 as 18h CB 16

3 Notas

notas FINAIS - Há 5 alunos de exame. Esses alunos devem me mandar email ate dia 1 de dezembro confirmando que farão o exame.

O exame sera no dia 10/12 das 16 as 17:20. Serão 3 questões nas 3 linguagens como dos testes, com peso 4 para haskell e python e 2 para prolog. Como nos testes, as questões estão certas, meio certas ou erradas.

Desculpem pela demora em corrigir o projeto 3. Houve varios projetos que retornaram os 2 caminhos com menor tempo de transito nas 100 amostragens. NAO era isso que eu pedi. Eu pedi os 2 caminhos com os menores tempos de transito medio! Tinha que fazer a media para cada um dos caminhos mais curtos (em cada amostragem).

Os testes sao ./teste1.txt e ./teste2.txt. Para o teste1 a saida 'e algo como

a b c d
7.0

a e f d 
8.0

Para o teste 2:

a i j d
46.0

a b c d
54.0

Houve mudanças na nota do projeto de Prolog. Meu teste1 estava errado - eu achava que havia 2 intercessões mas só havia uma. Varias notas foram corrigidas.

As notas de haskell seguem mais ou menos a seguinte regra

  • 0.5 se ele deu resultados errados mas roda
  • 0.8 se vc usou o Data.List.Split
  • 0.3 se o programa nao roda - eu nao consegui descobrir os erros nos primeiros 2 programas que nao rodavam e desisti de procurar esses erros.

AS notas do projeto de Prolog seguem mais ou menos a seguinte regra

  • 0.3 se não roda
  • 0.4 se não passa nos 2 testes
  • 0.7 se não passa em um dos testes

Os testes são ./teste1 e ./teste2. Ha 2 intercessões no teste1 e 1 no teste2

4 Projetos

  • Projeto Haskell versão 2 - com data de entrega e forma de entrega, ainda sem arquivos de testes
  • Projeto prolog versão 1 - para dia 15/10, meia noite.
  • projeto python versão 1 - para o dia 7/11 - o projeto de Python NAO pode usar nenhuma biblioteca que nao a padrao (e numpy se voce quiser). No use bibliotecas que implemente um heap, por exemplo. vc pode implementar as estruturas do Dykstra usando dicionarios, por exemplo, e fazendo uma busca linear para achar o menor.

5 Descrição da disciplina

O objetivo da disciplina é apresentar ao aluno linguagens de programação que diferem de forma significativa das linguagens que ele já conhece, C e Java. Estas linguagens apresentam um conjunto de conceitos (também chamado de paradigmas) que vão expandir as formas com que um programador pode pensar na solução para um problema.

A disciplina abordará as seguintes linguagens de programação, nesta ordem:

  • Haskell, particularmente a implementação GHC 8.X para a parte de linguagens funcionais.
  • Prolog, mais especificamente a implementação SWI-Prolog, para a parte de linguagens lógicas.
  • Python versão 3.6 ou maior. Embora Python não seja por si só um exemplo de um novo paradigma de programação, ela nos permitirá discutir outros conceitos de programação em uma linguagem imperativa/tradicional. A disciplina assume que o aluno já sabe Python básico.

6 Avaliação

Haverá 12 ou mais testes. Cada teste tem apenas uma questão apenas e serão realizados em aula. Alguns testes serão em grupo, alguns individuais. Cada teste recebe as notas 0 se há mais de um erro ou um erro mais serio, 1 se há apenas um erro de menor impacto, e 2 se não há erros.

Os testes serão nas 3a feiras, as 16:00, em aula. Poderá haver algum teste numa 5a feira e poderá também acontecer de dois testes seguidos serem aplicados na 3a feria. Nesses casos excepcionais, os alunos serão avisados com pelo menos uma semana de antecedência.

Haverá ainda 3 projetos a serem entregues provavelmente via Susy ou via email. Os projetos terão notas entre 0 e 1, proporcional ao número de testes corretamente executados.

A nota final será a soma das 10 maiores notas dos testes e as notas dos 3 projetos com peso 4 dividido por 3.2

Não há substitutiva para os testes e os projetos não poderão ser entregues atrasados.

Não haverá lista de presença, mas os testes tem que ser feitos em aula.

Alunos que tiverem feito pelo menos 8 testes e tiverem uma nota final entre 2.5 e 4.9 poderão fazer o exame. O exame final será no horário da aula. Neste caso a nota final será a média da nota durante o curso e a nota do exame.

7 Datas importantes

  • exame: 10/12
  • não haverá aula nos dias 6/8 e 8/8 - os alunos devem participar do SECOM em vez de virem para a aula
  • ultimo dia para desistência de matricula nas disciplinas: 01/10
  • Congresso de iniciação cientifica da Unicamp 16 a 18/10 - com certeza, não haverá nenhum teste no dia 17/10.

8 Aulas

9 Referencias

9.1 Haskell

site como livro texto.

9.2 Prolog

9.3 Python