Bake-off #3 - Escrita em Smartwatches

Disponível: 10 de Maio de 2021
 Entrega: até dia 4 de Junho às 23h59 através do Fénix
 Desafio: diminuir o tempo de escrita numa interface para smartwatches
 Resultado esperado: interface que minimize o tempo de escrita de texto num smartwatch com uma área de 4x4cm
 Avaliação: 0-20 valores; 10 valores pelo processo de desenho, 10 valores pelo tempo médio de palavras por minuto e respetiva taxa de sucesso
1. Desafio

O objetivo deste bake-off é desenhar e implementar uma técnica de escrita de texto para smartwatches. É disponibilizado um código-fonte em p5.js que:

  • A. Mostra um teclado navegacional 2D e simulação o dedo do utilizador (fat finger);
  • B. Indica qual a frase a transcrever (Target), o estado atual da frase do utilizador (Entered), e o botão de ACCEPT para confirmar este input (Figura 1);
  • C. Quantifica o desempenho do utilizador com base no tempo de escrita (i.e., palavras por minuto, words per minute, WPM), penalty (com base na diferença entre o Target e Entered), e WPM + penalty.

Para vencerem este bake-off têm de alterar o código-fonte fornecido de maneira a que os vossos utilizadores escrevam o texto Target o mais rapidamente possível (atenção a diferenças entre o Target e Entered acima de 5%).


Figura 1. A interface disponibilizada no código-fonte.


Têm também de calcular e imprimir uma métrica adicional: caracteres por segundo (CPS). Só precisam de ter em conta os caracteres presentes na frase final (Entered) que é submetida após o ACCEPT (incluindo "espaços").


2. Funcionamento

O bake-off é um desafio de design em aberto. É crucial que iniciem um processo iterativo de geração e teste de ideias desde o primeiro dia. A vossa solução tem de obedecer às seguintes regras:


  1. Não podem alterar o tamanho do ecrã (4x4cm) ou da área de input (4x3cm). Dito isto, podem alterar o layout das mesmas (moverem a área de input do fundo para o topo do ecrã, etc.) e incluir algum tipo de feedback na área não interativa (4x1cm);

  2. Não podem alterar as componentes descritas em B acima (layout, tamanho, etc.);

  3. Não podem alterar o desenho ou layout do braço e dedo do utilizador; 

  4. Não podem aceder à frase objetivo (Target) ou ao corpus de frases (phrases.txt). Dito isto, o vosso teclado não necessita incluir acentos dado as que frases estão todas em inglês (i.e., para além de letras necessitam apenas do "espaço" e algum modo de apagar o que foi escrito);

  5. Têm obrigatoriamente que usar o botão esquerdo do rato para indicar um toque / tap do dedo no ecrã do smartwatch. Têm também que manter o botão esquerdo do rato premido na simulação de um press no ecrã;

  6. O espaço de input e output do smartwatch é o seguinte: touch input (4x3cm) e output visual (4x4cm) e sonoro. Não podem criar interações impossíveis neste espaço, por exemplo: desenhar sobre o dedo ou braço do utilizador; incluírem o estado de hover; etc.;

  7. Podem implementar algoritmos de texto preditivo desde que: (i) tenhamos acesso à vossa implementação (i.e. não são permitidas soluções black-box); e (ii) que o vosso algoritmo não aceda ao phrases.txt (Regra 4). De igual modo, não podem treinar um modelo de machine learning com base nas iterações com os vossos participantes (overfitting ao phrases.txt). Recomendamos os recursos descritos abaixo em "4. Recursos e Ferramentas".  


3. Recomendações

Confirmem com o docente do laboratório ou através do Discord (#bake-off-3) se não tiverem a certeza se uma das vossas decisões de desenho quebra alguma das regras descritas acima.


Lembrem-se, o vosso objetivo de desenho é minimizar o tempo de escrita.  Vejam com atenção ambas as aulas sobre "Dispositivos Móveis" (23 de Março), "Interacção Computacional" (18 de Maio), e "Introdução de Texto" (20 de Maio). 


4. Recursos e Ferramentas

A vossa aplicação será desenvolvida através do p5.js, uma biblioteca JavaScript open-source para código criativo. Isto com base no código-base seguinte: https://editor.p5js.org/AugustoEst/sketches/HfEsb7pNh 


Para evitarmos problemas de acesso e hosting recomendamos o seguinte editor web: https://editor.p5js.org/. Dito isto, podem optar por fazer host da vossa aplicação em qualquer domínio (desde que seja acessível aos vossos participantes no dia do bake-off).



Para exercícios com texto preditivo recomendados os vários ficheiros de texto disponíveis em Natural Language Corpus Data: Beautiful Data:


  • count_1w.txt: 1/3 milhões das palavras mais frequentes (por ordem de frequência);

  • spell-errors.txt: coleção das correções mais frequentes (palavra correta: erro comum #1, erro comum #2)

  • etc.


5. Competição

O bake-off termina com uma competição que será realizada na aula de laboratório da semana de 31 de Maio. Cada aluno irá testar todos os projetos do seu turno. Estes testes serão realizados de forma remota, mas terão que terminar dentro do período de aula.


É da responsabilidade de cada grupo preparar a solução e o link de acesso à aplicação p5.js. A ordem de execução dos projetos por cada aluno será aleatória e da responsabilidade do docente do laboratório. Aos alunos pede-se que não interajam com os autores dos projetos durante o bake-off, que concluam as tarefas sem distrações e com máximo de concentração possível, e que usem um computador com rato por uma questão de consistência e justiça dos resultados.


Comportamentos desonestos (menos éticos) resultam na desqualificação da competição (cotação de 0.0v). Tempos médios de seleção dois desvios padrões acima ou abaixo da média serão descartados. Alunos com 3 ou mais avaliações descartadas serão penalizados com 0.5v. A mesma penalização será aplicada a alunos que não completem todas as avaliações dentro do tempo de aula.


Reportem algum projeto que quebre as regras definidas "2. Funcionamento" ao docente do laboratório. Finalmente, usem o vosso nome (primeiro e último) e grupo no Zoom.


6. Submissão

A submissão tem de ser feita até dia 4 de Junho às 23h59 via Fenix. Apenas um membro do grupo terá que realizar esta entrega; um documento com o seguinte formato IPM2011132646L04_Grupo42.txt e contendo apenas dois links:


  1. Link para a aplicação p5.js (File > Share > Edit). Se não optaram pelo editor web do p5.js a vossa submissão tem que incluir obrigatoriamente o vosso código-fonte (GitHub, etc.). 


  1. Link para vídeo YouTube (Unlisted) com a descrição do processo de desenho e solução final (com captions ou voice-over). A captação de vídeo com o telemóvel é suficiente já que a avaliação não contempla a qualidade de gravação ou edição. Por outro lado, o vídeo deve conter:

  • Ideias iniciais: quais foram? Um descrição rápida ou demonstração de esboços/protótipos é suficiente;

  • Três iterações sobre a aplicação. Cada iteração deve descrever:

    • As novas ideias e o porquê destas (com base nos resultados da iteração anterior)

    • O número e descrição dos participantes (pelo menos cinco por iteração)

    • A descrição da metodologia (testes sumativos se optaram por apenas comparar a performance dos vossos utilizadores; observação; debriefing, etc.)

    • O tempo médio de escrita (WPM + penalty)

  • Solução final: demonstrem a solução final e expliquem as vossas opções de desenho finais;

  • O vídeo não deve ultrapassar os 3 minutos.


Avaliação

  1. 10.0v, Processo de Desenho: demonstrado através da submissão vídeo;

  2. 10.0v, Tempo médio de escrita (WPM + penalty). Esta componente será calculada através dos resultados dos testes com utilizadores durante o bake-off. A métrica é calculada automaticamente pelo código-fonte fornecido e submetida para uma base de dados (Firebase). O tempo de escrita (com penalização) será associado à seguinte nota:

  • 0.0v: <= 3.0 palavra por minuto (WPM)

  • 2.0v: ]3.0 ; 5.25[

  • 4.0v: [5.25 ; 7.5[

  • 6.0v: [7.5 ; 9.75[ 

  • 8.0v: [9.75 ; 12.0[

  • 10.0v: >= 12.0 WPM

  1. 1.0v, Utilizador mais rápido (bónus). O utilizador mais rápido de cada turno de laboratório receberá uma bonificação de 1.0v na nota final do bake-off (WPM + penalty).

  2. -2.0v, Caracteres por segundo (CPS). Grupos que não calculem o CPS ou não os enviem para a nossa base de dados terão uma penalização de 2.0v. Erro neste cálculo acarreta uma penalização de 0.5v.


Caso não seja submetido o vídeo terão 0.0v nas primeiras duas componentes descritas acima (1. e 2.). Caso não submetam o projeto p5.js serão apenas avaliados na componente 1. (máximo 10.0v).


Grupos ou elementos que não compareçam na sessão de bake-off terão cotação de 0.0v na componente 2., com exceção de casos com falta justificada (por ex. declaração médica).


Finalmente, grupos que quebram as regras definidas acima em "2. Funcionamento" terão cotação de 0.0v na componente 2.