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

521 visualizações

Publicada em

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

0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
521
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
2
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no 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

×