Linguaggi Educativi

La storia dei linguaggi di programmazione ha visto delle fasi abbastanza definite. I primi linguaggi erano poco più di una tabella di codici mnemonici che permettevano al programmatore di spostare numeri da un registro all'altro del processore. Richiedevano una conoscenza molto precisa della struttura fisica del computer e del suo modo di funzionare. Erano complicati, e differivano da un computer all'altro.

Negli anni '60 qualcuno (tra cui Grace Hopper) cominciò a immaginare un modo diverso di interagire con i computer. Nacquero i primi linguaggi "di alto livello", che avevno con lo scopo di facilitare la vita ai programmatori, consentendogli di lavorare più in fretta e con meno errori.

Ma negli stessi anni nasceva anche un’idea apparentemente bizzarra: per accelerare la formazione delle migliaia di programmatori necessari per il mercato del lavoro informatico, non si sarebbe potutto creare un linguaggio che non fosse particolarmente veloce o efficiente, ma semplice, chiaro, adatto all’apprendimento della programmazione da parte di chi non ne sa niente?

E difatti nel giro di pochi anni nascono tre linguaggi dedicati all'educazione dei programmatori:

  • BASIC (Beginners' All-purpose Symbolic Instruction Code): è stato creato nel 1964 da John Kemeny e Thomas Kurtz per permettere la programmazione anche agli studenti che non provenissero dal percorso ingegneristico.
  • Pascal (dedicato al filosofo Blaise Pascal, inventore di una delle prime calcolatrici): è stato pensato nel 1968 da Wirth per insegnare la programmazione strutturata.
  • Logo (dal greco "parola"): è stato progettato nel 1967 da Papert, Feurzig e Salomon per fornire un ambiente di apprendimento della geometria.

Il BASIC è uno dei linguaggi più bistrattati della storia, perché almeno le prime versioni permettevano uno stile di programmazione molto libero, basatao sula famigerata istruzione GOTO [numero di riga], che portava velocemente a codici confusi e illegibili. E' stata anche coniata un'espressione per questi programmi: Spaghetti Code.

Eppure c'è stato un periodo in cui ogni personal computer (all'epoca, "home computer") aveva una versione di BASIC preinstallata, addirittura nell'hardware della macchina. In seguito, sono nate versioni di BASIC strutturate, addirittura ad oggetti. Insomma, il BASIC non è ancora morto.

Il Pascal è stato per anni il linguaggio educativo per eccllenza nelle scuole e nelle università. Basato sulle idee esposte nel libro di Wirth "Algorithms + Data Structures = Programs", Pascal separa chiaramente dati e algoritmi e "obbliga" il programamtore a immaginare un codice in maniera ordinata, evitando gli aggrovigliamenti tipici del BASIC della prim'ora. Chiaramente questo approccio è odiato dai "veri programmatori" che vogliono la completa libertà e sono insofferenti per ogni costrizione. Questo tipo di programmatori preferivano, e preferiscono, usare il linguaggio C.

Il terzo linguaggio ha una particolarità: non è dedicato agli adulti, anche se giovani, ma ai bambini. Qui l'idea non è più quella di consentire a qualcuno di accedere più velocemente alla professione di programmatore, ma quella di usare i computer come ambienti di apprendimento evoluti, in cui gli stessi bambini possono fare ipotesi e costruire programmi per verificarle.

E' un'idea rivoluzionaria non per l'informatica, ma per la pedagogia. Si basa anche su un passaggio epocale: il computer non è più una macchina seria, costosa, riservata ai centri di ricerca o alle azienda, ma è un elettrodomestico a basso prezzo che può entrare nelle case e nelle scuole.

Per renderlo ancora più accessibile, anche ai bambini più piccoli, si pensa addirittura di abbandonare le parole e utilizzare le immagini per costruire una programma: è il momento di Alice (1994), Scratch (2003), Snap! (2010).

Prossimo pannello:  Pascal



Versione: 02/02/2022 - 08:59:47

Parole: 313

Pannelli

Linguaggi                   
Linguaggi di programmazione 
Nomi dei linguaggi          
Caratteri e linguaggi       
Famiglie                    
Traduzione                  
COBOL                       
Lisp                        
APL                         
Perl                        
Javascript                  
Python                      
PHP                         
Ruby                        
Linguaggi educativi         
Pascal                      
Ada                         
Logo                        
Prolog                      
IEML                        
Linguaggi nazionali         
Linotte                     
Linguaggi esoterici         
Intercal                    
Brainfuck                   
Emmental                    
HQ9+                        
🔎