Domanda

Quali linguaggi e strumenti ritieni che un giovane che inizia a programmare dovrebbe utilizzare nell'era moderna?

Molti di noi hanno iniziato con le nozioni di base proprietarie e non hanno causato danni a tutti noi a lungo termine :) ma date le esperienze che hai avuto da allora e la tua conoscenza del dominio ora, ci sono opzioni migliori?

Ci sono domande correlate a questa come "I modi migliori per insegnare a un principiante a programmare?" E "Un consiglio" sull'avvio della programmazione da parte degli adulti a cui ho inviato le risposte, ma i bambini potrebbero richiedere uno strumento diverso.

Divulgazione:è dannatamente difficile scegliere una risposta "corretta" a una domanda come questa, quindi chiunque otterrà il punteggio migliore in pochi giorni riceverà da me il punteggio di "risposta migliore" in base alla scelta della comunità.

È stato utile?

Soluzione

io suggerirei LEGO Mindstorm, fornisce un'interfaccia drag and drop intuitiva per la programmazione e poiché viene fornito con l'hardware fornisce qualcosa di tangibile che un bambino può comprendere.Inoltre, poiché è "LEGO", potrebbero pensarlo più come un gioco che come un esercizio di programmazione.

Altri suggerimenti

Il mio lavoro quotidiano è in una scuola e negli ultimi anni ho visto o insegnato (o tentato di insegnare) a vari bambini, in vari numeri, lezioni di programmazione.

I bambini sono tutti diversi: alcuni imparano velocemente, altri no.In particolare, alcuni hanno capacità di alfabetizzazione migliori di altri, e questo fa sicuramente la differenza nella velocità con cui impareranno a programmare.Scommetto che la maggior parte di noi qui, in quanto programmatori di computer professionisti e il tipo di persone che leggono e postano nei forum per divertimento, hanno imparato a leggere in tenera età.Per questo tipo di bambini, e se è tuo figlio a cui puoi insegnare individualmente, potresti fare peggio di JavaScript: ha il vantaggio che puoi farci subito cose reali e il ciclo di modifica-test basta semplicemente premere "Aggiorna" nel browser.Diventa confuso quando inizi a capire come JavaScript fa tutto in modo asincrono ed è difficile eseguire il debug, ma per un bambino brillante sotto stretto insegnamento questi problemi possono essere superati.

LEGO Mindstorms è sicuramente in cima alla lista.La maggior parte delle scuole ora incolla insieme i mattoni per creare modelli prefabbricati da cui non possono essere staccati pezzi, ma questo non dovrebbe essere un problema a casa.Sul sito del supplemento educativo del Times (Forum del sito Web per il giornale di insegnamento settimanale del Regno Unito), il "quale lingua di programmazione è il migliore per i bambini? L'argomento si presenta abbastanza regolarmente.Ci sono molti consigli laggiù per Scratch come alternativa a Mindstorms: un po' più di libertà rispetto a Mindstorms, ancora una volta probabilmente migliore per lo studente più brillante a cui potrebbe anche essere dato un saldatore.

Ho scoperto che gli alunni più lenti possono comunque avere problemi con Mindstorms, anche se l'ambiente di programmazione è "grafico" - c'è ancora molto da fare sullo schermo, e c'è parecchio da ricordare (questa era una versione più vecchia, mente - rifugio non ho ancora provato quello nuovo ed elegante).Nella mia esperienza, la migliore introduzione alla programmazione a tutto tondo è probabilmente ancora LOGO, in realtà un linguaggio considerevolmente più potente di quanto la maggior parte delle persone gli attribuisca credito.L'originale Tempeste mentali libro di Seymour Papert (niente a che fare con LEGO - hanno soprannominato il titolo del libro per il loro prodotto), uno degli ideatori di LOGO, è il riferimento canonico per insegnare la programmazione ai bambini come "abilità di pensiero" e per il concetto di Costruzionismo nell'apprendimento.

Abbiamo avuto classi di bambini di 7 o 8 anni che programmavano LOGO.Tieni presente che non miriamo a renderli "sviluppatori di software", questo è un percorso di carriera su cui possono decidere ad un certo punto dopo i 16 anni.In giovane età cerchiamo di convincerli a pensare alla "programmazione del computer" come a un altro strumento: come impostare un problema da risolvere con un computer, nello stesso modo in cui potrebbero usare una mappa mentale per aiutarli a organizzare e ricordare cose per un esame.Nessun bambino povero dovrebbe essere seduto e addestrato nei dettagli e nell'uso di un linguaggio particolare, dovrebbe essere lasciato a esplorare e capire le cose come preferisce.

Asseconderò i suggerimenti di Geoff Phrogram (prima era KPL), E Alice.

Il mio unico altro suggerimento è Lego Mindstorms NXT.Il linguaggio di programmazione dell'NXT è drag-and-drop, è molto facile da usare e può svolgere compiti molto complicati una volta imparato.Anche ai ragazzi di solito piace vedere le cose muoversi.:)

Ho usato Alice e gli NXT con alcuni ragazzini e si sono adattati molto bene.

Due possibilità sono:

Scratch - sviluppato al MIT - http://scratch.mit.edu/

E

EToys dalla fama di One Laptop per Child - http://wiki.laptop.org/go/Squeak

Informativa completa:Sono uno dei ragazzi che hanno inventato il linguaggio di programmazione per bambini, che è ora http://www.Phrogram.com, che altri hanno raccomandato qui.Vorrei aggiungere alcune informazioni orientate ai programmatori al riguardo.

È un IDE di codice, anziché drag-and-drop o basato su designer.Questo è stato intenzionale da parte nostra: volevamo rendere semplice e divertente la vera programmazione basata su testo, in particolare la programmazione di giochi e grafica.Questa è una differenza fondamentale tra noi e Alice e Scratch.Quello che scegli dipende dal ragazzo, dalla sua età e attitudini, dai tuoi obiettivi.Usarli in serie con lo stesso principiante potrebbe essere un ottimo modo per procedere: se lo fai, consiglierei Scratch, Alice, Phrogram come ordine.Phrogram ha funzionato meglio dai 12 anni in su, ma conosco papà con bambini di 6 anni che lo hanno insegnato ai loro figli, e conosco bambini di 10 anni che lo hanno usato da soli.

La lingua è tanto simile all'inglese quanto siamo riusciti a realizzarla, ed è tanto minimale quanto siamo riusciti a realizzarla.La salsa segreta sta nella gerarchia degli oggetti basata sulle classi, che è ancora una volta il più semplice, intuitiva e simile all'inglese che potremmo realizzare.La gerarchia degli oggetti è ottimizzata per giochi e grafica.Sono disponibili modelli 3D e sprite 2D.È supportato il movimento assoluto utilizzando le coordinate dello schermo o il movimento relativo come le tartarughe LOGO: Avanti (x), Gira a sinistra (y).

L'IDE viene fornito con oltre 100 esempi, alcuni esempi di linguaggio (loop), alcuni esempi di apprendimento (array), alcuni giochi e simulazioni completamente funzionali (Pong, Missile Command, Game of Life).

Per darti un'idea di quanto abbiamo sfruttato al massimo il linguaggio e l'IDE:con 27 istruzioni puoi far volare un modello di astronave 3D attorno a uno skybox 3D, usando la tastiera.Lo stesso con uno sprite 2D richiede da 12 a 15 istruzioni.

Stiamo lavorando su una versione di Phrogram compatibile con Blade che consentirà l'esecuzione dei programmi su XBox 360.Sì, l'XBox, sulla tua grande TV.Una bella motivazione per far iniziare un bambino?:)

Phrogram include il supporto per la programmazione basata su classi, con metodi e proprietà, ma si tratta solo di incapsulamento, non di ereditarietà o polimorfismo.

Sono disponibili un tutorial e una guida per l'utente,

Il mio ebook è disponibile su Amazon e in altri posti online, "Impara a programmare con Phrogram!", e consente a un principiante di iniziare programmando il classico Pong.

Phrogram Programming for the Absolute Beginner, di Jerry Lee Ford, Jr., è disponibile anche in formato tascabile su Amazon e altrove.

Per un bambino, ci andrei Alice.A ogni bambino piacerà l'interazione drag-and-drop che Alice utilizza meglio che cercare di ricordare come si scrive e la punteggiatura in qualsiasi linguaggio di programmazione.Lui/lei imparerà le strutture di programmazione di base (condizionali, loop, ecc.) e sperimenterà il divertimento di costruire un programma animato da mostrare ad altri familiari o amici.

Un corso di informatica per principianti presso il college della comunità locale utilizza effettivamente Alice per insegnare la programmazione in modo indipendente dalla lingua.Fornisce una buona base per passare alla programmazione in un particolare linguaggio (o in alcuni linguaggi) in futuro.

Recentemente ho visto una presentazione su GreenFoot (un ambiente di apprendimento basato su Java per bambini).Sembrava fantastico.Se avessi dei figli, ci proverei

Collegamento alla presentazione

È un ambiente molto giocoso, dove puoi iniziare con metodi molto basilari.I bambini imparano a pensare in modo orientato agli oggetti (non puoi creare un'istanza di un animale, ma puoi creare un'istanza di un gatto).E più migliorano, più Java puoi scoprire per/con loro.

Vorrei andare con Graffio, alcuni punti a riguardo.

  • È un linguaggio di programmazione grafica.Non è basato sul testo (questo potrebbe essere positivo o negativo).Lo rende più intuitivo e facile per i bambini (7 e oltre).
  • In realtà è altamente oggetto.Gli oggetti che scrivi in ​​questi script grafici hanno il codice allegato e possono essere riutilizzati e spostati.
  • Molto importante:risultati rapidi e impressionanti.I bambini hanno bisogno di andare avanti velocemente e ottenere risultati per potersi appassionare.

Vorrei sottolineare che, sebbene molti di noi abbiano iniziato a programmare in giovane età in Basic o Logo e poiché programmatori più avanti nella vita, non significa che questi siano buoni linguaggi con cui iniziare.Penso che i ragazzi oggi abbiano opzioni molto migliori, come Scratch o Alice.I linguaggi basati su testo (python, ruby, basic, c# o anche c) dipendono da librerie e strumenti esterni (editor, compilatori) mentre qualcosa come Alice o Scratch è tutto compreso e insegnerà ai bambini (non rivolti agli adolescenti) concetti di programmazione.Successivamente potranno andare avanti ed espandere il loro apprendimento.

Guardare Programma (ex KPL) e Alice

Direi:dai al ragazzo un vero C64, perché è così che ho iniziato.Ma oggi...Direi Ruby, ma Ruby è un po' troppo caotica.BASIC sarebbe meglio a lungo termine.L'elaborazione è facile da imparare ed è fondamentalmente Java.

Il motivo per cui consiglio un C64 è perché è BASIC, ma devi ancora imparare alcune cose relative al computer, come il modello di memoria, i pixel, i caratteri, le mappe dei caratteri, i ritorni a capo, ecc.ecc., se vuoi fare cose più avanzate.Inoltre, se tuo figlio lo trova noioso, sai che il suo cuore non è davvero interessato alla programmazione.

Vorrei proporre LOGO.Era una cosa che mi insegnavano alle elementari.Fornisce un feedback quasi immediato e insegnerà concetti di programmazione davvero basilari.Spostare quella piccola tartaruga può essere molto divertente.

Per un bambino, andrei con Alice.

Ecco un altro voto per Alice.I miei 4 figli si sono divertiti moltissimo lavorandoci e imparando i concetti di base della programmazione.Ovviamente per loro è tutta una questione di socializzare con fate e orchi, ma diamine, il maledetto sistema ereditario su cui lavoro potrebbe usare anche alcune fate e orchi.

Consiglierei Python, perché è così conciso ed espressivo.Sembra meno frustrante all'inizio, ma offre molto spazio per apprendere anche concetti più avanzati.

Creatore di giochi potrebbe essere un altro approccio.Puoi iniziare in modo semplice con uno sviluppo semplice tramite trascinamento e quindi introdurre una programmazione più avanzata man mano che procedi.Il libro L'apprendista del creatore di giochi:Sviluppo di giochi per principianti ha una serie di giochi di esempio e ti guida attraverso i passaggi necessari per realizzarli.

Penso che Python sia una buona alternativa;è un linguaggio molto potente inoltre puoi fare facilmente molte cose (per niente noiose).

Guardare Superare di poco sviluppato da Alan Kay che pensano che la programmazione dovrebbe essere insegnata in tenera età.

Quanto vecchio?Molti di noi ad un certo punto hanno iniziato a usare il BASIC, ma prima di allora ho imparato i concetti di mettere insieme comandi, variabili e eseguire cicli con LOGO.Capire come disegnare un cerchio con un triangolo che può andare solo in linea retta e girare è stato il mio primo vero risultato nella programmazione.

Modificare:Questa domanda e le sue risposte mi fanno sentire vecchio.

Anche se non gli ho dedicato molto amore nell'ultimo anno o giù di lì, per un po' ne sono stato davvero entusiasta Hackety Hack.Penso che la chiave per la maggior parte dei nuovi programmatori, in particolare per i bambini che sono più che propensi a perdere interesse per le cose, sia il feedback istantaneo.Questa è stata la cosa davvero meravigliosa di Hackety Hack:poche righe di codice e all'improvviso hai qualcosa davanti a te che fa qualcosa.Esistono alcune applicazioni simili mirate a cose come il disegno di grafica (una delle quali, su cui ho brevemente assistito Nathan Weizenbaum, Scarabocchiare!).I bambini hanno semplicemente bisogno di un feedback positivo che dimostri che stanno facendo qualcosa di corretto su base regolare, altrimenti non c'è nulla che li mantenga interessati al compito da svolgere.Quello che penso che il futuro sia per insegnare ai bambini a programmare è una sorta di DSL costruito su un linguaggio con una sintassi amichevole (questi includerebbero, probabilmente, Ruby, Python e Scheme) il cui scopo è fornire un ambiente intuitivo per costruire semplici giochi (ad esempio, Tic-Tac Toe o Hangman).

Penso che dovresti iniziarli in C.Prima riescono a padroneggiare i suggerimenti, meglio è.

Vedere Comprendere i puntatori E Dovrei imparare C.

Penso che la prima domanda sia:che tipo di programma sarebbe interessante creare?Una delle cose che mi ha fatto iniziare a programmare da bambino (in BBC Basic e poi in QBasic) è stata la facilità di scrivere programmi grafici.Potrei scrivere un paio di righe di codice e vedere subito il mio programma disegnare una linea sullo schermo.

Le cose più vicine a quel tipo di semplicità che ho visto di recente sono le libreria pygame per Python e in lavorazione, un insieme di librerie Java con un IDE.

Immagino che l'hacking sulle pagine web sarebbe un altro buon modo per iniziare:ciò comporterebbe HTML, Javascript (usando una libreria come jQuery), forse PHP o qualcosa del genere.

Qualunque sia lo strumento fornito, la cosa fondamentale è che sia facile iniziare subito.Se devi scrivere venti righe di codice corretto e capire come richiamare il compilatore prima di vedere risultati tangibili, il progresso sarà lento.

Ci sono già molti buoni suggerimenti qui.Sono davvero d'accordo con Kronikarz.Prendi un computer retrò (o un emulatore) che ti interessa e insegna con quello.Perché un computer retrò?La base è integrata.Creare suoni e grafica primitiva è un compito banale.Il vero affare potrebbe essere migliore di un emulatore perché sarà un po' più affascinante per un bambino abituato a vedere solo dispositivi moderni.

Come ho detto Qui, io opterei per Squeakland e il famoso Guidare una macchina esempio (fornito da Superare di poco).

La sintassi di Smalltalk è semplice, il che è ottimo per i bambini.

E più tardi, man mano che il bambino evolve, può apprendere concetti più complessi e persino molto avanzati che sono presenti anche in Squeak (ad es.programmazione di webapp stateful con refactoring automatizzato e unit test automatizzati!).

E come hanno detto @cpuguru e @Rotem, anche Scratch (anch'esso basato su Squeak) è fantastico.

Penso che Java potrebbe essere una buona scelta semplicemente perché puoi creare facilmente GUI e vedere accadere "cose ​​interessanti".Per lo stesso motivo, forse uno qualsiasi dei linguaggi .NET.Ho anche sentito parlare bene dei linguaggi di scripting (Ruby e Python, in particolare) per insegnare ai bambini a programmare.

Beh, se sono giovani e non hanno imparato l'ABC, potresti provarli su BF, senza quelle fastidiose lettere e numeri da affrontare.

Mi prendo il cappotto.

Skizz

Vorrei andare con quello che vorrei aver saputo prima:una semplice scatola MS-DOS e l'assemblatore integrato (debug).È fantastico imparare e comprendere davvero le basi per parlare con un computer.

Se questo non spaventa un bambino, allora passerei al "livello successivo" e introdurrei C.Questo non dovrebbe essere difficile dato che a quel punto i concetti di base di puntatori, registri e istruzioni in generale sono ben compresi.

Tuttavia, non sono del tutto sicuro di dove andare dopo.Fai il grande salto verso Lisp, Haskell o linguaggi astratti simili o dovrebbero esserci alcuni semplici linguaggi orientati agli oggetti (forse anche C++) da inserire o farebbe più male che aiuto?

Guardando Alice, vedo che è "pensato per gli studenti delle scuole superiori e universitari".Sembra che ci sia un'altra lingua/versione chiamata Alice che racconta storie cioè "dedicato agli studenti delle scuole medie"

Pagina di download di Alice

Penso Arte libera dal contesto potrebbe essere una buona scelta, con l'output della grafica, rende molto divertente l'apprendimento grammatica libera dal contesto.

Prova [Guido van Robot] [1].È un'eccellente introduzione alla robotica ed è un ottimo modo per introdurre i bambini al lato della programmazione (rispetto al lato della "costruzione dei robot").

Smalltalk non è stato progettato per tale scopo?Penso che Ruby sarebbe una buona scelta, in quanto discendente di Smalltalk.

So che nei primi anni di scuola superiore ci hanno insegnato il logo e, stranamente, l'HTML.Successivamente, la progressione è passata alle macro in MS Office, seguite da VBA di base, seguito da Visual Basic.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top