On Monday, September 9, 2013, enrico franchi wrote: > Alla fine dei conti io continuo a pensare che per insegnare la CS che > piace a me, il linguaggio giusto fosse scheme. Fine della fiera. >
Scusate se replico co un po' di ritardo e ritorno sulla questione ma c'ho riflettuto un po' e trovo questo punto di vista molto interessante!-) Devo dire che non avevo mai pensato alla possibilità di formare i neofiti utilizzando le armi della programmazione funzionale e, in sostanza, della ricorsione. Più ci penso e più mi convinco che sia un'ottima idea da diversi punti di vista: +) Lo studente è "costretto" ad imparare immediatamente i concetti di induzione, ricorsione e loro affinità/differenze. Una volta consolidate queste conoscenze, il passaggio all'iterazione, è immediato. Al contrario, invece, passare dall'iterazione alla ricorsione, come previsto nelle impostazioni didattiche dei corsi di programmazione "standard", rappresenta attualmente uno degli scogli principali per gli studenti. +) La spiegazione e la comprensione delle *strutture dati* ricorsive sarebbe immediata e forse capita *sul serio*. +) Allo stesso modo, è possibile introdurre nozioni sui tipi e sulle strutture. +) Concetti come la modularizzazione e l'organizzazione in funzioni del codice è built-in nel paradigma, con l'immediato effetto di intuire l'importanza dei concetti quali "applicazioni, relazioni e funzioni" studiate in parallelo in altri corsi come algebra/analisi (vedi, ad esempio le /type signature/ in Haskell). +) last, but not least: gli studenti avrebbero la possibilità di conoscere "bene" la programmazione funzionale, cosa che potrebbe non ripetersi nel corso dei loro studi (secondo me è follia!!. Io, ad esempio, l'ho studiata per fatti miei, anche a causa di un pessimo corso di linguaggi di programmazione... Vabeh..). -) Probabilmente la spiegazione e l'uso di alcune strutture dati sarebbe sacrificato, ma ci sarebbero il corso di ADS e OOP per colmare il gap, evitando a volte inutili overlap e ripetizioni. Questa i miei 2 cents "mattutini" sulla questione !-) -- Valerio
_______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python