MCTA003-17 -- Análise de Algoritmos -- 2022.2


Atualizado em 04/06
Página do curso entra no ar.

Expediente

  • Professor: Aritanan Gruber
  • Moodle: AA22.2
  • Horário: Seg. 21–23h, Qua. 19–21h, na sala S-302.1
  • Atendimento: Seg. 17–18h30 na sala S-539.2

Ementa

Conceitos básicos: recorrências, medidas de complexidade (melhor caso, caso médio e pior caso). Técnicas gerais de projeto de algoritmos: divisão e conquista, método guloso e programação dinâmica. Classes de complexidade: P, NP e NP-completude.

Recomendação: Matemática Discreta, Algoritmos e Estruturas de Dados I

Avaliações e critérios

  • 2 provas presenciais ($P_1$ e $P_2$) com peso $4$ cada;
  • 1 prova substitutiva presencial para caso de perda de uma das provas;
  • 2 listas de exercícios ($L_1$ e $L_2$) com peso $1$ cada.
    (enunciados, datas de entrega e correções no Moodle)

Nota nominal: $$ N = (4\cdot P_1 + 4\cdot P_2 + L_1 + L_2) / 10 $$

Conceito nominal ($C_N$): reflete o seu desempenho frente ao material apresentado e às avaliações realizadas; obtido pelo encaixe de $N$ em um dos intervalos: $$-\infty < \mathbf{F} < 5.0 \leq \mathbf{D} \leq 6.0 < \mathbf{C} \leq 7.0 < \mathbf{B} \leq 8.5 < \mathbf{A} < \infty.$$

Normalização

Sejam $\mu$ e $\sigma$ a média e o desvio padrão das notas $N$ atribuídas a todos os alunos. Cada aluno obterá uma nota normalizada: $$M = (N-\mu)/\sigma.$$

Conceito normalizado ($C_M$): reflete o seu desempenho perante os seus colegas; obtido pelo encaixe de $M$ em um dos intervalos: $$-\infty < \mathbf{F} < 0 \leq \mathbf{D} < \frac{1}{4}\sigma \leq \mathbf{C} < \frac{1}{2}\sigma \leq \mathbf{B} < \sigma \leq \mathbf{A} < \infty.$$

Considerando-se a ordenação $\mathbf{A} > \mathbf{B} > \mathbf{C} > \mathbf{D} > \mathbf{F}$, seu conceito efetivo (final / pré-recuperação) será maior ou igual ao seu conceito nominal: $$C_F = \max\{C_N,C_M\}.$$

Recuperação

Caso seu conceito $C_F$ seja $\mathbf{D}$ ou $\mathbf{F}$, você tem direito a uma prova $P_R$ de recuperação – única e contempla toda a matéria do quadrimestre. Uma nova nota nominal $\overline{N}=(N+P_R)/2$ será utilizada para gerar um novo conceito (nominal) final pós-recuperação $\overline{C}_N$. Não haverá normalização na recuperação. Seu conceito final pós-recuperação pode ser menor que o pré-recuperação: uma vez feita, a recuperação é parte integrante da sua avaliação.

Bibliografia

Primária

  • [CLRS] T. Cormen, C. Leiserson, R. Rivest, C. Stein, Introduction to Algorithms, 3rd Ed., MIT University Press (2009) [é possível se virar com a 2a ed.]
    Versão em Português: Algoritmos: Teoria e Prática, 3a ed., Elsevier (2012)
    [Não confunda com a tradução da 2a edição pela Campus (2001), que tem baixa qualidade.]

Secundária

Requisitos

Lista de livros no assunto curada por Paulo Feofiloff.

Lista/Tentativa de tópicos por semana

Detalhes de cada tópico (coberto nas aulas) serão atualizados no Moodle ao longo do quadrimestre.

Aulas Datas Tópicos
A01 06/06 Expediente e Introdução: Projeto, Análise e Correção de Algoritmos
A02 08/06 Notação Assintótica I
A03 13/06 Notação Assintótica II
A04 15/06 Algoritmos Iterativos I
A05 20/06 Algoritmos Iterativos II
A06 22/06 Recursão, Divisão e Conquista, e Recorrências I
A07 27/06 Recursão, Divisão e Conquista, e Recorrências II
A08 29/06 Recursão, Divisão e Conquista, e Recorrências III
A09 04/07 Recursão, Divisão e Conquista, e Recorrências IV
A10 06/07 Análise Probabilística e Algoritmos Aleatorizados I
A11 11/07 Algoritmos Aleatorizados II; Limitante Inferior para Ordenação
A12 13/07 Prova I
A13 18/07 Análise Amortizada
A14 20/07 Programação Dinâmica I
A15 25/07 Programação Dinâmica II
A16 27/07 Programação Dinâmica III
A17 01/08 Algoritmos Gulosos I
A18 03/08 Algoritmos Gulosos II
A19 08/08 Algoritmos Gulosos III
A20 10/08 Complexidade Computacional I
A21 15/08 Complexidade Computacional II
A22 17/08 Complexidade Computacional III
A23 22/08 Prova II
A24 24/08 Prova Substitutiva

Estudando para esta disciplina

Este curso tem nível intermediário e contempla uma coleção de técnicas e problemas fundamentais na área. Alguns alunos fazem confusões e ficam confusos no início. O motivo é, em geral, a falta de familiaridade com formalismo matemático e raciocínio algorítmico.

  • Refaça os exemplos fornecidos em sala de aula e re-prove os resultados.
  • Preste atenção ao processo de solução e não foque somente no resultado final.
  • Assista ativamente às aulas; resolva os exercícios nelas propostos e os contidos nas listas.
  • Estude a bibliografia indicada, monte grupos de estudo, e faça um bom uso dos horários de atendimento.
  • Tenha sempre em mente que aprendizado é uma tarefa ativa; não fique somente assistindo.
  • Se ainda assim, sentir-se perdido, repita os passos acima. Mais cedo ou mais tarde, eles convergirão à compreensão.

Integridade acadêmica e transgressões

O Artigo 25 do Código de Ética da UFABC estabelece, à página 23: “Quanto aos trabalhos acadêmicos, é eticamente inaceitável que os discentes:

  • I - fraudem avaliações;
  • II - fabriquem ou falsifiquem dados;
  • III - plageiem ou não creditem devidamente autoria;
  • IV - aceitem autoria de material acadêmico sem participação na produção;
  • V - vendam ou cedam autoria de material acadêmico próprio a pessoas que não participaram da produção.”

Trabalhos (listas, provas, programas) suspeitos de cópia ou de outra representação fraudulenta acarretarão aos envolvidos conceitos $\mathbf{F}$ (falha) no curso. A atividade será reportada à Comissão Disciplinar Discente da universidade para que sejam tomadas todas as providências disciplinares cabíveis.

Avatar
Aritanan Gruber
Assistant Professor

“See, if y’all haven’t the same feeling for this, I really don’t give a damn. If you ain’t feeling it, then dammit this ain’t for you!"
(desconheço a autoria; agradeço a indicação)