L'idea di base è questa: la pagina web propone il testo di un problema formulato sulla falsariga di un classico esercizio da libro di testo. I dati però vengono generati "casualmente" dal codice js. L'utente deve inserire la sua risposta in un campo e validarla. Il codice fornisce un feedback sulla correttezza della risposta. In una versione più elaborata, il codice può fornire dei suggerimenti o una traccia completa di svolgimento.
La generazione dei dati ovviamente non può essere totalmente casuale. È necessario riflettere attentamente sul modo in cui i dati vengono generati, per non dare origine a risultati assurdi.
Di seguito elenco alcuni esempi già realizzati (i problemi sono volutamente banali):
Osvaldo e le sue caramelle – 1: il problema dice quante caramelle Osvaldo ha nella tasca sinistra e in quella destra, e chiede di trovare quante sono le caramelle totali. I numeri di caramelle (e il totale) sono generati automaticamente. Un bottone genera un nuovo problema. Un bottone rivela la soluzione. Un bottone rivela il procedimento. Il jsfiddle si può visualizzare qui. Il risultato è questo.
Un bambino e le sue caramelle – 2: uguale al precedente (1), ma il testo è un po' arricchito: il nome del bambino viene scelto a caso in un insieme, e le concordanze singolare/plurale vengono controllate.
Un bambino e le sue caramelle – 3: uguale al precedente (2), ma viene aggiunto un campo e un bottone con cui l'utente può validare la propria risposta.
Di seguito elenco alcune idee:
Equilibrio termico senza passaggio di stato. Il codice propone un problema in cui due o più sostanze a temperature differenti vengono messe in contatto termico ed entrano in equilibrio termico, ma senza cambiare stato di aggregazione. L'utente deve trovare la temperatura di equilibrio del sistema o un altro parametro, dati i restanti parametri.
Equilibrio termico con passaggi di stato. Il codice propone un problema in cui due sostanze a temperature differenti vengono messe in contatto termico ed entrano in equilibrio termico. Almeno una delle due sostanze può cambiare stato di aggregazione nel processo. L'utente deve trovare la temperatura di equilibrio e la composizione del sistema. Un esempio funzionante di un codice di questo tipo si trova nella pagina relativa al modulo "temperatura e calore" che fa parte del programma della seconda. Chi vuole cimentarsi con questo problema può creare una copia di questo fiddle utilizzando il pulsante "fork" del proprio account di jsfiddle. Si tratta di una generalizzazione del problema 17 della scheda "WalkerB_C11P" (la bottega del fabbro). L'unica cosa che rimane da fare è scrivere la funzione "soluzione", nello spazio tra i commenti "IL CODICE INIZIA QUI" e "IL CODICE FINISCE QUI". Per testare la soluzione si può andare nella funzione "genera dati" e impostare la variabile "dbg" a 1. Questo fa sì che vengano utilizzati gli stessi dati del problema 17 del Walker. Bisogna poi ricordarsi di rimettere la variabile "dbg" a 0. Sulla base di questo codice si possono creare altri codici simili. Per fare questo bisogna modificare anche la parte di html, che contiene il testo del problema.