Skip to topic | Skip to bottom
Home

InterPC16
InterPC16.ComputationalThinkingGamificator1.1 - 19 Apr 2016 - 16:15 - FabioVitalitopic end

Start of topic | Skip to actions

Il Deserto dei Barbari

Per chi ha voglia di programmare veramente

Un ambiente vero per imparare a programmare giocando, pensato per ragazzini di medie e superiori. Sulla falsariga di

Imparare a programmare non come attività bottom up ma top down:

  • Bug fix
  • Refactoring
  • Designing

Un ambientazione narrativa basata sul romanzo di Buzzati "Il deserto dei Tartari" più un gioco famosissimo degli anni novanta, Missile Command

Settings

Il giocatore è un giovane tenente appena uscito dalla scuola ufficiali, assegnato come primo incarico ad una postazione di difesa antimissile contro il Nemico. Scopo primario del giocatore è gestire il sistema antimissilistico individuando i missili in arrivo e lanciando loro contro dei missili difensivi. L'interfaccia è un'estensione di Missile Command, il classico gioco degli anni 80. Questo sistema antimissilistico però è lento, impreciso, fa errori, sgradevole da usare, ecc. Questo è dovuto a notevoli errori di programmazione del sistema creato molti anni fa in Javascript da programmatori ormai morti.

Quindi il compito secondario del tenente, (ma il vero obiettivo del gioco) è trovare questi errori e correggerli, via via riprogettando il sistema antimissilistico in modo da renderlo più preciso, più reattivo e, alla fine, anche automatico. In una chat room con il superiore (che è un personaggio sintetico) vengono forniti incarichi e suggerimenti d'azione. Ad intervalli irregolari si inserisce nella chat uno sconosciuto, un vecchio programmatore pazzo, che conosce da vicino il sistema e fornisce indicazioni e suggerimenti molto precisi e concreti su come risolvere un problema.

Il sistema

Il sistema è composto da

  • sensori che percepiscono gli attacchi da parte del nemico e tracciano la traiettoria dei missili in arrivo,
  • puntatori che muovono le torrette di difesa e sparano missili anti-missile,
  • una console in HTML5 che visualizza le informazioni dei sensori e permette all'utente di muovere le torrette e sparare.

Il gioco è gioco: fisico, interattivo, tradizionale.

Il gioco progressivamente si complica, ed è necessario introdurre armi, tecniche o strumenti nuovi. Per ottenerli, è necessario risolvere problemi. Questi problemi sono l'argomento della didattica. Tuttavia l'arma, la tecnica o lo strumento non sono il premio per una corretta soluzione di un problema didattico, ma sono IL RISULTATO della corretta soluzione del problema didattico.

Il gioco è narrativo e immersivo: c'è una storia, c'è una trama, ci sono personaggi che crescono risolvendo problemi, fanno progressi o carriera, affrontano sfide nuove che li portano a migliorare vivendo una storia. Il gioco quindi non è solo meccanica o solo punteggio.

Il procedimento di insegnamento prevede una sequenza:

  • Debugging: Il giocatore si trova davanti prima un sistema non funzionante, o impreciso, o con errori di logica, e dovrà migliorarlo identificando gli errori e fornendo una correzione al codice.
  • Refactoring: Successivamente dovrà fare i conti con codice funzionante, ma complesso, lento, farraginoso, ingestibile, e dovrà proporre modifiche che ne migliorino efficienza, manutenibilità, generalità, estetica.
  • Designing: Solo alla fine si troverà di fronte a documenti vuoti in cui programmare da zero la soluzione ad un problema non affrontato precedentemente. 

-- FabioVitali - 19 Apr 2016

  • Set ALLOWTOPICVIEW =
  • Set ALLOWTOPICCHANGE =

to top

You are here: InterPC16 > ProgettiDelCorso > ComputationalThinkingGamificato

to top

Copyright © Fabio Vitali 2019 Last update of ComputationalThinkingGamificato on 19 Apr 2016 - 16:15 by FabioVitali