PAA2012: mudanças entre as edições

De Pontão Nós Digitais
Ir para navegaçãoIr para pesquisar
(freeze of 2012 course)
 
 
(Uma revisão intermediária pelo mesmo usuário não está sendo mostrada)
Linha 1: Linha 1:
Esta é a pagina principal de um curso de projeto de algoritmos ministrado em 2012 no [http://pt.wikipedia.org/wiki/IPRJ IPRJ]/[http://pt.wikipedia.org/wiki/IPRJ UERJ], de utilidade geral para a formacao de programadores de nivel intermediario e avancado.
#REDIRECT [[Projeto e Analise de Algoritmos 2012]]
[[Imagem:Grafo-cidades-rj-sp-ms.png|right|550px]]
== Informacoes gerais ==
* Instrutor: prof. [http://www.lems.brown.edu/~rfabbri Ricardo Fabbri], Ph.D.
* Periodo: 1o. Semestre de 2012, voltado ao 7o. periodo de Engenharia da Computacao
* Tercas e Quartas, 9:40-11:30am, sala 211 e Lab Inf 01
 
 
=== Pre-requisitos ===
* Sera assumido um primeiro curso em algoritmos e estruturas de dados, porem nao e' obrigatorio.
 
== Conteudo aproximado ==
* Enfase no projeto (design) de algoritmos
* Enfase em grafos
* Uso do C++ e' preferivel
* Enfase no uso do TopCoder para exercicios
* Algoritmos gulosos / greedy
* Programacao dinamica
* Fluxo em redes (Network flows)
 
== Recursos principais ==
* Grupo de discussao: [http://uerj.tk uerj.tk]
=== Bibliografia ===
* Livro principal: "Algorithm Design" - Jon Kleinberg & Eva Tardos (ver [http://uerj.tk uerj.tk]) http://www.aw-bc.com/info/kleinberg/assets/images/cover.jpg
** Trata-se do melhor livro para estudar para uma entrevista. O Autor desenvolveu ideias das mais famosas relacionados ao '''PageRank do Google''' [http://citeseer.ist.psu.edu/viewdoc/summary;jsessionid=F4971BF0251DAD6EBF655902AAD9BA17?doi=10.1.1.120.3875]
* Livro interessante com foco em algoritmos geometricos: [http://books.google.com.br/books?id=Ax50ccq_kFAC&dq=algorithmic+geometry&source=gbs_navlinks_s Algorithmic Geometry]
 
=== Top Coder ===
 
* Inicie em http://community.topcoder.com/tc
* Clique em "Register Now" ou "Login"
* Clique em '''O(n)''' no canto superior esquerdo para iniciar a Arena http://blog.theroyweb.com/wp-content/uploads/2009/06/topcoderalglink.png
* No ubuntu linux, abra o nautilus (navegador de arquivo) no diretorio onde foi baixado o ContestAppletProd.jnlp
* Clique no ContestApplestProd.jnlp com o botao direito do mouse, e selecione "abrir com Java Webstart" ou "Iced Tea"
** Caso nao tenha essa opcao, instale os pacotes iced-tea* usando o synaptic ou outro gerenciador de pacotes
* Faca o Login
* Selecione Practice Rooms -> SRMs  -> problemas Div 1. Os Div 2 sao mais dificeis e deixe-os para depois.
* Mais informacoes em [http://blog.theroyweb.com/topcoder-quickstart-tutorial Topcoder Quickstart Tutorial]
* Meu template C++ para o topcoder: http://hera.ethymos.com.br:1080/reacpad/p/paa
* Veja tambem os Editoriais, em que os melhores programadores explicam as solucoes de alguns SRM's e outras competicoes
** http://apps.topcoder.com/wiki/display/tc/Algorithm+Problem+Set+Analysis
 
=== Aulas - Slides ===
* [http://www.lems.brown.edu/~rfabbri/stuff/01-busca-em-grafos.odp busca em grafos - 26/mar - 4/apr] (atualizado em 8/apr)
* [http://www.lems.brown.edu/~rfabbri/stuff/02-greedy-etc.odp algoritmos greedy / gulosos]
* [http://www.lems.brown.edu/~rfabbri/stuff/03-analise-e-divide_and_conquer.odp analise e divide-and-conquer] (atualizado em 20/jun) - cai na P2
* [http://www.lems.brown.edu/~rfabbri/stuff/04-dynamic-programming.odp dynamic programming / programacao dinamica] (atualizado em 20-26/jun) - cai na P2
=== Provas ===
* P1: 22 de maio [http://www.lems.brown.edu/~rfabbri/stuff/prova-p1-PAA2012.pdf]
* P2: Quarta-feira dia 11 de julho
* Sub: Sexta-feira dia 13 de julho 10:30am - 12pm [http://www.lems.brown.edu/~rfabbri/stuff/prova-sub-PAA2012.pdf]
 
== Recursos adicionais ==
* [http://www.cs.princeton.edu/~wayne/kleinberg-tardos/ Slides de aula em Princeton]
* Site de material extra-oficial e troca p2p entre alunos: [http://uerj.tk uerj.tk]
* [[Lab Macambira]]: grupo de desenvolvedores de software livre e ajuda com Linux e atividades extra-curriculares de programacao.
** Confira a sala de bate papo no IRC #labmacambira (freenode) [http://labmacambira.sf.net] para discussao sobre software livre, linux, e afins.
** Para discussoes gerais, podemos criar nossa propria sala de bate-papo.
** [[Configuring Ubuntu for Programming]]
 
== Tarefas ==
'''Somente serao aceitos arquivos eletronicos no formato PDF ou outro formato aberto como .odt'''
 
As tarefas devem ser formatadas com notacao matematica adequada, preferencialmente em [[Latex]].
 
Somente serao aceitos arquivos eletronicos no formato PDF ou outro formato aberto como .odt
 
Quando a tarefa involver qualquer programacao, o aluno devera enviar o codigo fonte. O codigo junto com a documentacao devera estar dentro de um unico diretorio comprimido com .zip ou tar, com o nome do aluno, disciplina e data.
 
 
=== Tarefa 1 (em aula) ===
* Enunciado: flood fill algorithm
* Data: primeira aula, 14/mar/2012
* Alunos que entregaram
** Eduardo Neves Goulart
** Lucas Vieira Souza
** Izabela Bastos Noe
** Lucas da Silva Oliveira
** José Eduardo de A. Agres
** Dario Antonio Sanches
** Marcos Belchior
** Romulo Henrique
 
=== Tarefa 2 ===
* Resumir inicio cap 3 do livro de Kleinberg & Tardos, prestando atencao `as aplicacoes
* Digitar em [[Latex]] de preferencia
* Alunos que entregaram
** Marcos Belchior
 
 
=== Tarefa 3  ===
* Enunciado:  BFS pode ser implementado recursivamente? ficaria a implementação?
 
=== Tarefa 4 ===
* Enunciado: falar sobre lista de adjacência, matriz de adjacência, lista "direta", matriz de pixels (confirmar)
 
=== Tarefa 5 ===
* Enunciado: resumo do 4.1, 4.2 e 4.3 (confirmar)
 
=== Tarefa 6 (em aula) ===
* Enunciado: escovando bits e bytes
* Alunos que entregaram
** Jose Ayres
** Izabela Noe
** Lucas Vieira
** Dayany Cortes
** Eduardo Goulart
** Romulo Henrique
** Paulo Cabral
** Hamilton
** Lucas Oliveira
** Iwyson Thuller
 
=== Apresentacao  ===
* Conteudo: Agendamento de intervalos, algoritmos de cache, estrategias Greedy.
* Dayany
* Marcos Belchior
 
=== Projeto no Top Coder ===
 
* Criar um login do topcoder (anonimo, so voce sabe)
* Fazer 2 SRM's (a serem entregues no futuro). Documente sua solucao (em [[Latex]] de preferencia). Esses SRMs devem ser tais que nao ha' editorial a respeito no topcoder.
** Um dos SRMs devera ser resolvido em maior detalhe, inclusive com pesquisa sobre assuntos que possam ser relevantes
** Sugestoes para um trabalho bem-feito:
*** Comente as partes mais obscuras do editorial do seu SRM, se disponivel
*** Compare sua solucao com a solucao de outro participante mais experiente (um dos primeiros colocados do SRM)
**** Em que a solucao dele difere da sua? O que ele aparenta ter feito/usado?
*** Forneca desenhos, diagramas, fluxogramas explicando os conceitos e etapas do algoritmo
*** Forneca trechos de livros / pesquisa bibliografica de assuntos que mais te interessaram ou que mais foram uteis na solucao de cada problema.
 
==== Duplas p/ Trabalho ====
* Colocar aqui o nome dos integrantes e o SRM(s) escolhidos (isto pode ser alterado no futuro se desejado)
 
Lucas Oliveira e José Eduardo = SRMs 536 DIV 2 e 149 DIV 2
 
Iwyson e Romulo: SRM 262 DIV2 e 491 DIV2
 
Marcos Belchior e Izabela Bastos : SRM 535 DIV2 SRM 281 DIV2
 
Lucas Vieira e Dayany Espíndola = SRM 147 DIV1 e SRM 450 DIV1
 
Eduardo Neves e André Portes = ???
 
Hamilton e Paulo = SRM Div2 503 e SRM 512 Div2
 
== Criterio de Avaliacao ==
 
* Trabalhos: 30% da media (antes era 10%)
* O criterio final e simplificado ficou (favor avisar se precisar adicionar detalhes ou corrigir no caso de erro/discrepancia):
<small>
      M_p = (P1 + P2)/2 
      M = 0.7*M_p + 0.3*T (atualizado de 10% para 30% com acordo dos alunos), onde T é a nota dos trabalhos
      Se M >= 5, passa --> M
      Sub: repoe menor de P1, P2 (apenas se alguem faltou alguma prova ou quiser melhorar nota - mas quem entregar ira substituir)
      M_sub = media com sub
      Se M_sub >= 5, passou --> M_sub
 
      Adendo (em acordo com os alunos): a M_sub = M_f pois sera considerada a mesma prova e a prova final nao mas faz efeito real com trabalhos a 30%.  Quem for usar a prova como Sub ira substituir a nota independentemente do resultado.
</small>
 
* ''A prova final passa a nao ser mais obrigatoria.''
 
[[Category:IPRJ]] [[Category:Lab Macambira]]

Edição atual tal como às 13h15min de 20 de junho de 2013