6 progetti per insegnare ai tuoi bambini a computare con Linux questa estate
È ufficiale. Nelle parole della leggenda del glam rock Alice Cooper, la scuola è fuori per l'estate.
Non c'è più classe. Non c'è più la scuola. Niente più compiti a casa. Solo lunghe e interminabili giornate estive che sembrano trascinarsi per sempre. Ma come fai a tenere occupato tuo figlio durante quei lunghi mesi estivi? Forse ancora più importante, come mantenere il bambino occupato e divertito mentre insegna loro un'importante abilità professionale, come l'informatica?
Se stai cercando ispirazione, non preoccuparti. Ti ho coperto. Dai un'occhiata a questi sei progetti che insegneranno a tuo figlio le basi del computing, con Linux al centro di tutti.
Costruisci un'app di gioco o telefono con Kivy
Il linguaggio di programmazione Python è un linguaggio di programmazione introduttivo favorito insegnato nei corsi di informatica negli Stati Uniti e nel Regno Unito, grazie alla sua sintassi semplice e alla facilità con cui può essere appresa. Uno dei vantaggi di Python rispetto ad altri linguaggi - come MIT's Scratch (ci arriveremo più tardi) - è la sua ampia offerta di plugin e librerie.
Le librerie sono utilizzate per estendere la funzionalità di un programma. Ce ne sono centinaia di migliaia per Python. Una libreria popolare è Kivy, che consente di sviluppare giochi e app per desktop e dispositivi mobili.
Con Kivy, puoi creare un gioco mobile sofisticato per iOS e Android, come Pong, con poche centinaia di righe di codice. Puoi persino creare giochi e applicazioni desktop per Windows, OS X e Linux.
E poiché è Python, stai ancora usando la stessa sintassi gentile che tuo figlio ha probabilmente imparato a scuola.
Un buon punto di partenza per imparare Kivy è sulla documentazione ufficiale di Kivy, dove hanno creato un semplice gioco Pong. Qui puoi imparare come con poche righe di codice, puoi posizionare oggetti sullo schermo, controllare la fisica del gioco e persino tenere traccia dei punteggi.
Questo gioco demo è concesso in licenza con la licenza MIT - una licenza software permissiva e gratuita che consente di apportare modifiche e copie - in modo che tu possa trasformarlo nel tuo gioco e condividerlo online senza prima chiedere il permesso. Puoi persino creare APK Android e distribuire il tuo gioco Kivy nell'app store di Apple. Ma per un tutorial più guidato per Kivy, dai un'occhiata al discorso di Richard Jones con PyCon Montreal.
Installare Kivy su Linux è facile. Se stai usando una distribuzione basata su Debian, fallo.
sudo add-apt-repository ppa: kivy-team / kivy
sudo apt-get installa python-kivy
Le istruzioni su come installare Ubuntu per OpenSUSE, Gentoo e Fedora possono essere trovate qui.
Impara le basi del codice con Scratch
Se hai un bambino più piccolo che deve ancora prendere lezioni di informatica e vuoi introdurli alla programmazione, potresti prendere in considerazione l'installazione di Scratch - disponibile per OS X, Windows e Linux.
Gratta come insegnare ai bambini a programmare da zero! Come insegnare ai bambini la programmazione da zero! Per saperne di più non è un linguaggio di programmazione che ti darà una redditizia carriera di programmazione Come scegliere un linguaggio di programmazione per imparare oggi e ottenere un ottimo lavoro in 2 anni Come scegliere un linguaggio di programmazione per imparare oggi e ottenere un ottimo lavoro in 2 Anni Possono essere necessari anni di lavoro dedicato per diventare un vero programmatore; quindi c'è un modo per scegliere la lingua giusta per iniziare da oggi, al fine di ottenere assunti domani? Leggi di più . Ma va bene. Non è destinato a questo. Piuttosto, è usato per insegnare i concetti di base dietro l'informatica.
Scratch è un linguaggio di programmazione visiva, quindi piuttosto che digitare il codice, si trascinano i blocchi per creare semplici programmi. Questo presenta un modo semplice e accessibile per insegnare a tuo figlio come viene costruito il software e programmare concetti come condizionali, iterazione e ricorsione.
Ma non lasciarti ingannare dalla natura semplificata di Scratch. Solo perché è facile, non significa che sei limitato a ciò che crei. Le persone hanno costruito tutto, dai giochi - come un gioco multiplayer di pong - alle animazioni - come un biglietto di auguri stravagante - all'arte interattiva.
E una volta che hai finito il tuo capolavoro, puoi condividerlo con l'accogliente community di Scratch online, che può fornire feedback e incoraggiamento attraverso "Mi piace" e commenti.
E se ti annoi, puoi usare Scratch per creare paura di programmare in codice? Prova Scratch per Arduino che ha paura della programmazione in codice? Prova Scratch per Arduino Scratch 4 Arduino consente ai principianti come me di creare interessanti progetti Arduino con un'interfaccia visiva. È semplice, è divertente e ti insegnerà gli elementi fondamentali della programmazione. Leggi di più Progetti di Internet of Things basati su Arduino. Pulito, giusto?
Controlla la tua casa con il Raspberry Pi
Raspberry Pi è un piccolo, economico computer con dimensioni di una carta di credito in grado di eseguire Linux. Per inciso, è anche in grado di eseguire una versione ridotta di Windows 10 Windows 10 - Venendo a un Arduino vicino a te? Windows 10 - Venendo a un Arduino vicino a te? Per saperne di più, progettato per la costruzione Internet delle cose progetti.
Il Pi è una bestia versatile, avendo ripetutamente dimostrato di essere in grado di eseguire qualsiasi cosa, dalle installazioni d'arte, ai server web, fino ai server di Minecraft.
Un'applicazione per il Raspberry Pi che ha attirato la mia attenzione è stata il progetto di automazione domestica di James Bruce Home Automation Guide With Raspberry Pi e Arduino Home Automation Guide Con Raspberry Pi e Arduino Il mercato domotico è invaso da costosi sistemi di consumo, incompatibili tra loro e costosi da installare. Se hai un Raspberry Pi e un Arduino, puoi sostanzialmente ottenere la stessa cosa in ... Read More, che usa un ampio buffet di tecnologie per controllare l'illuminazione della sua casa.
Bruce usa tutto da MongoDB (che è stato spiegato con competenza da Taylor Bolduc qui Come un database MongoDB può organizzare meglio i tuoi dati Come un database MongoDB può organizzare meglio i tuoi dati MongoDB (da "humongous") è un database orientato ai documenti multipiattaforma usato come un'alternativa a MySQL, ma cosa significa? Ulteriori informazioni), al framework di sviluppo web JavaScript NodeJS Che cos'è Node.JS e Perché dovrei preoccuparmi? [Sviluppo Web] Che cos'è Node.JS e Perché dovrei preoccuparmi? [Sviluppo Web] JavaScript è solo un linguaggio di programmazione lato client che viene eseguito nel browser, giusto? Non più. Node.js è un modo per eseguire JavaScript sul server; ma è molto di più. Se ... Leggi altro, ad Arduino. Ma al centro di tutto c'è Linux e il Raspberry Pi.
La natura multidisciplinare di questo progetto significa che introdurrà il tuo bambino ad una serie di aspetti dell'informatica, come JavaScript, amministrazione dei sistemi ed elettronica.
Se non hai mai giocato con il Raspberry Pi in passato, e stai cercando un progetto più semplice in cui affondare i denti da latte, considera la stampante wireless Raspberry Pi di Christian Crawley Crea la tua stampante wireless con un Raspberry Pi Crea il tuo wireless Stampante con un Raspberry Pi Meno cavi, flessibilità su dove mettere la stampante - la stampa wireless è un vantaggio. A meno che tu non abbia una stampante più vecchia. Raspberry Pi in soccorso! Leggi di più .
Costruisci un Bot di Twitter
Non è un segreto, sono un grande fan del linguaggio di programmazione Python.
È così potente e versatile e l'ampia offerta di plugin e librerie consente di fare quasi tutto.
Python ti fa sentire come un supereroe. Pensa a qualcosa, e ci sono molte probabilità che tu possa costruirlo con Python. Ma non sto parlando solo di giochi, o dei sistemi domotici Raspberry Pi. È anche possibile creare applicazioni che si basano su siti di social networking esistenti.
Facebook. LinkedIn. Twitter. Tutti hanno API (Application Programming Interfaces) Quali sono le API e Come sono le API aperte Modifica di Internet Cosa sono le API e Come sono le API aperte Modifica di Internet Ti sei mai chiesto come i programmi sul tuo computer e sui siti web visitati "parlano" a vicenda? Ulteriori informazioni che consentono di utilizzare i dati e le funzionalità di questi siti nell'ambito dei propri programmi. Possono, all'inizio, essere abbastanza intimidatori. Ma non lo sono.
Padroneggiarli può richiedere qualche ora di lavoro, ma una volta che hai imparato come utilizzare una particolare API, sarai in grado di fare cose incredibili.
Prendiamo ad esempio Twitter, che consente agli sviluppatori di accedere ai propri dati tramite tre API separate. C'è l'API Firehose, che offre accesso illimitato in tempo reale a ogni singolo tweet, ma ha un prezzo molto alto che raggiunge le migliaia di dollari.
Ci sono anche due API che sono libere da usare. Twitter ha l'API Streaming, che ti consente di tracciare i tweet in tempo reale, ma non garantisce che riceverai ogni tweet. C'è anche l'API di ricerca, che ti permette di cercare nel database di Twitter, ma la quantità di query che puoi fare è molto limitata.
L'API Streaming è particolarmente interessante, perché puoi creare applicazioni in grado di rispondere ai tweet in tempo reale. C'è una quantità infinita di progetti che potresti costruire.
Potresti, ad esempio, prendere il cubo LED di Arduino di James Bruce Come fare un cubo LED Arduino pulsante che sembra uscito dal futuro Come creare un cubo LED Arduino pulsante che sembra uscito dal futuro Se hai si diletta con alcuni progetti per principianti Arduino, ma sta cercando qualcosa di un po 'permanente e su un altro livello di eccezionale, quindi l'umile cubo 4 x 4 x LED è ... Leggi di più, e lo illumina ogni volta che qualcuno pubblica un tweet contenente un certo parola. Oppure potresti creare un bot di Twitter che tweets spoiler ogni volta che qualcuno lo pubblica “Ho appena iniziato a guardare Game of Thrones“. Oppure, potresti creare un bot che usi anche l'API Alpha di Wolfram per rispondere a semplici domande, come “qual è la capitale del Burkina Faso”.
Su Linux, puoi sfruttare le API di Twitter utilizzando il popolare linguaggio di programmazione Python e la libreria Tweepy, disponibile per il download tramite il gestore di pacchetti PIP. Per ottenerlo, apri semplicemente la riga di comando e digita:
pip installa tweepy
Se non hai il gestore pacchetti PIP installato, non preoccuparti. È inoltre possibile installare manualmente Tweepy. Per fare ciò, avrai bisogno di Git installato.
git clone https://github.com/tweepy/tweepy.git
cd tweepy
installazione python setup.py
Non mancano tutorial online che ti insegneranno come usare Tweepy. Uno dei migliori che ho trovato era su PythonProgramming.net, che viene fornito con un tutorial video di accompagnamento.
Le possibilità sono infinite e, poiché l'API di Twitter è così facile da usare con Tweepy, non è necessaria la laurea in Informatica. Devi solo conoscere Python e avere un'idea fantastica.
Costruisci un sito web
Se insegni a tuo figlio a programmare e chiedi loro cosa vogliono fare, probabilmente diranno un'app mobile Come creare un gioco per iPhone da zero Come creare un gioco per iPhone da zero Ad un certo punto hai probabilmente desiderato te potrebbe fare i tuoi giochi di iPhone. È ora di smettere di desiderare e iniziare a fare. Leggi di più . Perché - diciamocelo - che bambino non vuole fare il prossimo Flappy Bird La breve storia di Flappy Bird [Weird & Wonderful Web] La breve storia di Flappy Bird [Weird & Wonderful Web] Pochi giochi mobili entrano nella coscienza collettiva del mainstream nel modo in cui Flappy Bird ha fatto. Passa al folclore di Internet, ma questi video contribuiranno a preservarne la viralità. Leggi di più ? Ma dopo, probabilmente diranno che vogliono costruire un sito web.
Il problema è che, quando stai imparando a costruire per la prima volta sul Web, ti stai confrontando con una serie vertiginosa di tecnologie. Dovresti usare la collaudata pila LAMP firmata per il web hosting SSH-only? Non preoccuparti - Installa facilmente qualsiasi software Web firmato per l'hosting Web SSH-only? Non preoccuparti: installa facilmente qualsiasi software Web. Non conosci la prima cosa che riguarda l'utilizzo di Linux attraverso la sua potente linea di comando? Non preoccuparti più. Leggi altro, che usa Linux, Apache, MySQL e PHP? O forse qualcosa di un po 'più moderno (e, oserei dire di moda) come Ruby on Rails, Flask o Node.js?
Quel che è peggio, questo ampio buffet di tecnologie può essere incredibilmente distratto quando sei un programmatore esperto, mentre vai in giro tra framework e linguaggio con tutto il focus di un Labrador Retriever.
È molto da prendere.
Ma penso che sia importante ricordare che imparare a costruire siti Web è qualcosa che è fondamentalmente multidisciplinare.
La base di ogni sito Web è HTML. Quindi, lo fai sembrare buono con uno spruzzo liberatorio di CSS. Una volta che hai ridotto i blocchi di base, inizi ad aggiungere interattività e dinamismo. Inizi a imparare come animare il tuo HTML e CSS con JavaScript e JQuery.
Quindi, apprendi la persistenza e la necessità di archiviare le cose in un database per recuperarle in seguito. Quindi, impari a conoscere MySQL e forse MongoDB. Scopri gli schemi, l'atomizzazione e le relazioni.
Poi impari a legare tutto insieme con un linguaggio di programmazione lato server come PHP, Python, JavaScript (con Node.js) o Ruby, e lo host su un server (spesso Linux), che deve essere configurato con competenza per assicurarsi che rimanga sicuro e affidabile.
Il punto che sto cercando di fare è che imparare a costruire siti web sia un processo multidisciplinare, che dipende dalla persona che impara una "pila" di tecnologie molto diverse e poi legarle mentalmente e capire come funzionano in relazione l'una con l'altra.
Per insegnare ai tuoi figli HTML, CSS e JavaScript, iscriviti a CodeAcademy Codecademy - Le mani in giù Il modo più semplice per codecademy Code - Hands Down Il modo più semplice per codificare Codecademy è un nuovo tutorial di programmazione interattiva di slash web che ti guida attraverso le basi di JavaScript. Anche se non è stato molto lungo, il sito ha già suscitato molto entusiasmo in ... Read More, che spiega ciascuna di queste tecnologie attraverso sfide interattive. Questo, ho scoperto, è ottimo per sostenere la motivazione, poiché ottieni risultati e feedback istantanei.
Naturalmente CodeAcademy non può insegnare in modo completo qualcosa di così grande e complesso come CSS o JavaScript. Per questo, è necessario presentare il bambino ad un buon materiale di riferimento. Eviterei W3Schools, che è noto per contenere informazioni errate - o addirittura false -. La Mozilla Developer Network è una guida completa, accurata e accessibile a tutto ciò che è HTML, CSS e JavaScript e viene altamente raccomandata.
Quando si tratta di scegliere una tecnologia di back-end, incoraggerei tuo figlio ad imparare il PHP, che ha una leggera curva di apprendimento. C'è molta documentazione disponibile per questo. Inoltre, installare un server LAMP su Ubuntu è semplicemente una questione o digitare 'sudo apt-get install lamp-server ^'.
CodeAcademy ha un corso PHP. Così fa Tuts + e Lynda. Tutti sono fantastici. Sebbene, personalmente raccomando Larry Ullman's PHP e MySQL per siti Web dinamici, che al momento della scrittura è disponibile per $ 28,90 su Amazon. Possiedo personalmente una copia e ho trovato che sia una guida accessibile e accessibile allo sviluppo web con il linguaggio di programmazione PHP.
Non ho dubbi che l'adolescente medio sarebbe in grado di cogliere il contenuto di questo libro.
In caso contrario, MakeUseOf ha pubblicato una guida per PHP (scritta dal sottoscritto), disponibile per la lettura gratuita qui. Impara a costruire con PHP: un corso di crash Impara a costruire con PHP: un corso di crash PHP è la lingua usata da Facebook e Wikipedia servire ogni giorno miliardi di richieste; il linguaggio di fatto usato per insegnare alla gente la programmazione web. È meravigliosamente semplice, ma brillantemente potente. Leggi di più .
Ma soprattutto, instillare nel tuo bambino che imparare a costruire per il web è un processo di apprendimento, e uno che richiede tempo e dedizione. Per mantenere il bambino motivato, potresti voler impostare loro un progetto su cui possono lavorare.
Ci sono molti semplici siti web che potrebbero essere costruiti da uno sviluppatore principiante. Forse un libro degli ospiti o un sito di microblogging come Twitter.
Uno degli aspetti più trascurati dell'apprendimento del codice è il feedback. Una volta che hanno creato qualcosa, prova a convincerli a condividerlo su Github, quindi gli sviluppatori più esperti possono criticare e offrire una guida. Anche il subreddit Learn Programming è abbastanza buono per questo.
E poi, forse insegni a tuo figlio come ospitare e gestire i propri server web Linux acquistando loro un droplet Digital Ocean DigitalOcean: il miglior host VPS non gestito per principianti DigitalOcean: il miglior host VPS non gestito per principianti Se hai bisogno di hosting VPS e vuoi per gestire autonomamente tutta l'amministrazione del server, ecco perché DigitalOcean è la scelta migliore. Per saperne di più, che costa un minimo di $ 5 al mese.
Partecipa ad un Club del codice
Ok, sto barando qui.
Questo non è un progetto, di per sé. Ma se vuoi insegnare a tuo figlio le basi dell'informatica e vuoi farlo in un modo più strutturato e sociale, dovresti portarle in un club di codice.
La disponibilità di questi, ovviamente, varierà in base a dove vivi. Nel Regno Unito, c'è Codice Club, un no-profit che mira a insegnare ai bambini di età compresa tra 9 e 11 a programmare. I club del codice si possono trovare nella maggior parte delle principali città e città, con le lezioni organizzate in "termini". Ogni termine insegna un diverso aspetto della programmazione, come Scratch, HTML e CSS, e Python, con il contenuto del corso che diventa sempre più complesso man mano che ogni termine progredisce.
I Code Club spesso approfittano di Raspberry Pis e Linux, perché sono estremamente economici da acquisire rispetto ai computer tradizionali.
Ma per quanto riguarda lo stagno?
L'America ha decisamente troppi Code Club-like organizzazioni da menzionare in un articolo. Ma ce ne sono alcuni che si distinguono.
Il Gates e Zuckerberg finanziato Code.org è più noto per il suo Ora del codice progetto, che cerca di convincere adulti e bambini a trascorrere un'ora ogni anno imparando a programmare. Ma lo sapevate che ospita un elenco quasi completo di corsi di informatica disponibili negli Stati Uniti, con molti disponibili in biblioteche, centri di comunità e scuole?
Ma sarei negligente se non menzionassi il brillante Black Girls Code, che sta facendo un lavoro davvero importante. Stanno cercando di affrontare il vergognoso divario etnico e di genere nel campo STEM (scienza, tecnologia, ingegneria e matematica) fornendo lezioni gratuite di informatica alle ragazze nere in tutti gli Stati Uniti. Le lezioni sono disponibili in alcune delle principali città, soggette a disponibilità. Controllare il sito Web Codice ragazze nere per ulteriori informazioni.
Time To Code
Ok gente. L'estate è ufficialmente qui. Le scuole hanno chiuso, o stanno chiudendo. Che cosa hai intenzione di fare? Li porterai in un club del codice, o darai loro un Raspberry Pi e vedrai dove li prende la loro immaginazione?
Ad ogni modo, voglio sentirne parlare. Lasciami un commento qui sotto e fammi sapere.
Crediti fotografici: codice HTML (Marjan Krebeji), codice PHP (Bull3t Hughes), imparare a usare il portatile tramite Shutterstock
Scopri di più su: Linux, Python, Scratch.