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

19
Coding by Example Descrição dos Problemas Guilherme Lacerda UniRitter/Facensa/Wildtech/TJRS Daniel Wildt uMov.me/Wildtech

description

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

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

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

Coding by ExampleDescrição dos Problemas

Guilherme Lacerda

UniRitter/Facensa/Wildtech/TJRS

Daniel Wildt

uMov.me/Wildtech

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

Dinâmica1) 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

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

Com emoção…

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

Todo o código DEVE SER ESCRITOutilizando TDD1) Escrever um teste que falhe2) Escrever código mais simples que

passe no teste3) Refatorar

Regras para o Git Commit no Verde Só se pode fazer commit quandotodos os testes passarem

Regras

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

Regra

A cada X minutos, deve-se retroceder todo o código não feitoo commit

Cada vez que os testes passarem (Verde!), zerar o cronômetro

Se o cronômetro tocar nos X minutos, todo o código semcommit volta para trás

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

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)

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

10 minutos

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

Problema 11) Desenvolver um componente de software que implemente o

algoritmo de cifra de césar2) O componente deve receber uma String e criptografá-la. Deve ter

opção também para descriptografá-la3) Mais informações

1 201234567890123456789012345

Normal: ABCDEFGHIJKLMNOPQRSTUVWXYZCifrado: DEFGHIJKLMNOPQRSTUVWXYZABC

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

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”

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

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

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

Problema 2

4) Casos de teste“test” => “grfg”

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

Problema 31) 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á-la3) O ROT47 inclui em sua estrutura caracteres que vão do ASCII 33 (!)

até o 126 (~)

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

Problema 3

4) Casos de teste“test” => “E6DE”

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

Obrigado!

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

www.codingbyexample.org

[email protected]@dwildt

[email protected]@guilhermeslac

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

BACKUP

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

Problema 41) 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 cifrada4) Algebricamente, temos

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

Problema 4

6) Casos de teste“test”, chave “test” => “mikm”

5) Grelha de Vigenére deve serutilizada como tabela dereferência para a cifragem

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