Coding Dojo Rio: Introdução ao formato e objetivos do Dojo
1. 03/11/2008
Rodolfo Henrique Carvalho
Coding Dojo Rio
Introdução
Baseado nos slides de Danilo Sato groups.google.com/group/dojo-rio
2. agradecimentos
• Raphael Almeida
• CEFET-RJ
• Todas as pessoas que colobaram para
conseguirmos um espaço
• Todos os presentes
groups.google.com/group/dojo-rio
3. motivação
Programadores não
treinam!
Por que não?
groups.google.com/group/dojo-rio
4. origens
• Kata → Coding Dojo
• Definition: (http://codingdojo.org/)
A Coding Dojo is a meeting where a bunch of
coders get together to work on a programming
challenge. They are there to have fun and to
engage in deliberate practice in order to
improve their skills.
groups.google.com/group/dojo-rio
6. regras gerais
• Computador + Projetor
• Par + Platéia
• TDD (vermelho → verde → refatoração)
• Todos devem entender
• Sempre começa do zero
groups.google.com/group/dojo-rio
7. retrospectiva
• Ao final da sessão:
• O que aprendemos?
• O que gostamos?
• O que pode melhorar?
• Comentários?
groups.google.com/group/dojo-rio
8. formatos
• Kata
• Apresentação de
uma solução
• Todos devem
conseguir
reproduzir
• Interrupções
permitidas para tirar
dúvidas
groups.google.com/group/dojo-rio
9. formatos
• Randori
• Programação em pares
• Turnos “time-boxed”
• Após o turno (5-7 min.):
• O co-piloto vira piloto
• O piloto volta para a platéia
• Um novo co-piloto é convidado da platéia
• Comentários e críticas somente no verde
• Silêncio no vermelho
groups.google.com/group/dojo-rio
10. objetivos
• Praticar
• Aprender
• Ensinar
• Discutir com bases sobre código!
groups.google.com/group/dojo-rio
11. o que não faremos
• Correr para terminar o problema
• Resolver problemas “reais”
• Entrar em “flamewars” nas discussões
• Competir com outros participantes
• Deixar pessoas sem entender
groups.google.com/group/dojo-rio
13. sugestões de problemas
•Ler o valor do cheque
•Amigo Oculto
•Dama
groups.google.com/group/dojo-rio
14. Ler o valor do cheque
• Converter um valor monetário para o texto
correspondente
• Exemplo:
assertEquals(“quinze mil quinhentos e trinta e dois
reais e catorze centavos”,
str(Money(“15532.14”)))
groups.google.com/group/dojo-rio
15. Amigo Oculto
• Entrada: lista de nomes e emails
Luke Skywalker <luke@theforce.net>
Leia Skywalker <leia@therebellion.org>
Toula Portokalos <toula@manhunter.org>
Gus Portokalos <gus@weareallfruit.net>
Bruce Wayne <bruce@imbatman.com>
Virgil Brigman <virgil@rigworkersunion.org>
Lindsey Brigman <lindsey@iseealiens.net>
• Enviar um email para cada participante
informando qual o seu amigo oculto
• Restrição: o amigo oculto não pode ser da
mesma família
groups.google.com/group/dojo-rio
16. Dama
• O jogo de xadrez possui várias peças com
movimentos curiosos: uma delas é a dama,
que pode se mover qualquer quantidade de
casas na mesma linha, na mesma coluna, ou
em uma das duas diagonais, conforme
exemplifica a figura
• Dada a posição de uma dama em um
tabuleiro de xadrez vazio (ou seja, um
tabuleiro 8 × 8, com 64 casas), de quantos
movimentos, no mínimo, ela precisa para
groups.google.com/group/dojo-rio chegar em outra casa do tabuleiro?
17. Dama - entrada
• A entrada contém vários casos de teste. A primeira
e única linha de cada caso de teste contém quatro
inteiros X1, Y1 , X2 e Y2 (1 <= X1 , Y1 , X2 , Y2 <=
8). A dama começa na casa de coordenadas (X1 ,
Y1), e a casa de destino é a casa de coordenadas
(X2 , Y2). No tabuleiro, as colunas são numeradas
da esquerda para a direita de 1 a 8 e as linhas de
cima para baixo também de 1 a 8. As coordenadas
de uma casa na linha X e coluna Y são (X, Y).
• O final da entrada é indicado por uma linha
contendo quatro zeros.
groups.google.com/group/dojo-rio
18. Dama - saída
• Para cada caso de teste da entrada seu programa
deve imprimir uma unica linha na saída, contendo
um número inteiro, indicando o menor número de
movimentos necessários para a dama chegar em
sua casa de destino.
• Exemplo:
Entrada Saída
4462 1
3535 0
2
5543
0000
groups.google.com/group/dojo-rio
19. website, blog, repositório do Dojo Rio
• wordpress x blogspot x ???
• google code x github x ???
• ???
groups.google.com/group/dojo-rio
20. próximo encontro
• Quando e onde?
• Escolher linguagem e problema?
• Sugestões?
groups.google.com/group/dojo-rio