Coding by Example
Descrição dos Problemas
Guilherme Lacerda
UniRitter/Facensa/Wildtech/TJRS
Daniel Wildt
uMov.me/Wildtech
Dinâmica
1) Formar grupos, com um líder
2) Apresentação do problema a ser trabalhado (5’)
3) Ciclos de (30’)
- Discutir co...
Com emoção…
Todo o código DEVE SER ESCRITO
utilizando TDD
1) Escrever um teste que falhe
2) Escrever código mais simples que
passe no...
Regra
 A cada X minutos, deve-se retroceder todo o código não feito
o commit
 Cada vez que os testes passarem (Verde!), ...
 git init (inicializar o diretório)
 git add . (adicionando arquivos)
 git commit –m “mensagem” (fazendo o commit - só ...
10 minutos
Problema 1
1) Desenvolver um componente de software que implemente o
algoritmo de cifra de césar
2) O componente deve rece...
Problema 1
4) O algoritmo é definido pela seguinte equação (E=texto cifrado;
X=deslocamento e N=texto puro)
5) Casos de te...
Problema 2
1) Ampliar o componente de software de criptografia, incluindo outro
algoritmo, o ROT13 (variação da cifra de c...
Problema 2
4) Casos de teste
“test” => “grfg”
Problema 3
1) Mantendo o componente de software de criptografia, inclua mais
outro algoritmo, o ROT47 (variação do ROT13)
...
Problema 3
4) Casos de teste
“test” => “E6DE”
Obrigado!
www.codingbyexample.org
dwildt@gmail.com
@dwildt
guilhermeslacerda@gmail.com
@guilhermeslac
BACKUP
Problema 4
1) Mantendo o componente de software de criptografia, inclua mais
outro algoritmo, a Cifra de Vigenére (variaçã...
Problema 4
6) Casos de teste
“test”, chave “test” => “mikm”
5) Grelha de Vigenére deve ser
utilizada como tabela de
referê...
CBSoft 2013 - Descrição dos Problemas (CbE)
Upcoming SlideShare
Loading in …5
×

CBSoft 2013 - Descrição dos Problemas (CbE)

512 views
287 views

Published on

Descrição dos problemas trabalhados no tutorial, na CBSoft 2013.

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
512
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
2
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

CBSoft 2013 - Descrição dos Problemas (CbE)

  1. 1. Coding by Example Descrição dos Problemas Guilherme Lacerda UniRitter/Facensa/Wildtech/TJRS Daniel Wildt uMov.me/Wildtech
  2. 2. Dinâmica 1) Formar grupos, com um líder 2) Apresentação do problema a ser trabalhado (5’) 3) Ciclos de (30’) - Discutir com o grupo as possibilidades de design/estratégias - Desenvolver o software - Alternar os pares 4) Retrospectiva (5’) 5) Voltar ao passo 2 6) Discussão em grande grupo da dinâmica 7) Fechamento
  3. 3. Com emoção…
  4. 4. Todo o código DEVE SER ESCRITO utilizando TDD 1) Escrever um teste que falhe 2) Escrever código mais simples que passe no teste 3) Refatorar Regras para o Git  Commit no Verde  Só se pode fazer commit quando todos os testes passarem Regras
  5. 5. Regra  A cada X minutos, deve-se retroceder todo o código não feito o commit  Cada vez que os testes passarem (Verde!), zerar o cronômetro  Se o cronômetro tocar nos X minutos, todo o código sem commit volta para trás
  6. 6.  git init (inicializar o diretório)  git add . (adicionando arquivos)  git commit –m “mensagem” (fazendo o commit - só no verde)  git reset –-hard HEAD~1 (reseta até o último commit)
  7. 7. 10 minutos
  8. 8. Problema 1 1) Desenvolver um componente de software que implemente o algoritmo de cifra de césar 2) O componente deve receber uma String e criptografá-la. Deve ter opção também para descriptografá-la 3) Mais informações 1 2 01234567890123456789012345 Normal: ABCDEFGHIJKLMNOPQRSTUVWXYZ Cifrado: DEFGHIJKLMNOPQRSTUVWXYZABC
  9. 9. Problema 1 4) O algoritmo é definido pela seguinte equação (E=texto cifrado; X=deslocamento e N=texto puro) 5) Casos de teste “test” => “whvw”
  10. 10. Problema 2 1) Ampliar o componente de software de criptografia, incluindo outro algoritmo, o ROT13 (variação da cifra de césar) 2) O componente deve receber uma String e criptografá-la. Deve ter opção também para descriptografá-la 3) Mais informações
  11. 11. Problema 2 4) Casos de teste “test” => “grfg”
  12. 12. Problema 3 1) Mantendo o componente de software de criptografia, inclua mais outro algoritmo, o ROT47 (variação do ROT13) 2) O componente deve receber uma String e criptografá-la. Deve ter opção também para descriptografá-la 3) O ROT47 inclui em sua estrutura caracteres que vão do ASCII 33 (!) até o 126 (~)
  13. 13. Problema 3 4) Casos de teste “test” => “E6DE”
  14. 14. Obrigado!
  15. 15. www.codingbyexample.org dwildt@gmail.com @dwildt guilhermeslacerda@gmail.com @guilhermeslac
  16. 16. BACKUP
  17. 17. Problema 4 1) Mantendo o componente de software de criptografia, inclua mais outro algoritmo, a Cifra de Vigenére (variação da cifra de césar, porém polialfabético) 2) O componente deve receber uma String e sua chave e criptografá-la. Deve ter opção também para descriptografá-la, baseada na chave 3) Passos - Deve-se remover os espaços da mensagem - Preencher o restante do tamanho da chave com as letras da palavra, até que fique do mesmo tamanho da mensagem - Para cada letra da mensagem (coluna), pegar a letra correspondente da chave (linha) - Verificar qual letra está na grelha de Vigenére, que será adicionada a mensagem cifrada 4) Algebricamente, temos
  18. 18. Problema 4 6) Casos de teste “test”, chave “test” => “mikm” 5) Grelha de Vigenére deve ser utilizada como tabela de referência para a cifragem

×