Il giorno sab 27 ott 2018 alle ore 10:52 Enrico Nardelli < nardelli@mat.uniroma2.it> ha scritto:
Il 27/10/2018 01:54, Giacomo Tesio ha scritto:
I don’t think that everyone has to learn how to program—not everybody
has a talent for it.
Uno scriba, 5000 anni, fa avrebbe detto lo stesso della scrittura. Mi dispiace dissentire, Giacomo,
A me non dispiace affatto. Senza antitesi non è possibile iniziare a cercare una sintesi.
ma l'analogia scrittura-programmazione è solo un'analogia [...] che è pericoloso sostenere letteralmente.
Io invece credo che, mutatis mutandis, esista un parallelo incredibilmente utile fra l'informatica odierna e la scrittura nell'antico Egitto. In entrambi siamo di fronte a tecnologie primitive che diventano strumento di un potere egemone sul piano politico, economico, culturale e religioso. Entrambe sono affidate a professionisti di cui il resto della popolazione non comprende a pieno i misteri. Entrambe attengono alla comunicazione fra umani e la rivoluzionano.
Programmare è equivalente a dare ordini ad una persona
Proviamo in inglese: "Count from 1 to 10" Quanti modi diversi, tutti in inglese, puoi usare per ordinare la stessa cosa ad un computer? Solo in C ne puoi pensare una decina senza impegnarti. In Haskell? In Java? In Javascript? In Python? In Lisp? In Rust? In Bash? In PowerShell? In Perl? In Scratch? In Excel? Tutti linguaggi equivalenti eppure diversissimi. E ne esistono migliaia di altri: se non ricordo male, solo GHC compila 2^99 dialetti di Haskell diversi. Non fraintendermi questa varietà è bellissima, ma è una evidenza inequivocabile del fatto che procediamo alla cieca esplorando una seva smisurata di possibilità. E stiamo solo parlando di linguaggi di programmazione! Quante altri meccanismi possiamo rappresentare come calcoli in un computer ^senza muovere un singolo cavo"? La verità è che non lo sappiamo.
per svolgere un compito che può essere anche estremamente complesso, con la complicazione aggiuntiva ed essenziale che la persona può usare il suo bagaglio di esperienza e la sua intelligenza per risolvere casi non- o mal-specificati.
Beh... anche con il rischio di fraintendimenti, ma certamente l'intelligenza umana ha qualche milione di anni di vantaggio.
Con la programmazione l'onere di sbrogliare questa matassa è tutto sulle spalle del programmatore, e non tutti sono in grado di farlo.
È vero che a scuola insegniamo a tutti a scrivere, ma poi non sono molti quelli in grado di usare la scrittura in modo efficace.
Beh, non tutti sono in grado di scrivere la Divina Commedia o Amleto. Ma tutti possono scrivere una lettera. O una favola. O un articolo di giornale. O il resoconto di una riunione.
Se scrivi un testo mal congegnato, nel caso pessimo sarai l'unico lettore, se scrivi un programma mal fatto, puoi creare qualche problema in più.
Dipende da cosa deve fare il programma. E dal linguaggio usato per realizzarlo. Il parallelo con i geroglifici è straordinariamente attinente, in questo caso. Non si tratta solo di insegnare l'informatica a tutti, si tratta anche di renderla insegnabile a tutti. Se non avessimo inventato l'alfabeto, oggi avremmo ancora il faraone. Lo stesso tipo di evoluzione avverrà in Informatica.
Non tutti sono in grado di governare altre persone, è un dato di fatto e penso non ci sia nulla di male nell'osservarlo, come in fondo fa Stallman
Temo che sia un paragone molto appropriato. La Democrazia assume (e la nostra Costituzione suggerisce) che qualunque cittadino possa imparare a governare. Mi rendo conto che in questo periodo ricordare che la Politica, in una Democrazia, non può essere una professione è fuori moda. Ma è così. Una democrazia non è compiuta fin quando tutti i cittadini non partecipano attivamente alla vita politica. Anche ricoprendo incarichi istituzionali. Imparando alla bisogna e lungo il percorso ciò che serve. Altrimenti con un paio di concorsi pubblici potremmo risparmiarci campagne elettorali e costi di scrutinio. Con l'informatica è esattamente lo stesso. Infatti viviamo in un mondo cibernetico. Se vogliamo vivere in una Democrazia cibernetica (invece che in una plutocrazia cibernetica) dobbiamo assumere che chiunque possa imparare a programmare. Perché la Tecnologia è Politica, e non possiamo accettare che una parte della popolazione sia esclusa da tale strumento di espressione politica.
Il che non mi impedisce di essere un fermo sostenitore del fatto che la programmazione e l'informatica come scienza vadano insegnate nella scuola, fin dalle elementari.
Lo so: è stato il tuo articolo a farmi realizzare che oggi l'informatica è condizione di cittadinanza!
Quando parli di "controllo consapevole delle persone" sono d'accordo, ma questo per me non vuol dire programmare il firewall o il mail server di casa, vuol dire capire la scienza e la tecnologia che lo fanno funzionare.
Non sono d'accordo. La matematica, la scienza e la tecnologia sono strumenti fondamentali del uomo (vedi http://www.tesio.it/2018/10/11/math-science-and-technology.html ). Ma chi sa, fa. Io non vedo l'informatica come uno strumento economico, ma come uno strumenti di emancipazione capace di veicolare valori importanti per una Nazione. Fra cui, primo, a dialogare in modo onesto e chiaro. Peraltro a breve inizierò un breve corso di Informatica (per il momento sono previste 6 ore) per la quinta elementare di mia figlia. Si tratta, come puoi immaginare, di un hack. Voglio spiegare ai bambini in modo giocoso ma efficace concetti come - la differenza fra informazione e dato - la differenza fra algoritmo e programma - concetti di crittografia seria (one time pad) - cosa è un filesystem - cosa è un protocollo di comunicazione - cosa significa autenticazione - cosa è un log - cosa significano riservatezza, segretezza e privacy - come funzionano le reti - cos'è un IP - come funziona il routing di un pacchetto - cos'è un dns - cosa si intende per client e server Conto di portarli in aula informatica una volta sola alla fine, per fargli vedere come trovare ulteriore materiale per approfondire questi temi. Il resto delle lezioni sarà basato su simulazioni fatte con carta e spago. Se fossimo partiti in terza ora potrebbero programmare in Python o Lua tranquillamente, ma in quinta mi devo accontentare di fornirgli solide fondamenta su cui costruire autonomamente. Il mio obiettivo educativo è usare l'informatica come catalizzatore per la loro curiosità naturale. Se il mio hack funziona, avremo una ventina di giovani menti curiose che non si fanno intortare facilmente e che sanno usare i computer SENZA essere utilizzati attraverso di essi. Sono convinto che sia possibile. E si potrebbe fare molto di più con più tempo ed insegnanti veri. A presto! Giacomo