# data[].attributes.attachment_link.description
Scratch is a free programming language and online community where you can create your own interactive stories, games, and animations.

# data[].attributes.attachment_link.description
Experiments with science, art, technology, and delightful ideas.

# data[].attributes.attachment_link.readable_text
Come i bambini costruiscono e ricostruiscono se stessi da zero
By Mitchel Resnick & David Siegel
Original paper: A Different Approach to Coding. How kids are making and remaking themselves from Scratch
https://medium.com/bright/a-different-approach-to-coding-d679b06d83a
Traduzione italiana di: Andrea Ferraresso & Noelia Di Pretoro. Revisione di: Carmelo Presicce. Si ringraziano gli autori per il permesso a tradurre.

[N.d.T.: in inglese to make from scratch significa costruire da zero, remaking themselves from Scratch è pertanto un gioco di parole]

Questa settimana Code.org lancerà le attività per l'edizione 2015 della Hour of Code [N.d.T.: in Italia L'Ora del Codice], un evento annuale voluto per incoraggiare le scuole di tutto il mondo a utilizzare almeno un'ora di lezione per introdurre gli studenti al coding (cioè alla programmazione dei computer). Durante la settimana che va dal 7 al 13 dicembre, milioni di studenti avranno la loro prima esperienza da programmatori seguendo i tutorial pubblicati nel sito web della Hour of Code. Molte scuole hanno intenzione di andare oltre questa esperienza iniziale. Un crescente numero di città (tra cui New York) e anche alcuni interi paesi (come l' Inghilterra) stanno includendo il coding come materia obbligatoria di studio.

Noi sosteniamo con forza che i bambini imparino a programmare, ma siamo anche preoccupati circa le motivazioni e i metodi che stanno dietro a molte di queste nuove iniziative che vogliono diffondere l'insegnamento del coding. Molte di esse, partendo dalla carenza di sviluppatori per l'industria del software, si concentrano soprattutto sulla formazione degli studenti finalizzata a un titolo universitario o alla carriera lavorativa, introducendo il coding come una serie di puzzle logici che gli allievi devono risolvere.

Abbiamo co-fondato la Scratch Foundation nel 2013 per supportare e promuovere un approccio molto differente al coding. Il coding, per noi, non rappresenta un insieme di competenze tecniche, ma piuttosto un nuovo tipo di alfabetizzazione e una forma di espressione personale, preziosa per tutti, proprio come imparare a scrivere. Noi vediamo il coding come un nuovo modo, per le persone, di organizzarsi, esprimersi e condividere le proprie idee.

Questo approccio al coding è una caratteristica di Scratch, il nostro ambiente di programmazione sviluppato al MIT Media Lab e disponibile gratuitamente online. Con Scratch i bambini dagli otto anni in su combinano insieme blocchi di programmazione per creare storie interattive e giochi con personaggi animati. Possono condividere i loro progetti in una apposita community, dove gli altri bambini sono in grado di trovarli, fornire riscontri e suggerimenti e anche riprendere e ampliare tali progetti con le proprie idee.

Dal lancio di Scratch nel 2007, bambini di tutto il mondo hanno condiviso più di undici milioni di progetti attraverso la community di Scratch. Più di diciasettemila nuovi progetti vengono inseriti ogni giorno.

I giovani usano Scratch in contesti differenti: a casa, a scuola, in biblioteca, nei centri comunitari. Creando e condividendo i propri progetti, imparano qualcosa che va oltre l'abilità di scrivere codice. Imparano, infatti, a pensare con creatività, a ragionare in modo sistematico e a lavorare in maniera collaborativa. Tutte abilità essenziali nella società d'oggi.

Prendiamo come esempio Jocelyn, un'adolescente che, sotto il nome di CrazyNimbus, ha creato e condiviso, nella community di Scratch, più di duecento progetti negli ultimi due anni. Ha sviluppato una grande varietà di lavori, tra cui il gioco di un elicottero volante, diversi giochi con bambole da vestire, un'animazione per festeggiare il ritorno a scuola [dalle vacanze] con matite e calcolatrici danzanti e un display con conto alla rovescia che mostra quanti giorni mancano per arrivare al Giorno del Ringraziamento [N.d.T.: festa osservata negli Stati Uniti].

Jocelyn si è avvicinata per la prima volta a Scratch per creare videogiochi e ha continuato ad usarlo grazie alla presenza della community online. "Ho condiviso il mio primo progetto e subito dopo ho ricevuto un feedback. Lì ho capito che avevo ancora tanta strada da fare e che dovevo continuare a programmare", dice Jocelyn.

Scratch è simile ad altri approcci alla programmazione in cui si richiede un ragionamento logico e sistematico. Per creare i suoi progetti, Jocelyn ha dovuto imparare nuove strategie di risoluzione dei problemi, come ad esempio suddividere problemi complessi in parti più semplici e revisionare continuamente i suoi progetti quando non funzionavano come avrebbero dovuto.

Ma quello che rende Scratch diverso dalla maggior parte degli approcci al coding è il fatto che pone al centro la capacità del bambino di apprendere a esprimersi creativamente e a condividere le propri creazioni con gli altri. Jocelyn, per esempio, ha usato Scratch per programmare cartoline di compleanno interattive per i suoi amici e ciascuno aveva la sua animazione personalizzata. Jocelyn, inoltre, ha sviluppato un tutorial interattivo per mostrare agli altri bambini come potessero creare da soli le loro cartoline di San Valentino personalizzate.

"Tutti hanno bisogno di esprimersi attraverso il computer", sostiene Jocelyn. "Mi piace condividere i miei progetti con il mondo e vedere cosa ne pensano gli altri".

La maggior parte delle iniziative del tipo "learn-to-code" [N.d.T.: impara a programmare] non dà risalto a questo tipo di espressione creativa. In molte attività introduttive al coding viene richiesto agli studenti di programmare i movimenti di un personaggio virtuale affrontando una serie di ostacoli per arrivare all'obiettivo finale. Questo approccio aiuta gli studenti a imparare alcuni concetti base della programmazione, ma non permette loro di esprimersi in maniera creativa - o di sviluppare un interesse duraturo per la programmazione. È come fare una lezione di scrittura che insegna solo grammatica e punteggiatura senza dare agli studenti l'opportunità di scrivere le loro storie. Con Scratch, il nostro obiettivo è quello di rendere i bambini fluenti in programmazione - non solo, quindi, imparando i meccanismi e i concetti della programmazione, ma anche sviluppando le proprie idee e la propria abilità a esprimerle.

Ogni bambino che si esprime attraverso l'uso di Scratch, inizia a considerarsi in maniera diversa, esattamente come quando impara a scrivere. L'educatore brasiliano Paulo Freire sostiene che scrivere è molto più di una capacità pratica. Freire guida diverse campagne di alfabetizzazione in comunità povere, non solo per aiutare le persone a trovare un lavoro, ma per aiutarle ad imparare che, riportando le sue parole, "possono creare e ricreare se stessi".

Notiamo che succede qualcosa di simile quando i bambini programmano con Scratch. Jocelyn e altri membri della community di Scratch iniziano a considerarsi creatori in grado di creare i loro progetti personali con il computer, e non solamente interagire con programmi creati da altri. "Ti cambia la vita", dice Jocelyn. Nella società in cui viviamo, le tecnologie digitali sono il simbolo di possibilità e di progresso. Creando e condividendo progetti con Scratch, i bambini iniziano a vedere la possibilità di contribuire attivamente e pienamente alla società.

Se la programmazione è destinata a fare una grande differenza nella vita dei bambini, è importante superare la visione tradizionale del coding come semplice capacità tecnica o strumento per ottenere un lavoro tecnico. Educatori, genitori, politici e altri dovrebbero pensare attentamente ai loro obiettivi e alle loro strategie per introdurre la programmazione ai bambini. Secondo una ricerca condotta da MIT Media Lab, l'introduzione alla programmazione dovrebbe seguire quattro principi:

Progettare: fornire ai bambini l'opportunità di lavorare su progetti significativi (non solo su attività in stile puzzle), in modo tale che sperimentino il processo di trasformazione dall'idea iniziale fino alla creazione di qualcosa che possa essere condiviso con gli altri.

Condividere tra pari: incoraggiare la collaborazione e la condivisione e aiutare i bambini a imparare a costruire qualcosa partendo dal lavoro di qualcun altro. Programmare non dovrebbe essere un'attività solitaria.

Appassionarsi: permettere ai bambini di lavorare su progetti in linea con i loro interessi. Il loro impegno sarà maggiore e più duraturo - e il loro apprendimento sarà costante.

Giocare: incoraggiare i bambini a sperimentare attraverso il gioco - provare nuove cose, prendersi dei rischi, testare i limiti, imparare dagli errori.

Tenendo a mente queste quattro P [N.d.T. i termini in inglese iniziano tutti per P: Projects, Peers, Passion, Play], gli educatori e le altre persone interessate assicureranno un uso completo del potenziale della programmazione come una nuova forma di alfabetizzazione e di espressione di sé - non solo un'altra moda educativa.
Mitchel Resnick
Professore di ricerca sull'apprendimento al MIT Media Lab, direttore del gruppo di ricerca Lifelong Kindergarten e capo dello Scratch Team ( http://scratch.mit.edu)

# data[].attributes.attachment_link.title
Un approccio diverso al coding - Andrea Ferraresso - Medium

# data[].attributes.attachment_link.description
By Mitchel Resnick & David Siegel Original paper: A Different Approach to Coding. How kids are making and remaking themselves from Scratch https://medium.com/bright/a-different-approach-to-coding-d679b06d83a Traduzione italiana di: Andrea Ferraresso & Noelia Di Pretoro. Revisione di: Carmelo Presicce. Si ringraziano gli autori per il permesso a tradurre.

# data[].attributes.attachment_link.title
Cos'è il "pensiero computazionale": un esempio informale

# data[].attributes.attachment_link.description
To learn more and register for the course, visit http://g.co/computationalthinking This video is an introduction to computational thinking for educators. What is computational thinking, where does it occur, why should you care, and how is it being applied? Stock footage credits: https://computationalthinkingcourse.withgoogle.com/assets/img/stockfootagecredits.html

# data[].attributes.attachment_link.readable_text
Perchè le nuove tecnologie a scuola?
Per conoscere il mondo che ci circonda
Per avere "uguaglianza sociale"
Per trovare lavoro
...ma non solo

creatività perchè?
DA UTENTI PASSIVI
Sperimentiamo, sperimentiamo... sperimentiamo
Non esplode nulla ;-)
Partiamo dal
"pensiero computazionale"
Pensiero computazionale (CT) è un processo per la soluzione dei problemi, che include una serie di caratteristiche e disposizioni.
CT è essenziale per lo sviluppo di applicazioni informatiche, ma può anche essere utilizzato per sostenere la soluzione dei problemi in tutte le discipline, comprese le scienze umane, la matematica e la scienza. Gli studenti che imparano CT attraverso il curriculum possono cominciare a vedere una relazione tra materie di studio, così come tra la vita dentro e fuori della classe.
... a creatori ATTIVI
PER:
Saper scrivere oltre che saper leggere
Imparare ad imparare
Esprimere se stessi

Le 7 regole d'oro
1. Siate curiosi e attenti
2. Il bambino è competente
3. State a fianco, non davanti
4. Gli errori ci piacciono
5. Incoraggiate
6. Non dite "NON"
7. Divertitevi!

# data[].attributes.attachment_link.description
Perchè le nuove tecnologie a scuola? Per conoscere il mondo che ci circondaPer avere "uguaglianza sociale"Per trovare lavoro...ma non solo creatività perchè?DA UTENTI PASSIVISperimentiamo, sperimentiamo... sperimentiamoNon esplode nulla ;-)Partiamo dal "pensiero computazionale"Pensiero computazionale (CT) è un processo per la soluzione dei problemi, che include una serie di caratteristiche e disposizioni.

# data[].attributes.headline
Le app migliori per imparare a programmare

# data[].attributes.subject
Le app migliori per imparare a programmare

# data[].attributes.attachment_link.title
Best Apps and Websites for Learning Programming and Coding

# data[].attributes.attachment_link.description
Unlock the logic of code and the basics of programming. Through coding, students build essential literacy skills, gain an understanding of logic and sequence, and learn the mechanics of iteration. These apps are great to teach coding and programming for beginners, and a lot of them are free!

# data[].attributes.attachment_link.description
These materials primarily target middle-school students (6th - 8th grade), but most can be used without modification for younger or older students.

# data[].attributes.attachment_link.title
beanz | A Magazine about Kids, Coding, and Computer Science

# data[].attributes.attachment_link.description
beanz magazine helps kids, parents, teachers, and adults learn about software programming and computer science with little fuss.

# data[].attributes.attachment_link.description
Un linguaggio open-source dinamico che dà particolare rilevanza alla semplicità e alla produttività, dotato di una sintassi elegante, naturale da leggere e facile da scrivere.

# data[].attributes.attachment_link.description
We've integrated the interactivity from Code School into the Pluralsight platform. Grow your skills with Pluralsight experiences like assessments, paths and expert-led content on today's most in-demand technologies.

# data[].attributes.attachment_link.description
Pluralsight Skills Pluralsight Flow Government Gift of Pluralsight View Pricing Contact Sales Skill up for free

# data[].attributes.attachment_link.readable_text
In my opinion, parents of every student in every school at every level should demand that all students be taught how to code. They need this skill not because they'll all go into it as a career-that isn't realistic-but because it impacts every career in the 21st-century world. Any country recognizing that will benefit in the long term.

With the following resources, you can teach programming to every student and every age.

Teaching Coding to the Youngest Students

Tynker Games: Use these age-appropriate games to teach your elementary students coding concepts. From Puppy Adventures to Math Art and Maze Craze, you'll find games that students in grades 1-8 will enjoy. Tynker also has a curriculum and STEM product library that you may want to peruse if you're interested in combining programming with social studies, English, math, and science.

ScratchJr is a version of Scratch intended for ages 5-7 and available as a free iPad or Android app.

A favorite of some programmers, LightbotJr targets children ages 4-8.

Robot Turtles is a board game that teaches children the basics of programming without having to use any technology.

Teaching Coding to Kids 8 and Up

Hopscotch is a free iPad app for upper elementary and above. Wesley Fryer has curated resources for Hopscotch in the classroom that are full of challenges that you can use with students. He also recommends activating the emoji keyboard (go to Settings > General > Keyboards) for use with the program.

Scratch is a programming game that can be downloaded or used online and is supported by MIT. It has a powerful Hour of Code tutorial in which students can program a holiday card in their web browser. If you want options for other times of the year, use the one-hour Speed Racer activity to teach your students Scratch. Teachers can watch this tutorial, visit ScratchEd's Hour of Code Ideas forum to ask questions, or search "hour of code" in the forum for lesson plans using everything from coordinate geometry to Latin. Scratch is considered acceptable for beginners. (Some educators use Snap, originally a version of Scratch but now written in JavaScript; it is supported by University of California at Berkeley. There are several alternatives to Scratch with a similar interface. Give this list to your IT department if there are technical reasons why you can't run Scratch or Snap.)

Lightbot is a puzzle game with a free version that lasts an hour and full versions for sale on iTunes and Google Play. It teaches planning, testing, debugging, procedures, and loops.

GameMaker: Studio is an option if you want to make games that can be played in any web browser. The resources aren't as comprehensive as with some of the other tools here and the community isn't vibrant, but this one has been around for a while and might be fun for a more tech-savvy teacher.

CodeCombat is a multiplayer game that teaches coding. It's free to play at the basic level, and students don't have to sign up. It has the advantage that teachers don't have to know computer science to empower learning in programming. It's recommended for ages 9 and up. See the teacher guide for the information and standards covered in this game.

Minecraft: Education Edition continues to be popular as the new owner of Minecraft, Microsoft, continues to collect and share best practices from classrooms.

Code Monkey Island is a board game designed for children ages 9 and up. This is a great addition to your game corner.

Additional Resources

Check out the Hour of Code lesson plan tutorial from Khan Academy for ways to teach your students. These lessons are for older students with one computer each, but they can be adapted to a flipped class model.

Use Hardware to Make Something Cool

Programming, making, and creating have never been easier. If you're getting into the maker movement or Genius Hour, these should be staples in your classroom. While they may take longer than an hour to code, they're definitely something 21st-century schools can use, because students are programming and building with their hands.

The Raspberry Pi is an inexpensive computer. There are many things kids can make with a Raspberry Pi, but after setting one up with my 15-year-old nephew, I recommend that the teacher be a tad more advanced than I am. This is definitely a tool I'd use in my classroom. (A kit costs less than $100.)

I am in love with the Hummingbird Robotics Kit-it makes Arduino easy. An Arduino is basically a motherboard that you can make, plus a programming kit. I have one of these in my classroom, and the students are fixated for hours. (A kit is around $100.)

Lego Mindstorms are part of my curriculum every spring. Students love Legos! I have six older kits that we've used for years. The newer NXT kits have cool robots that can be made and programmed. This product has been around for years, so there are many resources for teachers. If you purchase an older kit on eBay, make sure it will work with newer operating systems.

Dash and Dot are two endearing little robots that can be used with ages 5 and up. These robots have apps that can be used to program them, for which children ages 8 and up can use Blockly, the visual programming language created by Google. Older students can use Objective C or Java to program the bots.

Sphero and Ollie are fantastic robots that can go almost anywhere (my students have taken them across water). The SPRK education program gives teachers and parents a curriculum for using the bots and teaching programming even while the adult is still learning.

How Do You Teach Coding in Your Classroom?

Please join the movement to help reach every child by sharing in the comments section your story or a link to your favorite resources for teaching kids to code.

# data[].attributes.attachment_link.title
15+ Ways of Teaching Every Student to Code (Even Without a Computer) | Edutopia

# data[].attributes.attachment_link.description
With this collection of resources, you can teach your students to code-even if you're still learning yourself.

# data[].attributes.attachment_link.description
Tynker is the #1 Kids Coding Platform where millions have learned to code. Kids learn to code as they make apps and games, mod Minecraft, fly drones, command robots, create augmented reality games, learn Python, JavaScript, and so much more.

# data[].attributes.body
È necessario fare autocritica, e accettare il fatto che il programma non si comporta come dovrebbe e che si è fatto un errore, cosa del tutto normale e frequente in fase di sviluppo; se tutto fosse stato previsto e non ci fossero errori, il programma funzionerebbe correttamente, ma spesso questo risultato non si ottiene quasi mai alla prima stesura del codice, ma solo per successive modifiche e correzioni. Tale atteggiamento mentale incrementa significativamente la possibilità di trovare e risolvere dei bug.

# data[].attributes.body
https://code.org/

# data[].attributes.body
http://www.programmailfuturo.it/

# data[].attributes.body
http://www.helloruby.com/play

# data[].attributes.body
http://csunplugged.org/activities/

# data[].attributes.attachment_link.readable_text
Several videos have been produced for Unplugged by Orange Studios and Shuriken, sponsored by Google.

The embedded videos below are from YouTube and are also shown on the individual activity pages. The full collection of videos is available from the CSunplugged channel on YouTube. If you want to download them for playing offline, you can get them from Vimeo.

Unplugged - The Show

This video introduces a one-hour show that is used to communicate to children what the topic of Computer Science is about. It's closer to a game show than a lecture on the entertainment-education spectrum, and is intended for use in any public setting where you need to keep the audience engaged. The ideas could be used by outreach coordinators, science centers, university faculty, and senior students who are giving a talk to school-age students. The goal is to make such a talk memorable and entertaining, as well as informative. Note that the target audience for the video is potential presenters (to get ideas), not students, and although the students in the video are around 12 years old, the same ideas can be adapted for younger and older students, including adult audiences.

The videos below are enactment of the Binary Numbers Activity. The binary number system plays a central role in how information of all kinds is stored on computers. Understanding binary can lift a lot of the mystery from computers, because at a fundamental level they're really just machines for flipping binary digits on and off.

Binary (Computer Science Unplugged Part 1)

Also available on YouTube in the following languages:

Also available on TeacherTube in in the following languages:

Counting in Binary (Unplugged - The Show Part 2)

Binary Numbers - Email (Unplugged - The Show Part 3)

Binary Numbers - Other Representations (Unplugged - The Show Part 4)

The videos below are enactment of the Image Representation Activity. This activity explores how images are displayed, based on the pixel as a building block. In particular, the great quantity of data in an image means that we need to use compression to be able to store and transmit it efficiently. The compression method used in this activity is based on the one used in fax machines, for black and white images.

Image Compression - Run-Length Coding (Unplugged -The Show Part 5)

Image Compression - Making Contact

The videos below are enactment of the Error Detection Activity. This activity is a magic trick which most audiences find intriguing. In the trick the demonstrator is "magically" able to figure which one out of dozens of cards has been turned over, using the same methods that computers use to figure out if an error has occurred in data storage.

Parity (Computer Science Unplugged Part 3)

Also available on YouTube in the following languages:

Also available on TeacherTube in the following languages:

Introduction (Unplugged -The Show Part 1)

Also available on YouTube in the following languages:

Introduction (Unplugged -The Show Part 1) Polish

Parity - Error Detection (Unplugged -The Show Part 11)

Computer Science Buskers? (Error Detection)

Also available on YouTube in the following languages:

Computer Science Buskers? (Error Detection) French

Computer Science Buskers? (Error Detection) Chinese

The videos below are enactment of the Searching Algorithms Activity. Searching for a keyword or value is the basis of many computing applications, whether on an internet search engine or looking up a bank account balance.

Binary Search (Unplugged -The Show Part 10)

The videos below are enactment of the Sorting Algorithms Activity. Many clever algorithms have been devised for putting values into order efficiently. In this activity students compare different algorithms to sort weights in order.

Sorting Algorithms

The videos below are enactment of the Sorting Networks Activity. Here we use a fun team activity to demonstrate an approach to parallel sorting. It can be done on paper, but we like to get students to do it on a large scale, running from node to node in the network.

Sorting Networks (Computer Science Unplugged Part 2)

Also available on YouTube in the following languages:

Also available on TeacherTube in the following languages:

Sorting Networks (Unplugged -The Show Part 7)

The videos below are enactment of the Routing and Deadlock Activity. Computer networks are based on passing messages from computer to computer. This sounds simple in principle, but in practice all sorts of contention and bottlenecks can occur. This activity gives some first hand experience of such issues, with a game for a group of students.

The Orange Game

Also available on YouTube in the following languages:

The videos below are enactment of the Finite State Automata Activity. Finite state automata (FSAs) sound complicated, but the basic idea is as simple as drawing a map. This fun activity is based around a fictitious pirate story which leads to the unlikely topic of reasoning about patterns in sequences of characters.

Treasure Hunt

Also available on YouTube in the following languages:

The videos below are enactment of the Cryptographic Protocols Activity. This is another activity that achieves something that doesn't seem possible - people who don't trust each other and can't see each other are able to agree on the outcome of a random coin flip.

Cryptographic Protocols (Unplugged -The Show Part 8)

The videos below are enactment of the Public Key Encryption Activity. Public key encryption is an extraordinary recent development that has made internet commerce possible. It allows people to encrypt and decrypt messages without having to share a password to unlock them. This activity works with two people, but it's most exciting with a whole class, with everybody else trying to intercept a message sent between two students.

Public Key Encryption (Unplugged -The Show Part 9)

The videos below are enactment of the Human Interface Design Activity. Designing good interfaces has become an important industry, and successful products often depend on having excellent interfaces. This activity explores just how hard it is to get things right.

HCI - The Stroop Effect (Unplugged -The Show Part 6)

The videos below are enactment of the Modems Unplugged Activity. This activity involves listening to songs and finding hidden messages based on the same principle as a modem.

Reaching Out - Binary Codes

The videos below are enactment of the Santa's Dirty Socks (Divide and Conquer) Activity. This activity introduces the idea of "divide and conquer" using a fictitious but serious problem - a pair of dirty socks have accidentally been wrapped in one of the presents that Santa is about to deliver, and he needs to figure out which one to avoid a child getting a nasty surprise.

Santa's Dirty Socks

# data[].attributes.attachment_link.description
Contents1 Videos2 Unplugged - The Show3 Binary Numbers3.1 Binary (Computer Science Unplugged Part 1)3.2 Counting in Binary (Unplugged - The Show Part 2)3.3 Binary Numbers - Email (Unplugged - The Show Part 3)3.4 Binary Numbers - Other Representations (Unplugged - The Show Part 4)4 Image Representation4.1 Image Compression - Run-Length Coding (Unplugged -The Show Part 5)4.2 ...read more

# data[].attributes.body
http://csunplugged.org/binary-numbers/

# data[].attributes.headline
Video introduttivo su "Computer Science Unplugged"

# data[].attributes.subject
Video introduttivo su "Computer Science Unplugged"