Programmazione nella Scuola Primaria – 7

1

Oggi una cosa nuova: le funzioni.
Finora abbiamo visto programmi (di solito li chiamiamo script) piccoli, composti da poche righe ma in pratica questo capita raramente. Però senti che idea (vecchia come il cucco): suddividiamo lo script in parti logiche, esattamente come un libro è suddiviso in capitoli e il capitolo in paragrafi.
Ecco i componenti risultanti dalla suddivisione li chiamiamo funzioni. Vediamo subito un esempio:

# f0.py primo esempio di funzioni
# -*- coding: utf-8 -*-

# definisco la funzione pari
def pari(n):
	resto = n % 2
	if resto == 0:
		r = True
	else:
		r = False
	return r

# main, Python parte da qui

prompt = '\ndammi un numero intero, 10 per finire: '
n = input(prompt)
while n > 0:
	if pari(n):
		print n, 'è pari'
	else:
		print n, 'è dispari'
	n = input(prompt)

print 'ciao!'

Uh! quanta roba! Facciamo così: lo proviamo subito per vedere cosa succede e poi lo dissezioniamo.
Al solito salviamo il file scritto con Blocco note nella cartella prove del disco C: chiamandolo f0.py (controllare che Windows non bari) e lo lanciamo dal Prompt dei comandi con c:\python27\python f0.py; otteniamo qualcosa così:

f0

OK! vediamo perché.
Intanto una cosa strana nei commenti. Sappiamo già che son quelli che cominciano con il carattere # e vanno fino alla fine della riga. Ma a riga 2 c’è un commento mooolto particolare: un metacomando. Deve essere scritto esattamente così e essere nelle righe 1 o 2. La sua funzione è di dire a Python che vogliamo usare le lettere accentate, come definite nello standard UTF-8.

Saltiamo a riga 13, è qui che Python considera l’inizio del programma; in gergo viene detto il main (così i ‘mericani dicono per “principale”).
Riga 15 definisce solo una stringa che useremo più avanti, niente di nuovo.
Invece la riga 16 è nuova di pakka: assegna alla variabile n il valore ritornato dalla funzione input().
input() è una funzione predefinita, immediatamente disponibile, in gergo built-in. Opera in questo modo: scrive la stringa di prompt sul terminale e aspetta una risposta, seguita da Invio. A questo punto la funzione ha il valore di quello che abbiamo scritto e nel nostro caso viene assegnata alla variabile n.
Segue quindi un ciclo potenzialmente infinito alle righe 17-22. Il ciclo è semplice: se n è pari scrive che è pari, se è dispari scrive che è dispari (“d’ho!“, direbbe Homer Simpson), finché diamo 0 (o un numero negativo, non c’è gestione degli errori perché lo script risulterebbe inutilmente lungo).

Ma un momento: cos’è la funzione pari()? L’abbiamo definita noi, righe 5-11.
La definizione comincia con la parola riservata def (scrivere define –definisci– era troppo lungo) seguita dal nome che vogliamo dargli, una coppia di parentesi e il solito due-punti. Le parentesi sono obbligatorie, anche se dovessero essere vuote. Nel nostro caso invece gli passiamo il valore della variabile n. Non è qui il momento di approfondire ma c’è differenza tra la variabile n (è una posizione nella memoria) e il suo valore (in questo caso un numero intero positivo); peraltro questa differenza è la cosa più importante della programmazione “da grandi“.
La funzione è un sottoprogramma che fa cose normali, come farebbe qualsiasi programma. Nel nostro caso calcola il resto di n diviso 2 e assegna alla variabile r il valore booleano (logico) vero o falso a seconda che sia 0 o 1.
Nella riga 17 c’è l’istruzione di return: dice che la funzione pari() sarà il valore della variabile r.

Abbiamo così visto due tipi di funzioni: predefinite e fatte da noi.
Avevo anche pensato di dirvi che un Vero Programmatore™ la funzione pari() la scriverebbe in modo completamente diverso, molto più corta, magari usando lambda (fa geek) ma la trovate da altre parti. E sarebbe una complicazione inutile. Non ditemelo nei commenti, nèh! Ma se volete provate a farla.
E la funzione dispari() come la fareste? avendo la pari() basterebbe scrivere:

def dispari(n):
	return not pari(n)

e funziona. Una volta sarebbe stato vietato dal tuo capo perché la chiamata a pari() ha un costo (cioè impiega tempo) e ti avrebbe obbligato a rifarla come la pari() (basta cambiare l’if). Adesso, secondo me, sarebbe OK.

Chiaro? Domande? Continuo? Ci sarebbe da vedere dove si mettono le funzioni, quando ne abbiamo tante e vogliamo utilizzarle in programmi diversi. Prossimamente, forse :wink:

Ancora sull’Open Source a Torino

Ieri c’è stata la manifestazione di cui dicevo qui: Domenica 14 settembre Richard Stallman a Torino!

rsmOggi ho provato a cercare (online) sulla stampa, quella seria seriosa. Poco, molto poco: niente su la Repubblica, un resoconto su La Stampa (il giornale che leggono i torinesi a modo) che io avrei bocciato senza appello. Meglio di niente ma dai, si può fare di più. Perché non hanno chiesto la collaborazione al pubblico.

In ogni caso c’è la foto di RSM, definito “il guru americano del software libero” e “l’anti Steve Jobs profeta del Free Software”, qui: Torino taglia i ponti con Microsoft e risparmierà 6 milioni di euro.

A fianco di Sant’IGNUcius il mitico prof. ARM (Angelo Raffaele Meo) non nominato nell’articolo. Tra il pubblico (quello dalla parte sbagliata visibile nella foto) non riconosco nessuno, troppo piccoli.

Dai Torino! Conto su di te! E sarebbe bello se cose come questa fossero molto più comuni (comunque non è vero che c’è solo Torino, nèh!).

Programmazione nella Scuola Primaria – 6

Maestra Rosalba parla di me! Qui: A proposito di coding, niente panico. Parla anche di Programma il futuro, di ben altro spessore rispetto a queste note. Ma sono cose diverse: io voglio solo far vedere agli insegnanti cos’è la programmazione. E smagare l’argomento, è una cosa talmente facile che ci riesco anch’io.

laptopsNel post precedente abbiamo visto che normalmente le istruzioni che formano il programma vengono eseguite nell’ordine in cui sono scritte. Cosa che però può variare come quando dobbiamo ripetere più volte una cosa simile. Abbiamo visto il caso delle tabelline dove è richiesta la moltiplicazione di un numero per 1, 2, … 10. Quella cosa viene chiamata ciclo. E in particolare quel ciclo è predefinito, sappiamo già che sarà eseguito 10 volte. Vediamo un caso semplice (che se non è molto semplice mica sono capace) in cui non sappiamo quante volte dovremo eseguirlo. Inoltre –due al prezzo di uno– vedremo anche come eseguire un’istruzione (o un gruppo di istruzioni, è la stessa cosa) sono se si verifica una particolare condizione.

Il programma ha un nome difficilissimo, congettura di Collatz. Ma niente panico, nèh!

# collatz.py - prima versione

n = 42 # cambiare questo numero 

print n,
while n > 1:
	if n % 2 == 1:
		n = 3 * n + 1
	else:
		n = n / 2
	print n,
print '\nfatto!'

Questo programma va scritto con il Blocco note nella cartella c:\prove, come raccontato la volta scorsa. Deve chiamarsi collatz.py, se del caso operate la magia sul nome come raccontato la volta scorsa.
Proviamo a vedere cosa fa, poi lo esamineremo in dettaglio. Aprinte il solito Prompt dei comandi, e eseguite (quello che dovete scrivere è in neretto):

c:
cd \prove
c:\python27\python collatz.py
42 21 64 32 16 8 4 2 1
fatto!

Se cambiamo la riga 3 mettendo 15 al posto di 42 otteniamo:

c:\python27\python collatz.py
15 46 23 70 35 106 53 160 80 40 20 10 5 16 8 4 2 1
fatto!

OK? Esaminiamo in dettaglio il programma (ricordate che avevamo deciso di chiamare questo tipo di programmi script che fa più geek, o nerd, o saputi?).
Alla riga 3 assegno un valore alla variabile n. Come abbiamo visto precedentemente il segno # definisce un commento, ignorato da Python, lo usiamo nelle righe 1 e 3.
Alle righe 6-11 definiamo un ciclo indeterminato. Riga 6 tradotta diventa: “mentre la variabile n è maggiore di 1 fai”. Cosa fare è scritto nelle righe successive, rientrate rispetto a quella che definisce il ciclo.
Le righe 7-10 stabiliscono quale istruzione eseguire in funzione del verificarsi della condizione di riga 7. Riga 7 si legge così: “se il resto di n diviso 2 è uno fai”. Normalmente non diremmo “se n è dispari” ma il ‘puter non sa cos’è un numero dispari (poi glielo insegneremo, volendo).
Allora se n è dispari (riga 7) esegue riga 8 e cambia il valore di n che viene moltiplicato per 3 e poi aumentato di 1. Notare che riga 8 dipende da riga 7, quindi dev’essere rientrata.
Se invece la condizione “n è dispari” è falsa c’è l'”altrimenti fai” di riga 9. Questa riga dev’essere allineata con la 7 che stabilisce la condizione.
In questo caso verrà eseguita l’istruzione di riga 10 e a n verrà assegnata la sua metà.
In ogni caso verrà scritto il valore corrente di n, riga 11. Notare che se print finisce con una virgola non viene eseguito l’a-capo.
Usiti dal ciclo scriviamo un a-capo (\n, come abbiamo visto nel post precedente) e “fatto!“.

Semplice vero? Domande? Continuo?
Ci sono ancora le funzioni, i moduli e le alternative a Python.
E, come si diceva nel ’68 “ce n’est qu’un début”.

Visto nel Web – 148

Oggi Richard Stallman a Torino. Io non ci sarò ma se qualcuno ne parla lo linkerò. Sulle pagine locali (online) di La Stampa e la Repubblica per adesso non ho visto niente, se del caso aggiorno.
Intanto ecco cosa ho visto nel Web.

Andre Speek

Andre Speek

How is a binary executable organized? Let’s explore it!
::: Julia Evans

SIAE Una inutile società ferma al 1960
::: SIAMO GEEK

Cervelli all’ammasso
da discutere
::: manteblog

Bw6B2JUIgAAM5e4

common_regex 1.0.1
::: dartlang

Growing Over Backward Incompatibility
cose che sento dai tempi del Fortran II
::: Hackflow

I litigi su internet
::: Zerocalcare

10268564_710566358998829_8146035799036311963_n

Ubuntu touch ha fatto passi da gigante
::: Twitter

[Ultim' ora] C’è la prolunga del pollice nella confezione dell’ #iPhone6
::: Twitter

LibreUmbria, an update on the Green Migration
::: slideshare

Bw8lSx6IgAIR8b-

Is It Time To Split Linux Distros In Two?
::: Slashdot

Post di servizio
Pisa è più bella di Lille, ma… OK!
::: Scacciamennule

Tutti quelli che dicono che la Rete non ha influenza politica
::: Twitter

ing

Adds Julia-style latex->unicode tab completion
::: github

Apple, Google, tecnologie di rete, valore aggiunto…
::: Luca De Biase

Il web è mobile
::: Luca De Biase

BxK--LOCEAEwTlU

Il nuovo portachiavi
::: Twitter

Ascolta l’oracolo
::: Amo il web, non ricambiato

Tell the FCC: Net Neutrality is (still) crucial to free software
::: Free Software Foundation

alien

Apple Pay: la banca paga (e le compagnie telefoniche restano fuori)
queste sono le cose serie, non quelle raccontate ai fanboy
::: Luca De Biase

Il nuovo commissario all’Agenda digitale europea sono due
::: Luca De Biase

Password
Silvia Ziche

applewatch

Syncthing GUI: GTK3 & Python GUI For Syncthing [Ubuntu PPA]
::: Web Upd8

“Surveillance is advertising’s new business model”
un memo su roba che andrebbe sviluppata
::: Luca De Biase

Launch gedit in the background
fatto chiamandolo ge, funziona (ho messo la shebang)
::: The Ubuntu Incident

BxOSPo_IcAAICw4

La sentenza: nessun obbligo per chi acquista un pc di accettare il sistema operativo
::: il Sole 24 Ore

City of Turin decides to ditch Windows XP for Ubuntu and €6m saving
::: ZDNet

Watches
::: xkcd

BxPJ2yQIcAAjbF1

Il governo Usa – Yahoo?!? – spudoratamente contro gli utenti
::: Luca De Biase

#apple #watch
::: Twitter

Oh oh bye bye social life XD
::: Twitter

il selfie di Philae

il selfie di Philae

Il gigante e la farfalla (La prima regola della comunicazione)
on Twitter
::: Giuseppe Granieri

Customizing plots with style sheets
::: matplotlib

10532506_10152192102181610_1288100132265246212_n

WikiLeaks Spy Files
::: Bruce Schneier

Software Patents Are Crumbling, Thanks To the Supreme Court
::: Slashdot

La comunicazione post-linguistica di Apple Watch
::: Terminologia etc.

ppca

Ripritino di Flash Player Plug-in su Youtube (da Firefox 33)
::: OS)(SIDE

Europe: “Libraries May Be Permitted To Digitise Books Without Copyright Owner’s Consent, EU High Court Rules”
::: Library Journal INFOdocket

Se Twitter diventa un altro Facebook
::: On Marketing

Bu2pXJpCIAABI9T

Addio WordPress, benvenuto Jekyll
::: Bl@ster’s

The MOOC Revolution That Wasn’t
::: Slashdot

Git mini guida ai comandi principali
::: evilripper

BxZ-Ln5CIAAQE6_

Domenica 14 settembre Richard Stallman a Torino!

fosca
A me nessuno dice mai niente! Cioè sì, un tweet di Fosca Nomis (un RT in realtà) mi dice che devo cambiare tutti i miei programmi.

Domenica a Torino c’è Stallamn! E non solo. –OK, detta così va a finire che vengo frainteso, anzi mi autofraintendo da solo fin da subito, adesso cancello tutto.

turin

Allora solo i link agli URLs, se siete da queste parti è un’occasione da non lasciarsi scappare.
Se invece siete più distanti valutate se non sia il caso di verificare se dal monte dei Cappuccini (monte è una parola grossa) Piazza Vittorio (bisognerebbe aggiungere Veneto ma non lo fa nessuno, mai; è del Juvarra, se volete vi monto su un post lungo così (sulla piazza)) e la Mole Antonelliana si vedono proprio così o c’è stata una photoshoppatura pesante.

In ogni caso trovate tutto qui:

arci

Programmazione nella Scuola Primaria – 5

Comincio con qualche segnalazione:

Perplessità? Qualcuno sa qualcosa di quello che fanno all’estero? Dai, non credo che saremmo noi gli unici, o almeno i primi!

bambiniIntanto io ne approfitto per far vedere com’è facile programmare. Finora abbiamo visto la modalità interattiva, scriviamo qualcosa e l’interprete Python risponde. Ma sarebbe scomodo se ogni volta dovessimo ripetere le stesse istruzioni. Per questo esistono i programmi.
Si usa normalmente parlare di script, come per la parte che deve recitare l’attore (il copione) o la lista della spesa o –insomma, dico la verità: non so come si traduce script. Possiamo chiamarlo programma.
È un semplice file di testo, quelli che otteniamo con Blocco note (Notepad in inglese). Esistono modi più amichevoli per creare lo script, li tratterò prossimamente. Per adesso quello che dovete fare è creare con Blocco note il documento primo.py come questo:

# esempio piccolissimo
# di script Python

print 'ciao!'
print "ecco un esempio"
print 'piccolissimo'
print 'di programma'
print 'scritto in Python'
print '\nsemplice vero?'
print

Vediamo com’è fatto. Le prime due righe sono commenti, vengono ignorate da Python ma sono utili per noi. Un commento inizia con il carattere # e finisce con la fine della riga.

Si possono inserire righe vuote che facilitano la lettura dello script, tenete presente che qualsiasi script prima o poi dovrà essere modificato e se è ordinato e non pasticciato non vi verrà il nervoso e il mal di testa.

Seguono tante righe che iniziano con print. “Print” vuol dire stampa, è un residuo archeologico di quando non esistevano ancora i monitor e le scritte finivano sulla stampante.
Dopo print segue una stringa (potrebbe esserci altra roba, lo vedremo tra poco). La stringa è qualsiasi scritta compresa tra apici o virgolette. Se print è da solo come nella riga 10 produrrà una riga vuota. Notare invece la combinazione di caratteri di riga 9: \n. Si chiama combinazione di escape, questa significa newline, linea nuova, a-capo.

Allora vediamo come fare. Dovete aprire Gestione file e creare la cartella prove sul disco C:. Il file primo.py dovrà essere in quella cartella. Windows spesso (ma non sempre, dipende da chissà quali impostazioni) aggiunge .txt al nome del vostro file; vedremo come trattare questa rogna.

A questo punto dovete lanciare il Prompt dei comandi (l’abbiamo visto recentemente) e andare nella cartella appena creata con cd c:\prove.
Se date il comando dir vedrete l’elenco dei file (documenti) della cartella, nel nostro caso c’è primo.py –forse. O forse no, ma in questo caso c’è prove.py.txt (atz! ecco!). Se c’è l’infame .txt lo togliamo con il comando ren primo.py.txt primo.py (ren sta per rename, rinomina). Se ripetete il comando dir vedrete che è tutto OK. E a questo punto potete lanciare Python con c:\python27\python primo.py ottenendo questo:

primo

Facile vero? Ma in fondo abbiamo solo chiesto di ripetere stringhe così com’erano. Vediamo un caso più realistico, una cosa che serve anche ai ragazzi, una tabellina. Anzi quella più difficile, quella del 7.

# la tabellina del 7

numero = 7
for volte in range (1, 11):
	risultato = numero * volte
	print numero, 'x', volte, '=', risultato

print 'fatto!'

Chiamate il file tab-7.py, facendo se del caso lo stesso esorcismo di prima.

Allora: la prima riga è un commento. In riga 3 assegno alla variabile numero il valore 7.
Esaminiamo riga 4. Traduco: per volte (è una variabile) nell’intervallo che va da 1 a 11 (escluso) fai. Sembra sensato vero?
Fai cosa, però? Ecco cosa fare lo dice il blocco delle righe 5 e 6. Sappiamo che è un blocco di istruzioni perché sono rientrate (tutte dello stesso numero di spazi) rispetto al fai (in realtà :) della riga immediatamente precedente.
Riga 5 mette nella variabile risultato il valore della moltiplicazione di numero (cioè 7 per via di riga 3) per volte (che varia nell’intervallo definito in riga 4; volte è il contatore del ciclo, sì for è un ciclo).
Riga 6 scrive quanto ha appena calcolato. print l’abbiamo già conosciuta ma qui vediamo che scrive 3 numeri e 2 stringhe. L’elenco delle cose da scrivere lo dobbiamo separare con virgole.

Dopo una riga vuota per rendere più leggibile lo script c’è un’ultima scritta. Siccome siamo usciti dal ciclo delle righe 4-6 dobbiamo allineare print in colonna 1 (inizio della riga). Con il comando c:\python27\python tab-7.py ottengo

tab-7

Über-facile, vero? Quasi-quasi mi pento di avervi svelato il segreto, mi sono smagato.
E mica finisce qui: c’è un’ultima chicca. Se cambiate l’istruzione di riga 3, sostituendo il 7 con un altro valore otterrete la tabellina di questo. Per dire anche 9, 42, 314159265. O anche di numeri non interi (chissà se si usano le loro tabelline?). Restano esclusi solo i numeri speciali come unmucchio e ventidodici.

aiFonsei

click

click

Sì me la sono persa, tutta. Ma, come si dice qui in Padania who cares!
Sto parlando della Presentazione dell’iPhon6 6 e 6 Plus e iCosi collegati.

Non sono un fan (meno che mai un fanatico) della MelaMorsicata™ e ieri sera quando ho visto Twitter pieno di cinguettii melomani ho chiuso tutto.
Ma adesso una rassegna di quello che ho trovato questa mattina. Dopo una notte in cui ho dormito male: metti che quelli hanno davvero presentato quello che stravolgerà tutto e il 9 settembre sarà l’anniversario di quando…
OK, torno in me; pare non sia stato proprio così.

How Apple’s Launch Event Distorted Reality — Again. È uno show, un rito, come la messa delle 11 (a cui non partecipo, noi pastafariani simo diversi).

Mantellini, a volte passa per quasi-fanboy, qui previsioni prima della  santa messa.

Luca De Biase, si chiede se…

BxG3xaWCEAAU4tL

E c’è anche l’orologio, qui, qui e qui.

Insomma, io sono con Oatmeal.

Comeprincipe

Programmazione nella Scuola Primaria – 4

scolaro

Pare che questa serie di post piaccia, allora continuo (in attesa dei contributi richiesti, nèh!).

Oggi una cosa nuova, di quelle fondamentali: le variabili.

Ma prima mi fanno notare che al posto del terminale (il prompt dei comandi) si potrebbe usare Idle.

idle

Viene installato con Python, cercatelo nel menu (procedura che cambia tra le versioni vecchie e la 8.x). Ma rassegnatevi che il terminale ci servirà ancora.

Riprendiamo la lezione da dov’eravamo rimasti, ecco:

v1

Chiaro? Vediamo se ho capito: quando scrivo 12 + 5 e poi premo Invio, Python risponde con 17; lo stesso se scrivo un’espressione più complessa, posso (a volte devo) usare le parentesi. Finora niente di nuovo traffico con i numeri.
Ma al posto dei numeri posso usare delle variabili, cioè dare un nome a un numero, nel mio caso a var1 viene assegnato il numero 12 e 5 lo chiamo var2.
Il nome della variabile deve iniziare con una lettera, non contenere spazi e essere facile da ricordare (come otto nell’esempio). E la variabile viene trattata proprio come se fosse il dato che contiene. Inoltre possono essere usate per i risultati, specie nel caso in cui questi siano intermedi e debbano essere ulteriormente utilizzati.
Un’ultima cosa: il carattere # e tutto quello che segue fino alla fine della riga è un commento, un’annotazione che serve a noi ma che Python ignora. In modalità interattiva (come adesso) Python si aspetta che il commento continui per cui risponde con ... invece del solito >>>; basta premere Invio e tutto torna normale.

v2

Uh! cose un po’ diverse dall’aritmetica che usiamo di solito. Nessun problema con n = 3, anzi sì: si deve (dovrebbe) leggere “n diventa 3“, cosa che rende comprensibile n = n + 1, “n diventa n + 1; n viene incrementato (di 1). Siccome è una cosa che si fa spesso e la ripetizione del nome della variabile è ridondante, si usa l’operatore +=, come nell’esempio. Io ho mostrato solo += ma la stessa cosa vale per -, * e /.

v3

L’operatore logico (noi diciamo booleano) == è quello che nel linguaggio corrente è l’uguale, nel nostro caso l’espressione n == 7 restituisce il valore True, vero e n == 5, False, falso. Esiste anche != che si legge non uguale o diverso. Non uguale è brutto, avete ragione, ma ! ha spesso il significato di not. Per rendere la vita più interessante ne ha anche altri, completamente diversi, in questi casi viene a volte chiamato bang.

v4

Quasi dimenticavo: le lettere minuscole e quelle maiuscole sono diverse.

v5

Due cose ancora: il segno + concatena anche le stringhe, come si vede qui sopra. E le stringhe le racchiudiamo tra virgolette, semplici o doppie.
Se siete arrivati fin qui siete sulla buona strada, il più è fatto. Davvero. Ve l’avevo detto che è facile, pensa che l’ho capito anch’io (me) :shock:

Programmazione nella Scuola Primaria – 3

I due post precedenti hanno destato un certo interesse, penso sia il caso di continuare.
Intanto su Facebook un commento mi segnala questo post Coding – Programmazione di Maestra LIMda, Rosalinda Ierardi. La Maestra Linda sa molte cose più di me, ci lavora nella scuola con i bambini, io invece ho solo ricordi vecchi di 50 anni. Ma forse siamo complementari. Nel senso che qui capitano quelli che programmano per lavoro o per diletto.
La mia idea iniziale –e quella attuale a dirla tutta– era di far vedere ai docenti cosa vuol dire programmare. Nell’ipotesi che qualcuno dei “grandi” fosse curioso di sapere cosa si pensa di insegnare ai loro “piccoli”.

PhoneBoothEro anche stato tratto in inganno da Twitter. Twitter è un ottimo social-coso ma –oggettivamente– non è che puoi essere molto esaustivo lì. E quando ho letto Python e C++ mi son detto, andando alla ricerca di una cabina telefonica, “qui c’è lavoro per Juhan

Naturalmente non era vero! Non era come mi pensavo. Meglio :wink:
Ma allora ecco l’idea, che pare funzionare. Io faccio una brevissima introduzione a Python, ho raccontato come installarlo su Windows e come provare a usarlo in un modo –come dire– antico. Ma è quello che ci vuole per vedere com’è fatto dentro, secondo me.
E poi, promesso, le cose diventeranno più facili, non so se dirvi subito di Idle
Intanto conto sulla collaborazione dei volenterosi. Il C++ l’hanno bocciato tutti, mi sembra e OK. Sul primo linguaggio ci sono diverse idee. Aspetto ancora qualche giorno prima di andare avanti. Intanto, in attesa di sentirmi dire “Sì l’ho provato!” o “Davvero, troppo da geek!” perché non leggete i post e i commenti precedenti? Questi: uno e due.

Un commento (anonimo) arrivato via mail, con l’indirizzo di una ditta, non so se posso citarla:

Ciao, volevo segnalare questo documento in formato pdf che ho trovato qui:  http://linuxdidattica.org/polito/manuale-python-V2.pdf
Non l’ho aggiunto come allegato perché pesa 13 mb. Ho cominciato a studiare anch’io e mi sembra molto chiaro, con vignette, esercizi ecc.
Grazie per l’attenzione.

Grazie a te, ottimo manuale, c’è dentro anche il prof. Angelo Raffaele Meo, un mito dell’open source e non solo (OK, personale). Riguarda un’esperienza della scuola media, studenti più grandi delle nostre vittime. Ma OK.

Insomma se la Maestra Rosy mi fa un cenno continuo; dopo la modalità interattiva (quella che noi a volte, quando vogliamo fare i difficili, chiamiamo REPL –read, eval, print, loop) dobbiamo fare i programmi con i cicli, le scelte, le funzioni. Tutto molto semplice, solo per far vedere come si fa (è semplice, davvero). Io vado con Python ma se arriva materiale lo pubblico (faccio da mirror per dirla da nerd, o geek).

Visto nel Web – 147

Sono incappato in una discussione (che mi piace parecchio) sulla scuola, ma intanto ecco cosa ho visto nel Web.

linux-one-os-to-rule-them-all.001

75% Of Ikea’s Catalog Is Computer Generated Imagery
::: Co.Design

Google removes another privacy related app from the Play store
::: Neowin

Installing Debian Packages
chissà… mai servito (finora)
::: Connor Johnson

10590615_737824866314466_3278847988727941046_n

La tecnologia in vacanza, guida all’incauto acquisto
::: Lega Nerd

Grand Ayatollah Says High Speed Internet Is “Against Moral Standards”
io ho una connessione lentissima: sono moralmente OK, grazie Tim!
::: Slashdot

RLNC (Random Linear Network Coding): verso una nuova generazione di reti
::: ElectroYou

pontida 2015

Avete tutti presente la vastità e la qualità dei contenuti che @Treccani ha messo online sul suo sito, vero?
::: Twitter

Informazione, chi è costei?
::: UIELinux

This video shot by a flying drone shows Apple’s spaceship campus in construction
::: The Next Web

BuZXcWSIUAA5gcM
A Tour of Go
Dottor Bl@ster lo sta finendo, anzi a quest’ora l’ha finito
::: A Tour of Go

Hacker Disrupts New Zealand Election Campaign
::: Slashdot

Quanto costa l’Open Source? È veramente gratuito?
::: Daniele “Mte90″ Scasciafratte

aglio

Invisibili in rete – norme e chiarimenti per stare al sicuro
::: HackerNetwork

Kernel Developer Dmitry Monakhov Arrested For Protesting Ukraine Invasion
::: Slashdot

10570508_808990749152020_7503713900566353643_n
Transcripts of talks?
::: Ned Batchelder

The two best summaries of the celebrity picture hacks
::: Twitter

Amazon’s Plan To Storm the Cable Industry’s Castle
::: Slashdot

albano

Debian VS Ubuntu: quale distro scegliere? [parte 1]
::: oneOpenSource

‘Unofficial’ Windows XP SP4 Launched. Microsoft OS Lives On
::: Forbes

Google to build quantum computing processors
::: CIO

10574412_756357244409809_7212811049839214179_n

Akamai Warns: Linux Systems Infiltrated and Controlled In a DDoS Botnet
::: Slashdot

Does Learning To Code Outweigh a Degree In Computer Science?
::: Slashdot

IBM wants to kill the hard drive it invented
::: Engadget

BulFEfpCEAAOMRN.jpg:large

UCLA, CIsco & More Launch Consortium To Replace TCP/IP
::: Slashdot

Can this free software company secure the future of Linux for the city of Munich?
::: opensource.com

Why Google thinks you should drop everything and pick up Dart!
::: Twitter

sii-te-stesso

Pinta – Un “Photoshop” open source
::: Freestyle Pc

Microsoft is part of the problem, not the solution for Munich
::: The Mukt

Kl4gl

Scala woes?
A fork in the back?
::: Lambda the Ultimate ::: Slashdot

Scratch jr
::: Lambda the Ultimate

abqbg8p_460sa_v1

Iscriviti

Ricevi al tuo indirizzo email tutti i nuovi post del sito.

Unisciti agli altri 74 follower