Modi migliori per insegnare ad un principiante di programmare?

voti
325

domanda iniziale

Attualmente sto impegnato nell'insegnamento mio fratello da programmare. Lui è un principiante totale, ma molto intelligente. (E lui davvero vuole imparare). Ho notato che alcune delle nostre sessioni hanno ottenuto impantanati in dettagli minori, e non mi sento che ho molto organizzato. ( Ma le risposte a questo post hanno aiutato molto. )

Cosa posso fare meglio di insegnargli in modo efficace? Esiste un ordine logico che posso utilizzare per eseguire attraverso concept di concetto? Ci sono complessità dovrei evitare fino a tardi?

Il linguaggio stiamo lavorando con è Python , ma consiglio in qualsiasi lingua è il benvenuto.


Come aiutare

Se si dispone di quelli buoni si prega di aggiungere la seguente nella sua risposta:

  • Esercizi per principianti e idee di progetto
  • Risorse per i principianti di insegnamento
  • Screencast / post del blog / e-libri liberi
  • libri di stampa che sono buoni per i principianti

Si prega di descrivere la risorsa con un link ad esso in modo da poter dare un'occhiata. Voglio che tutti sappiano che ho sicuramente stato con alcune di queste idee. Le vostre osservazioni verranno aggregati in questo post.


Risorse online per l'insegnamento principianti:


Print Books raccomandati per i principianti di insegnamento

È pubblicato 06/08/2008 alle 04:01
fonte dall'utente
In altre lingue...                            


86 risposte

voti
4

Se è interessato, non sono i piccoli dettagli le parti buone? Utilizzando python, hai già tagliato la GUI fuori di esso in modo che la confusione è andato. Perché non scegliere un progetto, un gioco o qualcosa del genere, e la sua attuazione. Il classico Hi-Lo numero guessing game può essere implementato semplicemente dalla riga di comando in 20-30 righe di codice (a seconda della lingua, naturalmente) e ti dà le variabili, le condizioni, i cicli, e l'input dell'utente.

Risposto il 06/08/2008 a 04:08
fonte dall'utente

voti
2

Prima di tutto, iniziare come tutti gli altri fa: con un Ciao Mondo programma. E 'semplice, e dà loro una sensazione di base per il layout di un programma. Cercare di ricordare di nuovo a quando eravate prima programmazione, e quanto sia difficile alcuni dei concetti sono stati - Iniziamo semplice.

Dopo Ciao Mondo, passare alla creazione di alcune variabili di base, l'aritmetica, poi sulla logica booleana e if / else. Se hai uno dei tuoi vecchi libri di testo di programmazione, controlla alcuni dei primi esempi e lo hanno gestito attraverso quelli. Basta non cercare di introdurre troppo tutto in una volta, o sarà sovrapposizione e confusione.

Risposto il 06/08/2008 a 04:13
fonte dall'utente

voti
0

Vorrei davvero discutere di scegliere un linguaggio più semplice con un minor numero di istruzioni. Io personalmente imparato il BASIC a casa, come ha fatto Jeff . In questo modo, non è necessario approfondire le questioni più complesse come la programmazione orientata agli oggetti, o anche procedure se non si desidera. Una volta in grado di gestire semplici flusso di controllo, per poi passare a qualcosa di un po 'più complicato, ma solo semplici caratteristiche.

Forse iniziare con molto semplici programmi che è sufficiente aggiungere 2 numeri, e quindi crescono a qualcosa che potrebbe richiedere un ramo, allora forse la lettura di ingresso e la risposta ad esso, quindi una sorta di loop, e iniziano unisce tutti insieme. Basta iniziare a poco e il tuo lavoro su. Non fare qualsiasi grandi progetti fino a che non può cogliere gli elementi fondamentali (altrimenti potrebbe benissimo essere troppo scoraggiante e lui poteva rinunciare a metà strada). Una volta che ha imparato BASIC o qualsiasi altra cosa si sceglie, passare a qualcosa di più complicato.

Solo la mia $ 0.02

Risposto il 06/08/2008 a 04:16
fonte dall'utente

voti
2

Qualcosa si dovrebbe essere molto attenti, mentre l'insegnamento a tuo fratello di programma è per lui non fare troppo affidamento su di voi. Spesso, quando mi trovo ad aiutare gli altri cominceranno a pensare a me come risposta libro a tutti i loro quesiti e invece di sperimentare per trovare una risposta semplicemente mi chiedono. Spesso il miglior maestro è la sperimentazione e ogni volta che il fratello ha una domanda come "Che cosa accadrà se aggiungo 2 in una stringa?" si dovrebbe dirgli di provare e vedere di se stesso. Inoltre ho notato che quando non riesco a ottenere un concetto attraverso a qualcuno, aiuta a vedere alcuni esempi di codice in cui possiamo guardare a ogni segmento singolarmente e spiegare pezzo per pezzo. Come nota a margine persone nuove alla programmazione spesso hanno difficoltà con l'idea di programmazione orientata agli oggetti, diranno capiscono che quando si insegna a loro, ma non sarà possibile ottenere un chiaro concetto di esso fino a quando in realtà la sua attuazione.

Risposto il 06/08/2008 a 04:18
fonte dall'utente

voti
30

Si potrebbe provare a utilizzare Alice . Si tratta di un programma 3D progettato per l'utilizzo nelle classi di programmazione introduttivi.

I due più grandi ostacoli per i nuovi programmatori sono spesso:

  • errori di sintassi
  • motivazione (scrivere qualcosa di significativo e divertente piuttosto che artificiosa)

Alice usa un'interfaccia trascinamento per costruire programmi, evitando la possibilità di errori di sintassi. Alice vi permette di costruire mondi 3D e avere il controllo del codice caratteri (semplice) 3D e animazione, che di solito è molto più interessante di attuazione liste collegate.

I programmatori esperti possono guardare in basso Alice come un giocattolo e si fanno beffe trascinando righe di codice, ma la ricerca dimostra che questo approccio funziona.

Disclaimer: Ho lavorato su Alice.

Risposto il 06/08/2008 a 04:29
fonte dall'utente

voti
15

Un buon corso di pitone è del MIT A Gentle Introduzione alla programmazione Usare Python . E 'tutto gratis on-line, e non c'è bisogno di essere un uberstudent MIT per capirlo.

Modifica [ Justin standard ]

Il corso utilizza questo libro online gratis: come pensare come uno scienziato di computer
che sto sicuramente trovando molto utile.

Risposto il 06/08/2008 a 04:47
fonte dall'utente

voti
118

Ho dovuto lavorare con diversi principiante (mai scritto una riga di codice) programmatori, e farò un dopo bottega scuola con studenti delle scuole superiori di questo autunno. Questa è la cosa più vicina che ho avuto modo di documentazione. E 'ancora un work in progress, ma spero che aiuta.

1) FizzBuzz. Inizia con i programmi da linea di comando. È possibile scrivere alcuni giochi divertenti, o strumenti, molto rapidamente, e si impara tutte le caratteristiche del linguaggio molto rapidamente senza dover imparare gli strumenti grafici per primo. Questi primi applicazioni dovrebbero essere abbastanza semplice che non è necessario usare strumenti reali di debug per farli funzionare.

Se niente altro come cose FizzBuzz sono buoni progetti. Le prime applicazioni non dovrebbero avere a che fare con DB, file system, di configurazione, ect. Questi sono concetti che solo confondere la maggior parte delle persone, e quando sei solo imparare la sintassi e le caratteristiche quadro fondamentali davvero non hanno bisogno di maggiore complessità.

Alcuni progetti:

  • Ciao mondo!
  • Prendere l'anno della mia nascita, e calcolare la mia età (appena (ora - allora) nessun mese correzioni). (matematica semplice, input, output)
  • Chiedete una direzione (su, giù, sinistra, destra), poi dire che l'utente il loro destino (caduta in un buco, trovare una torta, ect). (Logica booleana)
  • FizzBuzz, ma contare una volta al secondo. (Loops, temporizzatori, e più logica)
  • A seconda della loro età ad alcuni piace davvero un app che chiama gli utenti un insulto a caso ad un certo intervallo di tempo. (Loops, gli array, i timer e casuale se si effettua l'intervallo casuale)

2) Progetto semplice Una volta che hanno una buona conoscenza delle caratteristiche del linguaggio, è possibile avviare un progetto (semplici, divertenti giochi funzionano bene.). Si dovrebbe cercare di avere il primo progetto in grado di essere completato entro 6-12 ore. Non spendere il tempo di architetto presto. Far loro progettazione anche se fa schifo. Se cade a pezzi, parlare di quello che è successo e perché non è riuscito, quindi scegliere un altro argomento e ricominciare.

Questo è dove si inizia a introdurre le funzionalità di debug dei vostri strumenti. Anche se si può vedere il problema con la lettura del codice si dovrebbe insegnare loro come utilizzare gli strumenti, e poi mostrare loro come si poteva vedere. Che ha il duplice scopo di insegnare gli strumenti di debug e l'insegnamento come gli errori di ID senza attrezzi.

Una volta, o se, il progetto diventa funzionale è possibile utilizzarlo per introdurre strumenti di refactoring. Il suo bene se si può quindi espandere il progetto con alcune caratteristiche semplici, che non era stata pensata per. Questo di solito significa refactoring e il debug significativo, dal momento che pochissime persone scrivono anche codice decente la loro prima volta.

Alcuni progetti:

  • gioco dell'impiccato
  • Esperimenti con la robotica ( Vex e Mindstorms sono opzioni)

3) progetto reale Avviare un vero e proprio progetto che può richiedere un certo tempo. Utilizzare il controllo di origine corretta, e fare un punto per avere un calendario. Eseguire questo progetto come un vero e proprio progetto, se non altro la sua buona esperienza avere a che fare con gli strumenti.

Ovviamente è necessario regolare questo per ogni persona. La cosa più importante che ho trovato è quello di rendere anche le prime semplici applicazioni si applicano a ciò che la persona è interessata a.

Alcuni progetti:

  • Tetris
  • File di testo motore di blog basato
  • il lavoro della robotica più avanzata
Risposto il 06/08/2008 a 05:00
fonte dall'utente

voti
2

Ho usato per insegnare la programmazione e tuo fratello ha un vantaggio sulla maggior parte dei miei studenti che vuole imparare :)

Se si decide di andare con C un amico ha un sito che ha il tipo di programmi quelli di uso da generazioni più anziane ricordano come tipo-in di base. Il più complesso di usarli ncurses che tipo di nega loro uso come strumento didattico in qualche modo, ma alcuni di loro sono piccole piccole cose e si può imparare carichi senza essere insegnato a.

Personalmente penso che Python e Ruby sarebbero fare grandi primi linguaggi.

EDIT: elenco delle assegnazioni di programmazione per principianti è apparso durante la notte potrebbe essere proprio quello che state cercando.

Risposto il 06/08/2008 a 05:07
fonte dall'utente

voti
0

Penso che la "saggezza delle folle" lavora qui. Come ha fatto la maggior parte delle persone a imparare a programmare? Molti sostengono che lo hanno fatto copiando i programmi degli altri, di solito i giochi che volevano giocare in BASIC.

Forse questo percorso sarà lavorare con lui troppo?

Risposto il 06/08/2008 a 05:20
fonte dall'utente

voti
1

Se si vuole insegnare le basi della programmazione, senza essere linguaggio specifico, v'è un'applicazione chiamata Scratch che è stato creato nel MIT. E 'progettato per aiutare le persone a sviluppare competenze di programmazione. Come utenti di creare progetti di Scratch, imparano a creare le condizioni, loop, ecc C'è un anche una comunità di progetti e vinci, forma che i progetti possono essere scaricati - in questo modo è possibile esplorare i programmi di altre persone e vedere come sono stati costruiti.

Risposto il 06/08/2008 a 06:15
fonte dall'utente

voti
2

In realtà dipende stile di apprendimento di tuo fratello. Molte persone imparano più velocemente sporcarsi le mani e basta entrare in esso, cristallizzando i concetti e il quadro mentre progrediscono e costruiscono la loro conoscenza.

Me, preferisco iniziare con il quadro generale e drill-down nel nocciolo. La prima cosa che volevo sapere è come si integra il tutto allora tutto ciò che gobbledygook orientata agli oggetti, quindi sulle classi e istanze e così via. Mi piace sapere i concetti di base e un po 'di teoria prima che ho imparato la sintassi. Ho avuto un po 'di vantaggio, perché ho scritto alcuni giochi in BASIC 20 anni fa, ma niente di molto da allora.

Forse è utile ombra di un processo di produzione partendo da una dichiarazione generale della missione, quindi un piano e / o diagramma di flusso, poi elaborare in qualche pseudo codice (pendente verso la sintassi si ultima analisi, l'uso) prima di scrivere il codice.

La regola d'oro è quella di suss stile pendente del vostro studente.

Risposto il 06/08/2008 a 09:44
fonte dall'utente

voti
7

http://tryruby.hobix.com/">Try Rubino (nel tuo browser)

Risposto il 06/08/2008 a 15:37
fonte dall'utente

voti
0

Sono d'accordo con Leac. Io in realtà giocare con Scratch volte se mi annoio. E 'un modo visivo piuttosto divertente di guardare il codice.

Come funziona è, ti danno un sacco di "blocchi" (questi sembrano Lego), che è possibile impilare. E impilando questi blocchi, e di interagire con la tela (dove mettete i folletti, grafica), è possibile creare giochi, film, presentazioni ... è davvero interessante.

Quando è completo è possibile caricare nel modo giusto al graffio siti web, che è un portale youtube-ish per applicazioni Scratch. Non solo, ma è possibile scaricare qualsiasi presentazione sul sito web, e imparare da o estendere altre applicazioni Scratch.

Risposto il 06/08/2008 a 16:32
fonte dall'utente

voti
5

Questo è un libro fantastico che i miei piccoli fratelli utilizzati per imparare:

http://pine.fm/LearnToProgram/

Naturalmente, la cosa più importante è quello di iniziare un vero e proprio programma, utile di qualche tipo subito dopo aver terminato il libro.

Risposto il 07/08/2008 a 04:33
fonte dall'utente

voti
0

Io li consiglio partendo con C / C ++. Trovo che sia una buona base per quasi tutte le altre lingue. Inoltre, le diverse versioni di base può essere piuttosto dubbia, nella migliore delle ipotesi, e non hanno alcuna reale correlazione alla programmazione vera e propria.

Risposto il 07/08/2008 a 04:35
fonte dall'utente

voti
0

Credo che imparare a programmare perché si vuole imparare a programmare non sarà mai buono come imparare a programmare perché si vuole fare qualcosa. Se si riesce a trovare qualcosa che tuo fratello è interessato a fare il lavoro perché vuole farlo funzionare, si può lasciarlo con Google e lo farà. E lui avrà in giro per controllare che sta percorrendo la strada giusta.

Credo che uno dei più grandi problemi con la programmazione didattica in astratto è che non ha un contesto del mondo reale che lo studente può ottenere emotivamente investito in. La programmazione è difficile, e ci deve essere qualche vero e proprio payoff per renderlo vale la pena di farlo. Nel mio caso, avevo fatto informatica presso UNI, imparato Pascal e COBOL lì, e ho imparato BASIC a casa prima, ma non ho mai avuto ovunque con esso fino a quando sono diventato un lavoratore autonomo, web designer indietro negli anni '90 e la mia i clienti necessari funzionalità sui loro siti web, ed erano disposti a pagare circa 10 volte di più per la funzionalità che per il design. Mettere il cibo in tavola è un inferno di un motivatore!

Così ho imparato Perl, quindi ASP / VBScript, poi JavaScript, quindi Flash / ActionScript poi PHP - tutto per rendere le cose che volevo per accadere.

Risposto il 07/08/2008 a 06:47
fonte dall'utente


voti
1

Credo che una volta che ha le basi (variabili, loop, ecc) verso il basso si dovrebbe cercare di aiutarlo a trovare qualcosa di specifico che è interessato e aiutarlo a imparare il necessario per farlo accadere. So che io sono molto più inclinato e motivati ​​a fare qualcosa se è di interesse per me. Inoltre, assicurarsi di lasciarlo lottare anche se alcuni dei problemi più difficili, non c'è nulla di più soddisfacente rispetto al momento in cui si capirlo da soli.

Risposto il 07/08/2008 a 21:12
fonte dall'utente

voti
4

Avevo appena lasciato scrivere tonnellate di codice. Lascialo guidare in tutto quello che fate ragazzi, e solo essere a disposizione per rispondere alle domande.

Che ci crediate o no, dopo pochi mesi di scritti tonnellate di codice scadente, comincerà ad avere l'idea e iniziare a scrivere programmi migliori. A quel punto, è possibile ottenere impantanati nei dettagli (memoria, ecc), e parlare anche di principi generali di progettazione.

Ho sentito dire che ciò che separa i grandi artisti da quelli mediocri, è che ogni volta si pratica, migliorano su qualcosa, non importa quanto piccolo. Lasciate che la vostra pratica fratello, e che sarà lui a migliorare ogni volta che si siede alla tastiera.

Edit: [Justin Standard]

Esteban, questo mi ricorda un recente messaggio di orrore di codifica , e io non credo che tu abbia ragione. Ma credo che la sua ancora la pena di trovare metodi per guidare la sua pratica. Nessuna domanda, voglio che scrivere tanto codice come lui sa fare. Questo è uno dei motivi che sto chiedendo per progetti di esempio.

Risposto il 09/08/2008 a 00:37
fonte dall'utente

voti
1

Mi è stato insegnato da imparare a risolvere i problemi in modo agnostico lingua usando diagrammi di flusso e PDL (Programma Design Lingua). Dopo un paio di settimane di che, ho imparato a convertire il Pdl che avevo scritto per una lingua. Sono contento che ho imparato in questo modo perché ho trascorso la maggior parte dei miei anni di programmazione, risolvere i problemi, senza essere legato ad una lingua. Che linguaggio che uso è sempre stato un dettaglio di implementazione e non parte del disegno.

Dovendo risolvere il problema scomponendola in essa la procedura di base è una competenza chiave. Penso che sia una delle cose che separa quelli che possono programmare da quelli che non possono.

Per quanto riguarda il modo di affrontare l'ordine dei concetti di una lingua Credo che il modo più semplice è quello di decidere che è quello di avere in mente un progetto e affrontare i concetti in quanto sono necessari. Questo consente di applicare loro in quanto sono necessari su qualcosa che siete interessati a fare. Quando si impara una lingua che è bene avere diversi progetti semplici in mente e pochi con progressiva complessità. Decidere su quelli vi aiuterà a delineare i concetti che sono necessari e il loro ordine.

Risposto il 09/08/2008 a 01:23
fonte dall'utente

voti
0

Prima di tutto, penso che ci sia già stato alcune grandi risposte, quindi cercherò di non ingannare troppo.

  • Ottenere loro di scrivere un sacco di codice, tenerli a fare domande per mantenere i succhi di cervello che scorre.
  • Direi Non impantanarsi con il proprio informazioni dettagliate fino a quando non sia corrono per le implicazioni di loro, o chiedere.

Credo che uno dei più grandi punti che garantirebbe è che capiscono i concetti fondamentali di un quadro. So che si sta lavorando in Python (che non ho alcun indizio circa), ma, per esempio, con ASP.NET convincere la gente a capire pagina / codice dietro modello può essere una vera sfida, ma la sua critica che la capiscono. Per fare un esempio, di recente ho avuto una domanda su un forum su " Dove metto il mio codice di accesso ai dati, nel file 'cs' o il file 'aspx' ".

Quindi direi che, per la maggior parte, far loro guidano la strada, basta essere lì per sostenere loro dove necessario, e chiederà più domande per mantenere l'interesse. Proprio in modo che abbiano le basi verso il basso, e non lo lasciarli correre prima di saper camminare.

In bocca al lupo!

Risposto il 09/08/2008 a 05:52
fonte dall'utente

voti
1

Suggerirei anche guardare alcuni screencast - sono generalmente creati in un contesto di una specifica tecnologia non una lingua, ma se non c'è codice Python visualizzata, che farà :). Il punto è - sono creati da alcuni buoni programmatori e guardare come programma di buoni programmatori è una buona cosa. Tu e tuo fratello potrebbe fare un po 'di programmazione pari pure, che potrebbe essere un'idea ancora migliore. Basta non dimenticare di spiegare perché si fa qualcosa in questo modo e non in quel modo. Penso che il modo migliore per imparare la programmazione è da buoni esempi e cercare di non vedere nemmeno i cattivi.

Risposto il 09/08/2008 a 07:17
fonte dall'utente

voti
1

Robert Read ha scritto una guida utile, Come essere un programmatore , che copre una vasta area di problemi di programmazione che un principiante potrebbe trovare utili.

Risposto il 09/08/2008 a 15:28
fonte dall'utente

voti
1

Ci sono già stati un sacco di grandi risposte, ma per un principiante assoluto, io consiglio vivamente Hackety Hack . E 'stato creato dal irragionevolmente prolifico why_the_lucky_stiff specificamente per fornire un / LOGO / Pascal-come l'ambiente BASIC per i nuovi programmatori di sperimentare. E' essenzialmente una chiazza di petrolio Rubino IDE con alcune grandi librerie (flash video, IM, web server) e le lezioni interattive. Fa un buon passo per la programmazione, in quanto ha scelto lezioni che divertenti da fare, cose utili. "Ciao, mondo" potrebbe non impressionare destra fuori del blocco, ma la creazione di un client di messaggistica istantanea personalizzata in 20 minuti può ispirare qualcuno a continuare ad imparare. Divertiti!

Risposto il 11/08/2008 a 03:30
fonte dall'utente

voti
1

Copiare qualche semplice codice riga per riga e portarli a leggere e interpretare come vanno avanti. Essi saranno presto lavorare fuori. Ho iniziato a programmare su un Acorn Electron con frammenti di codice da riviste Acorn. Non avevo idea di programmazione quando avevo 6 anni, ho usato per copiare il testo, ma a poco a poco ho imparato che cosa le diverse parole significavano.

Risposto il 11/08/2008 a 11:23
fonte dall'utente

voti
0

Suggerirei al primo insegnare le basi che vengono utilizzati in quasi tutte le lingue, ma in questo modo, senza una lingua. Delineare tutti i concetti di base if-else if-else, cicli, classi, Tipi di variabili, strutture, ecc Tutto ciò che è alla base della maggior parte delle lingue. Poi passare realmente capire booleani, confronti e complessi e OR, per avere la sensazione di ciò che i risultati sono per le dichiarazioni più complesse.

Facendo in questo modo capirà i concetti di programmazione e hanno un tempo molto più facile entrare in lingue, da lì il suo solo imparare gli intricati dettagli dei linguaggi, le sue funzioni, e la sintassi.

Risposto il 11/08/2008 a 11:30
fonte dall'utente

voti
0

Il mio progetto preferito "iniziare ad imparare a codice" è il gioco di serpenti o Tron perché ti permette di iniziare lento (variabili per memorizzare la posizione "verme" corrente, gli array per memorizzare le posizioni verme se il worm è più lungo di un "pezzo", loop a fare la mossa a vite senza fine, se / interruttore per permettere all'utente di cambiare la direzione del worm, ...). Consente inoltre di inserire sempre più roba nel progetto a lungo termine, ad esempio, programmazione orientata agli oggetti (un worm è un oggetto con la possibilità di avere due vermi allo stesso tempo) con l'ereditarietà (passare da "Snakes" a "Tron ", o viceversa, in cui il worm cambia leggermente comportamento).

Io suggerirei di utilizzare XNA di Microsoft per iniziare. Nella mia esperienza di iniziare la programmazione è molto più divertente se si può vedere qualcosa sullo schermo, e XNA rende veramente facile per ottenere qualcosa in movimento sullo schermo. E 'abbastanza facile da fare piccoli cambiamenti e ottenere un altro aspetto, ad esempio modificando i colori, così da poter vedere che le sue azioni hanno un effetto -> Impressione di successo. Il successo è divertente, che è una grande motivazione per continuare a imparare.

Risposto il 11/08/2008 a 11:59
fonte dall'utente

voti
1

Questo può sembrare stupido, ma perché stai cercando di insegnare a tuo fratello per programmare?

Spesso il miglior ambiente di apprendimento è costituito da un obiettivo che può essere raggiunto da un principiante appassionato (un esempio di programma), un ampia offerta di risorse (Google / tutorial / libri), e una fonte a conoscenza di consigli che possono fornire una guida quando necessario.

Si può sicuramente aiutare con i suggerimenti per i primi due, ma l'ultimo è il tuo ruolo primario.

Risposto il 13/08/2008 a 05:10
fonte dall'utente

voti
1

Io suggerirei un approccio simile a quello del libro, Accelerated C ++ in cui essi coprono parti del C ++ che sono generalmente utile per fare semplici programmi. Per chiunque nuovi alla programmazione Penso che avere qualcosa da mostrare per una piccola quantità di sforzo è un buon modo per tenerli interessati. Una volta che avete coperto i fondamenti di Python allora si dovrebbe sedersi e fargli experiement con la lingua.

In uno dei miei soggetti di Ateneo in questo semestre hanno preso un approccio chiamato Problem Based Learning (PBL) in cui si usano le lezioni per stimolare gli studenti sui diversi approcci ai problemi. Dal momento che il fratello è vivo si dovrebbe prendere un approccio simile. lo mise piccoli progetti su cui lavorare e fargli capire che a se stesso. Poi una volta che è finito si può passare attraverso il suo approccio e confrontare e contrapporre con metodi diversi.

Se gli si può dare la giusta quantità di aiuto per guidare lui nella giusta direzione, allora dovrebbe andare bene. lo providng con alcuni buoni siti web e libri sarebbe anche una buona idea.

Consiglio anche attaccare da IDE nelle fasi iniziali. Utilizzo della riga di comando e un editor di testo gli darà una maggiore comprensione dei processi coinvolti nella compilazione / assemblaggio di codice.

Spero di stato di qualche aiuto. :)

Risposto il 13/08/2008 a 08:29
fonte dall'utente

voti
0

Questo thread è molto utile per me come un principiante (> 100 linee di codice) il programmatore.

Sulla base di quello che ho passato, una volta che ho finito con il "Ciao Mondo" e passare a variabili e "if / else" affermazione, mi sono zapped con troppa sintassi; Non sapendo cosa fare con loro.

Quindi, con un progetto semplice interessante, potrei avere il mio interesse di nuovo. Ci sono un bel po 'di suggerimenti di progetto qui.

Posso fare una domanda qui?

E 'meglio imparare un linguaggio di scripting come Autohotkey prima?

Edit: [Justin Standard]

Credo che imparare qualcosa di macro-based come Autohotkey solo aiuterà in minima parte. Prova imparare un linguaggio di programmazione "reale" per primo. Il modo più semplice per iniziare con (secondo la maggior parte persone) sono pitone e rubino . Io sono a favore di pitone, ma entrambi sono abbastanza semplici. C'è anche un messaggio StackOverflow completa che risponde alla domanda di quale lingua di partenza.

Risposto il 14/08/2008 a 00:30
fonte dall'utente

voti
0

All'inizio ero interessato a come programmi diversi hanno lavorato, così ho iniziato cercando il codice sorgente. Poi, quando ho cominciato a capire come il programma ha funzionato, vorrei cambiare alcuni parametri per vedere cosa sarebbe successo. Quindi, in pratica ho imparato a leggere prima ho imparato a scrivere. Il che casualmente è come la maggior parte delle persone imparano l'inglese.

Quindi, se stavo cercando di insegnare a qualcuno come programmare vorrei dare loro un piccolo programma per cercare di leggere e capire come funziona, e li hanno appena appena giocare con il codice sorgente.

Solo allora darei loro "compiti" per cercare di realizzare.

Ora, se avessero una particolare ragione per voler imparare a programmare, sarebbe certamente una buona idea per iniziare con qualcosa sulla falsariga di ciò che vogliono realizzare. Per esempio, se volevano essere competenti in un'applicazione come frullatore , sarebbe definably essere una buona idea per iniziare con Alice .

Io consiglio assolutamente attaccare con un linguaggio che ha garbage collection, come D , Perl , o qualche linguaggio interpretato come javascript. Potrebbe essere una buona idea di stare lontano da Perl fino Perl 6 è più vicino al completamento, perché consente di risolvere alcune delle difficoltà di lettura e comprensione di Perl.

Risposto il 14/08/2008 a 15:23
fonte dall'utente

voti
1

Un sacco di cose mi sgambetto agli inizi, ma nessuno più di meccanica semplice. Concetti, ho preso immediatamente. Ma perdere una parentesi graffa di chiusura? Facile da fare, e spesso difficili da eseguire il debug, in un programma non banale.

Quindi, il mio modesto consiglio è: non sottovalutare i principi fondamentali (come il buon battitura). Sembra di riparazione, e anche sciocco, ma mi ha salvato tanto dolore presto nel mio processo di apprendimento, quando sono incappato la semplice tecnica di digitare lo "scheletro" completo di una struttura del codice e poi basta riempirlo in.

Per una dichiarazione "se" in Python, iniziare con:

if  :

In C / C ++ / C # / Java:

if () 
{

}

In Pascal / Delphi:

If () Then
Begin

End

Poi, tipo tra l'apertura e chiusura gettoni. Una volta che questo diventa un'abitudine solida, in modo da fare senza pensare, più del cervello è liberato per fare cose divertenti. Non è un po 'molto appariscente di consigli per pubblicare, lo ammetto, ma quello che ho visto personalmente fare un sacco di bene!

Edit: [ Justin standard ]

Grazie per il vostro contributo, Ala. Relativi a quello che hai detto, una delle cose che ho cercato di aiutare mio fratello ricordare la sintassi per pitone scoping, è che ogni volta che c'è un due punti, ha bisogno di rientrare la riga successiva, ed ogni volta che pensa che dovrebbe rientrare, ci sia una migliore due punti ponendo fine alla riga precedente.

Risposto il 15/08/2008 a 23:46
fonte dall'utente

voti
0

La mia esperienza personale è cominciato nel elementare utilizzando il logo Writer (che in qualche modo si è evoluto in Scratch), ha concesso ero un ragazzino e computer in cui non è così impressionante come sono al giorno d'oggi, ma per il momento mi ci sono voluti posti non avevo' t stato prima ... Penso che è come sono stato catturato nel business ... potrei dire che era queste prime impressioni sulla base di tale semplicità e freddezza che ha reso le merci che si attaccano nella mia testa per tutta la vita. Ecco come principi fondamentali nella programmazione di insegnamento dovrebbero essere insegnati ... un semplice processo che anela magia.

Torna al mio primo CS 101, ho iniziato con nozioni di ciò che un algoritmo è stato la costruzione di un Tequila Sunrise (un processo graduale che potrebbe essere ripetuta in qualsiasi momento con gli ingredienti giusti, che si tradurrà nella stessa uscita), da lì passiamo alle funzioni matematiche di base utilizzando Scheme (come EHaskins stava dicendo ... iniziare in piccolo e poi costruire), e da lì a nozioni di loop, logica booleana, strutture e poi costruire in concetti di oggetti e alcune esecuzioni di simulazione .. .

Una delle cose buone di questo approccio è che la lingua non era un obiettivo, ma solo uno strumento nel processo di apprendimento dei concetti e le basi della programmazione (come operatori, funzioni e altro sono in matematica).

IMHO imparare le basi della programmazione e la creazione di una fondazione è probabilmente la cosa migliore che si possa insegnare a tuo fratello, una volta che l'obiettivo è coperto poi u può passare in un linguaggio uso più generale, come pitone e insegnare loro concetti superiori come architettura e design pattern ( renderli naturale nel processo in modo che otterrà l'uso di buone pratiche dai primi stadi e li vedrà come parte del processo) ... siamo lontani dal reinventare l'acqua calda, ma dobbiamo sempre iniziare con la creazione di un incendio.

Da lì in poi il cielo è il limite!

Risposto il 16/08/2008 a 14:56
fonte dall'utente

voti
1

Che ne dite di questo: La deposizione delle uova la prossima generazione di hacker da Nat Torkington.

Risposto il 18/08/2008 a 14:24
fonte dall'utente

voti
0

A mio parere di parte, C è il punto migliore per iniziare. Il linguaggio è piccolo, le sue caratteristiche di alto livello sono onnipresenti e le caratteristiche di basso livello permetterà di imparare la macchina.

Ho trovato la C Primer Plus, 5th Edition molto utile come programmatore inizio con quasi nessuna esperienza di programmazione. Essa non si assume alcuna esperienza di programmazione precedente, divertente da leggere e copre C in profondità (tra cui il più recente standard C99).

Risposto il 19/08/2008 a 07:37
fonte dall'utente

voti
1

C'è un libro intitolato Codice . Non ricordo chi l'ha scritto, ma passa attraverso le basi di un sacco di roba che noi (i programmatori) conosciamo e diamo per scontato che le persone con cui parliamo anche sapere. Tutto da come si fa a conteggio binario a come il lavoro processori. Non ha nulla che fare con linguaggi di programmazione in esso (bene da quello che mi ricordo), ma è un buon primer. Devo ammettere che io sono anche della scuola che crede si deve sapere come il computer funziona per essere in grado di programmare in modo efficace le cose per esso.

Risposto il 19/08/2008 a 13:52
fonte dall'utente

voti
28

Vi consiglio Logo (aka la tartaruga) per ottenere i concetti di base verso il basso. Esso fornisce una buona sandbox con feedback grafico immediato, e si può demostrate loop, variabili, funzioni, condizionali, ecc Questa pagina offre un ottimo tutorial.

Dopo Logo, passare a Python o Ruby. Raccomando Python, in quanto si basa su ABC, che è stato inventato a scopo di programmazione didattica.

Quando l'insegnamento di programmazione, devo secondo suggerimento di EHaskins di progetti semplici e progetti poi complessi. Il modo migliore per imparare è quello di iniziare con un risultato definito e una pietra miliare misurabile. Mantiene le lezioni mirate, permette allo studente di sviluppare le abilità e poi costruire su quelle abilità, e dà allo studente qualcosa da mostrare agli amici. Non sottovalutare il potere di avere qualcosa da mostrare per il proprio lavoro.

In teoria, si può attaccare con Python, come Python può fare quasi tutto. E 'una buona veicolo per insegnare la programmazione orientata agli oggetti e (la maggior parte) algoritmi. È possibile eseguire Python in modalità interattiva come una riga di comando per avere un'idea di come funziona, o eseguire script intero in una sola volta. È possibile eseguire i propri script interpretati al volo, o compilarli in file binari. Ci sono migliaia di moduli per estendere la funzionalità. È possibile effettuare una calcolatrice grafica come quella in bundle con Windows, oppure si può fare un client IRC, o qualsiasi altra cosa.

XKCD descrive il potere di Python un po 'meglio: "Stai volare! Come?"  "Pitone!"

È possibile passare a C # o Java dopo che, anche se non offrono tanto che Python non lo fa già. Il vantaggio di questi è che usano la sintassi in stile C, che molti (oserei dire di più?) Delle lingue usa. Non è necessario preoccuparsi di gestione della memoria ancora, ma è possibile abituarsi ad avere un po 'più libertà e meno handholding dal interprete del linguaggio. Python impone spazi e rientri, che è bello la maggior parte del tempo, ma non sempre. C # e Java consentono di gestire il proprio spazio bianco, pur rimanendo fortemente tipizzato.

Da lì, la standard è C o C ++. La libertà in queste lingue è quasi esistenziale. Si è ora responsabile della propria gestione della memoria. Non v'è alcun garbage collection per aiutarvi. Questo è dove si insegnano gli algoritmi davvero avanzati (come Mergesort e il Quicksort). Questo è dove si impara perché "segmentation fault" è una parolaccia. Questo è dove si scarica il codice sorgente del kernel di Linux e lo sguardo nell'abisso. Inizia scrivendo un buffer circolare e una pila di manipolazione delle stringhe. Poi il tuo lavoro su.

Risposto il 20/08/2008 a 20:09
fonte dall'utente

voti
2

Se il tuo fratello ha accesso a iTunes, si può scaricare il video lezioni di un corso introduttivo di informatica tenuto da Richard Buckland presso l'Università del New South Wales. E 'un istruttore coinvolgente e copre fondamenti del calcolo e del linguaggio C. Se non altro, dire a tuo fratello per riprodurre i vids sullo sfondo e alcuni concetti potrebbero affondare dentro per osmosi. :)

COMP1917 Superiore Computing - 2008 Sessione 1 http://deimos3.apple.com/WebObjects/Core.woa/Browse/unsw.edu.au.1504975442.01504975444

Se il link non funziona, ecco un percorso:

Casa -> iTunes U -> Ingegneria -> COMP1917 superiore Computing - 2008 Sessione 1

Risposto il 20/08/2008 a 20:54
fonte dall'utente

voti
0

Per me, esplorazione e sperimentazione all'interno dell'IDE in sé mi ha aiutato a imparare Java e Visual Basic, ma ho imparato le basi della programmazione nel modo più difficile: Perl 5. Non c'era un IDE libero di allora, quindi significava codici di battitura nel blocco note , salvarlo, e quindi eseguire l'interprete perl.

Direi che IDE rendere l'apprendimento le basi della programmazione più facile. Prova a giocare con strutture di controllo e variabili primi. Dire in Java:

int a = 5;

for (int i = 0; i < a; i++) {
     System.out.println("i is now " + i);
}

In sostanza, semplicemente imparare le strutture di controllo e variabili permetterebbero un principiante di iniziare a scrivere codice già roba di divertimento.

Risposto il 22/08/2008 a 09:32
fonte dall'utente

voti
11

La cosa fondamentale è che la persona in questione ha bisogno di avere qualche problema che vogliono risolvere. Se non si dispone di un programma che si vuole scrivere (e qualcosa di sensato e ben definito, non "voglio scrivere il prossimo Quake!"), Allora non si può imparare a programmare, perché non hai nulla da motivarlo . Voglio dire, si poteva leggere un libro e avere una conoscenza approssimativa della sintassi e la semantica di un linguaggio, ma fino a quando si dispone di un programma che si desidera scritto non avrai mai cogliere l'ortica.

Se questo slancio esiste poi tutto il resto è solo dettagli minori.

Risposto il 22/08/2008 a 09:35
fonte dall'utente

voti
1

Python è facile per i nuovi sviluppatori di imparare. Non si impigliarsi nelle specifiche di gestione della memoria e definizione del tipo. Dive Into Python è un buon guida per principianti di programmazione Python. Quando mia sorella ha voluto imparare programmazione l'ho puntato sulla linea "Head Start" di libri che ha trovato molto facile da leggere e capire. Trovo difficile iniziare solo insegnare a qualcuno, perché non si dispone di un lessico da usare con loro. In primo luogo lo hanno letto qualche libro o tutorial e chiedere di più domande. Da lì è possibile assegnare i progetti e le loro grado. Trovo difficile per insegnare la programmazione perché ho imparato sopra quasi 15 anni di armeggiare intorno.

Risposto il 22/08/2008 a 13:09
fonte dall'utente

voti
1

Project Euler ha una serie di interessanti problemi matematici che potrebbero fornire materiale di grande per un programmatore cominciando a tagliare i denti su. I problemi iniziano facile e aumentare in difficoltà e il web è pieno di soluzioni campione in vari linguaggi di programmazione .

Risposto il 22/08/2008 a 19:27
fonte dall'utente

voti
1

Mi consiglia il libro di Charles Petzold Codice - The Hidden Langauge di Computer Hardware e Software come un eccellente introduzione generale a come i computer di lavoro.

C'è un sacco di informazioni nel libro (382 pagine) e può richiedere un principiante assoluto po 'di tempo per leggere, ma è valsa la pena. Petzold riesce a spiegare molti dei concetti fondamentali di calcolatori e la programmazione dei codici semplici, relè, memoria, CPU ai sistemi operativi e GUI in modo molto chiaro e piacevole. Essa fornirà ogni lettore con un buon senso di ciò che sta realmente accadendo dietro le quinte quando scrivono codice.

Io certamente vorrei che fosse in giro quando ero prima imparare a programmare!

Risposto il 23/08/2008 a 17:14
fonte dall'utente

voti
2

c'è un wikibook che è abbastanza buona per l'apprendimento python .

Non so come i Wikibooks sono per altre lingue, ma io personalmente imparato python dalla wikibook come lo era nel Feb 2007

ps - se non si ha familiarità con Wikibooks , è sostanzialmente la versione di Wikipedia libro di authoring. è una specie di difficile da descrivere, ma se si estrae alcuni dei libri in là vedrai come funziona

Risposto il 26/08/2008 a 02:39
fonte dall'utente

voti
1

Non so per certo quello che sarà il migliore per il tuo fratello, ma so che ho iniziato con pitone. Ho giocato diversi giochi da un'età molto precoce e volevo fare il mio, così mio zio mi ha fatto conoscere Python con il Pygame biblioteca. Ha molti tutorial e rende tutto facile (più facile che openGL a mio parere). Si è limitato a 2d, ma si dovrebbe essere agli inizi semplice comunque.

Mio zio consigliato pitone perché era interessato in esso, al momento, ma mi raccomando, ormai abbastanza esperto, perché è facile da imparare, intuitivo (o intuitivo come un linguaggio di programmazione può ottenere), e semplice (ma certamente non semplicistica) .

Personalmente ho trovato programmazione di base semplicemente per imparare a programmare oscenamente noioso, al momento, ma raccolto notevole entusiasmo come sono andato. Volevo davvero essere l'apprendimento al fine di costruire qualcosa, non solo per imparare.

Risposto il 26/08/2008 a 18:12
fonte dall'utente

voti
0

Il modo migliore per imparare qualcosa è quello di iniziare con la base. È possibile trovare qualsiasi buon libro di testo per spiegare che cosa è la programmazione, la memoria, algoritmi.

Il passo successivo selezionare la lingua che dipende solo da ciò che l'insegnante sa o perché lo studente vuole imparare.

Poi si tratta solo di codice, il codice, il codice. Codice tutti gli esempi a destra dal libro. Poi cambiare leggermente per fare un'altra azione. Imparare a programmare è un processo attivo non è un passivo. Non si può semplicemente leggere C ++ Come programmare da Dietal e poi si aspettano di codice C ++ senza aver fatto attivamente durante la lettura.

Anche se sei un programmatore esperto aiuta a scrivere il codice nel libro per imparare qualcosa di nuovo.

Risposto il 27/08/2008 a 14:25
fonte dall'utente

voti
1

Inizia chiedendogli questa domanda: " Che tipo di cose vuoi fare con il computer "

Quindi scegliere un insieme di attività che si adattano la sua risposta, e scegliere una lingua che permette queste cose da fare. Tanto meglio se si tratta di un semplice (o simplifiable) ambiente di scripting (ad esempio Applescript, Ruby, qualsiasi shell (Ksh, Bash, o anche i file .bat).

I motivi sono i seguenti:

  1. Se è interessato ai risultati, che probabilmente sarà più motivato che se si hanno gli contare i conigli di Fibonacci.
  2. Se sta ottenendo risultati che gli piace, lui probabilmente pensare a variazioni sulle attività create.
  3. Se lo stai insegnando, non sta perseguendo una carriera seria (ancora); c'è sempre il momento di passare alle lingue "forza industriale" più avanti.
Risposto il 28/08/2008 a 22:59
fonte dall'utente

voti
1

Una buona risorsa per insegnare ai giovani è l'eBook gratuito "inventare i propri giochi con Python":

http://pythonbook.coffeeghost.net/book1/IYOCGwP_book1.pdf

Risposto il 01/09/2008 a 12:21
fonte dall'utente

voti
0

Qualcosa da considerare ... non tutti sono in grado di programmazione:

Alcune persone semplicemente non possono ottenere le cose del passato come:

A = 1

B = 2

A = B

(Queste persone saranno ancora che A = 1)

Jeff ha parlato di questo anche. Infatti, il mio esempio è nel link (e ha spiegato, per l'avvio).

Risposto il 04/09/2008 a 19:23
fonte dall'utente

voti
0

Può sembrare strano, ma ho iniziato a scrivere il codice automatizzando i compiti e l'analisi dei dati al mio lavoro precedente. Ciò è stato realizzato registrando quindi studiando il codice di una macro di Excel generato. Naturalmente questo approccio presuppone che si può imparare tramite VB.

Risposto il 05/09/2008 a 01:20
fonte dall'utente

voti
0

Alcune informazioni aggiuntive che qualcuno potrebbe allegare al post precedente di Jason Pratt su Alice ... nello specifico, uno Storytelling Alice variante.

Anche se lo studio ha presentato obiettivi ragazze delle scuole medie, è possibile trovare il white paper scritto da Caitlin Kelleher interessante.

Risposto il 06/09/2008 a 14:30
fonte dall'utente

voti
0

Quella che ho usato con i miei figli è CEEBot . Non è python, ma insegna C / Java stile di programmazione in modo divertente, specie robot-programmazione del gioco. Si rivolge a 10-15 anni di età, ma è davvero un buon uno.

Risposto il 06/09/2008 a 15:42
fonte dall'utente

voti
0

Avere piccoli, gli obiettivi ottenibili è uno dei più grandi modi per imparare tutte le abilità. La programmazione non è diverso. Python è un grande linguaggio per cominciare, perché è facile da imparare, pulito e può ancora fare le cose avanzate. Python è limitata solo dalla vostra immaginazione.

Un modo per ottenere davvero qualcuno interessato è quello di dare loro piccoli progetti che possono fare in un'ora o giù di lì. Quando ho iniziato originariamente python imparare io a giocare Codice Golf . Hanno molte piccole sfide che contribuiranno a insegnare le basi della programmazione. Suggerirei solo cercando di risolvere una delle sfide al giorno e poi giocare con i concetti appresi. Hai avuto modo di rendere l'apprendimento di programmare divertimento o l'interesse sarà perso molto rapidamente.

Risposto il 07/09/2008 a 19:25
fonte dall'utente

voti
1

Se lui è interessato di quanto io non mi preoccuperei concentrandosi su giochi o quant'altro. Avevo appena afferrare quel libro per principianti insegnare a te stesso x 'si stavano per lanciare e dare a lui e fargli lotta attraverso di essa. Forse parlarne dopo e poi fare un altro e un altro. Dopo di allora avevo accoppiare programma con lui in modo da poter imparare come superficiale e zoppo quei libri che leggeva erano. Poi mi piacerebbe iniziare averlo codificare qualcosa per se stesso. Un sito web per tenere traccia statistiche softball o qualsiasi altra cosa lo avrebbe impegnarsi. Per me è stata una banca dati per il vino di nuovo nel corso della giornata.

Dopo di che vorrei iniziare a sui libri reali, il design del dominio, ecc

Risposto il 08/09/2008 a 16:40
fonte dall'utente


voti
12

Pacchetto python vpython - programmazione 3D per Ordinary Mortal ( video tutorial ).

Esempio di codice:

from visual import *

floor = box (pos=(0,0,0), length=4, height=0.5, width=4, color=color.blue)
ball = sphere (pos=(0,4,0), radius=1, color=color.red)
ball.velocity = vector(0,-1,0)
dt = 0.01

while 1:
    rate (100)
    ball.pos = ball.pos + ball.velocity*dt
    if ball.y < ball.radius:
        ball.velocity.y = -ball.velocity.y
    else:
        ball.velocity.y = ball.velocity.y - 9.8*dt

Vpython palla che rimbalza http://vpython.org/bounce.gif

Risposto il 08/09/2008 a 17:26
fonte dall'utente

voti
1

Ho sfogliato i commenti e sembra che nessuno ha menzionato Fondamenti di programmazione da www.CodeBetter.com . Anche se richiede un po 'di fondazione, si può certamente essere un passo successivo nel processo di apprendimento.

Risposto il 09/09/2008 a 23:29
fonte dall'utente

voti
0

Come un non-programmatore di me stesso, ho trovato il libro "Come programmare" dal Pragmatic Programmers molto utile dal punto di vista rudimentale. E 'accessibile e di facile lettura per un principiante. Non si avrà dal principiante all'esperto, ma vi preparerà per che cosa fare una volta che si sceglie una lingua e prende in mano il vostro primo "imparare a programmare in (lingua qui)" libro.

Risposto il 12/09/2008 a 19:51
fonte dall'utente

voti
0

Un paio di altre piattaforme di partenza:

  • Una buona calcolatrice programmabile (che è quello che ho imparato sulla schiena negli anni '70), e poi HP25 HP41, ora TI69, etc.
  • piattaforme di interactive fiction, come "Inform 7" fornire un altro punto su tutta la cosa
  • Flash / ActionScript

Tutti questi sono diverso e coinvolgente, e uno di questi potrebbe innescare il tipo di interesse che è necessario per ottenere un principiante di e funzionante.

LBB

Risposto il 16/09/2008 a 05:51
fonte dall'utente

voti
0

Vi consiglio Pensa Python .

Risposto il 16/09/2008 a 09:31
fonte dall'utente

voti
1

Una volta che ha le basi, mi permetto di suggerire la Torre di Hanoi come un buon esercizio. Mi consiglia di iniziare con il giocattolo di legno se ne avete uno; fargli provare a risolvere il problema da solo e descrivere il suo metodo in modo sistematico. Mostrargli dove entra in gioco la ricorsione. Lui spiegare come il numero di mosse dipende dal numero di dischi. Poi lasciarlo scrivere un programma per stampare la sequenza di mosse, nella lingua di propria scelta.

Risposto il 19/09/2008 a 10:43
fonte dall'utente

voti
0

La tua domanda molto dipende dall'età e l'istruzione di tuo fratello, ma se lui è un bambino / adolescente, consiglierei di fare un po 'di programmazione GUI o programmazione grafica prima (con tela, ecc). Si guarda bene, e si dispone di risultati immediati. Gli algoritmi sono noiosi, e troppo astratto per i giovani (prima di dire 15 anni).

Quando ho iniziato la programmazione su ZX Spectrum (ero come 12 anni), mi piaceva disegnare varie cose sullo schermo, ed è stato comunque interessante. Non ho imparato le tecniche algoritmiche reali fino a quando ero forse 18. Non fatevi ingannare che tale programmazione "semplice" è un inizio sbagliato; l'interesse della persona di apprendimento è la parte più importante di esso.

Quindi, vorrei guardare in PyKDE, PyGTK, PyQt o Python + OpenGL (ci sono sicuramente alcuni tutorial in rete, so di alcuni tra quelli cechi, ma che non vi aiuterà :)).

Naturalmente, se il tuo fratello è più vecchio e ha l'educazione vicino alla matematica, si può puntare direttamente agli algoritmi e così via.

Risposto il 19/09/2008 a 11:08
fonte dall'utente

voti
1

Molto buon video corso introduttivo dalla Stanford University (alcuna conoscenza preliminare richiesto):

Programmazione Metodologia

Vi insegnerà buoni "metodologie" ogni programmatore dovrebbe conoscere e un po 'di programmazione Java.

Risposto il 20/09/2008 a 21:23
fonte dall'utente

voti
0

Qualunque sia la lingua e l'ambiente si sceglie, se lo studente vuole imparare per motivi professionali o per fare programmazione "reale" (qualunque cosa sia), li hanno iniziare a scrivere i loro programmi di avviamento 1 su carta e portarli via a correre. Torna con i risultati di output e / o di errore e li hanno sistemare le cose sulla carta.

Questo non è particolarmente difficile in un primo momento che farlo su schermo e colpire corsa, ma renderà le cose molto più facile quando si inizia a scoprire il meraviglioso mondo degli insetti.

1) breve, "Ciao, mondo!" - programmi di tipo che hanno ancora una certa logica e / o calcoli, fare questo fino ad alcuni programmi che possono avere i bug

Risposto il 21/09/2008 a 21:27
fonte dall'utente

voti
0

Qualunque cosa scrivono, li hanno passo attraverso di essa in un debugger riga per riga alla prima esecuzione. Fate loro vedere per se stessi ciò che il computer sta facendo. Questo richiede un sacco di mistero delle cose, riduce le intimidazioni ( "oh, ogni linea è davvero così semplice!"), E li aiuta a imparare il debug di capacità e riconoscere il motivo per cui gli errori più comuni sono comuni (e perché sono errori)

Risposto il 21/09/2008 a 21:30
fonte dall'utente

voti
0

+1 a Stanford lezioni universitarie. http://see.stanford.edu/see/courseinfo.aspx?coll=824a47e1-135f-4508-a5aa-866adcae1111

Sono semplici, di alta qualità e posso garantire per la loro capacità di insegnare ai principianti (me che sono uno di loro).

Risposto il 03/10/2008 a 10:38
fonte dall'utente

voti
0

Suggerisco " Computer Science Unplugged " come materiale didattico complementare.

Risposto il 11/10/2008 a 22:32
fonte dall'utente

voti
0

"Chi ha paura di C ++" da Heller

Potrebbe valere la pena di un colpo

Risposto il 30/10/2008 a 03:38
fonte dall'utente

voti
0

Microsoft Small Basic è un ambiente di programmazione basato .NET di punizione indirizzato ad essere un "divertimento" ambiente di apprendimento per i principianti. Il linguaggio è un sottoinsieme di VB.NET e contiene anche un oggetto "Tartaruga" familiare dal linguaggio Logo. Il sito contiene un tutorial step-by-step.

Risposto il 18/11/2008 a 00:40
fonte dall'utente

voti
0

Sono d'accordo con superjoe30 sopra, ma non ho abbastanza reputazione ancora lasciare un commento.

Ero professore CS per 4 anni. Le lingue erano di base, e poi Pascal, ma in realtà non importa quale sia la lingua è.

La più grande lezione che ho imparato come un nuovo prof era, per quanto semplice ho pensato che un concetto è stato, non è semplice per un novizio. Mai andare più veloce di quanto il tuo studente può andare. Non posso sottolineare che sufficiente. Vai molto, molto lento.

Vorrei iniziare con cose molto semplici, leggere e stampare, forse un semplice calcolo, solo per ottenere lo studente usato per mettere qualcosa in e ottenere qualcosa. Poi istruzioni IF. Poi molto semplice per i cicli, sempre in termini di qualcosa che lo studente potrebbe scrivere e divertirsi con.

Poi vorrei spendere circa 3 settimane l'insegnamento di una molto semplice sorta di linguaggio macchina per una macchina decimale fasullo chiamato SIMPL, che si poteva single-step. Il motivo per fare questo in modo che lo studente potesse vedere dove la "gomma incontra la strada", che i computer le cose passo dopo passo, e fa una differenza che ordine le cose accadono in. Senza questo, gli studenti tendono a pensare che il computer può sorta di leggere la loro mente e fare tutto in una volta.

Poi di nuovo a Basic. Un paio di settimane su array, perché questo è un grande urto di velocità. Poi file sequenziali, che è un altro speed bump. Quello che intendo per "speed bump" è lo studente può essere navigando lungo sentirsi abbastanza fiducioso, e poi li ha colpito con un concetto come gli array, e sono totalmente perso di nuovo, fino a quando non li facilità attraverso di essa.

Poi, con quelle abilità sotto la cinghia, li avrei scegliere un progetto a lungo termine, perché questo è ciò che rende interessante la programmazione. Senza un uso per esso, è davvero noioso. Vorrei suggerire una varietà di progetti, come i giochi, programmi di contabilità, programmi scientifici, ecc E 'davvero bello vederli ottenere acceso. Spesso mi avrebbero chiedere aiuto, e che è grande, perché si sa che stanno imparando.

Mentre stavano facendo i loro progetti, vorremmo continuare a coprire più avanzate tecniche di programmazione - la ricerca, l'ordinamento, la fusione, come fare un semplice database, ecc

In bocca al lupo. L'insegnamento è un lavoro duro ma soddisfacente quando si vede gli studenti crescono.

Risposto il 18/11/2008 a 01:06
fonte dall'utente

voti
1

Libro: La programmazione Java per bambini, genitori e nonni (PDF)

Non ho esperienza personale circa l'apprendimento utilizzando quel libro, ma sembra essere bello perché va rapidamente a produrre qualcosa di visibile, e non spendere troppo tempo con i dettagli sintattici Itty Bitty. Ha qualcuno qui provato con quel libro?

Risposto il 14/02/2009 a 12:47
fonte dall'utente

voti
12

Iniziare con la grafica della tartaruga in Python.

Vorrei utilizzare la grafica della tartaruga, che viene fornita di serie con Python. E 'visiva, semplice e si potrebbe utilizzare questo ambiente per introdurre molti concetti di programmazione come le chiamate di iterazione e di procedura prima di salire troppo in sintassi. Si consideri il seguente sessione interattiva in python:

>>> from turtle import *
>>> setup()
>>> title("turtle test")
>>> clear()
>>>
>>> #DRAW A SQUARE
>>> down()        #pen down
>>> forward(50)   #move forward 50 units
>>> right(90)     #turn right 90 degrees
>>> forward(50)
>>> right(90)
>>> forward(50)
>>> right(90)
>>> forward(50)
>>>
>>> #INTRODUCE ITERATION TO SIMPLIFY SQUARE CODE
>>> clear()
>>> for i in range(4):
        forward(50)
        right(90)
>>>
>>> #INTRODUCE PROCEDURES   
>>> def square(length):
        down()
        for i in range(4):
            forward(length)
            right(90)
>>>
>>> #HAVE STUDENTS PREDICT WHAT THIS WILL DRAW
>>> for i in range(50):
        up()
        left(90)
        forward(25)
        square(i)
>>>
>>> #NOW HAVE THE STUDENTS WRITE CODE TO DRAW
>>> #A SQUARE 'TUNNEL' (I.E. CONCENTRIC SQUARES
>>> #GETTING SMALLER AND SMALLER).
>>>
>>> #AFTER THAT, MAKE THE TUNNEL ROTATE BY HAVING
>>> #EACH SUCCESSIVE SQUARE TILTED

Nel tentativo di realizzare gli ultimi due incarichi, avranno molti tentativi falliti, ma i fallimenti saranno visivamente interessante e impareranno in fretta mentre cercano di capire perché essa non ha elaborato quello che si aspettavano.

Risposto il 25/02/2009 a 20:00
fonte dall'utente

voti
1

una volta che li hai insegnato come programmare, che potrebbero voler imparare a sviluppare un software .. per che penso di Greg Wilson Software Carpenteria corso è fantastico .. utilizza anche Python come linguaggio dello studente.

Risposto il 18/03/2009 a 13:51
fonte dall'utente

voti
1

Credo che Python è un linguaggio veramente grande per iniziare con: :-)

Vi suggerisco di provare http://www.pythonchallenge.com/

È costruito come una piccola avventura e ogni Solutions ti lega ad un nuovo bel problema.

Dopo soluting il problema si ottiene l'accesso a un bel Forum per parlare del tuo codice e arrivare a vedere quello che gli altri creati.

Risposto il 08/07/2009 a 08:57
fonte dall'utente

voti
1

Posso consigliare il mio progetto, PythonTurtle .

Sommario:

PythonTurtle si sforza di fornire il modo più bassa soglia di imparare Python. Studenti comando una shell Python interattiva (simile all'ambiente sviluppo IDLE) e utilizzare funzioni Python per spostare una tartaruga visualizzata sullo schermo. Una schermata di aiuto illustrata introduce lo studente ai principi fondamentali di programmazione Python, dimostrando come spostare la tartaruga.

Ecco come si presenta:

alt text http://www.pythonturtle.com/screenshot.gif

Risposto il 04/08/2009 a 20:42
fonte dall'utente

voti
2

Credo che Python è una grande idea. Io gli avrei dato un paio di incarichi di base da fare in proprio e dirgli che qualsiasi vicoli ciechi che colpisce probabilmente può essere risolto da un viaggio in google. Per me, almeno, risolvere un problema sul mio sempre reso bastone meglio di qualcuno che mi dice la soluzione.

Alcuni progetti possibili (in nessun ordine particolare):

  • simulatore coin flip. Lasciare l'input dell'utente un numero desiderato di prove per pinneggiata moneta. Eseguirlo e visualizzare i risultati insieme alla percentuale di testa o croce.

  • Fare un convertitore di temperatura con un menu che prende l'input dell'utente di scegliere quale tipo di conversione che l'utente vuole fare. Dopo aver scelto la conversione e farlo, dovrebbe tornare al menu principale.

    Ecco un esempio di un convertitore esteso con la stessa idea: http://pastebin.org/6541

  • Fare un programma che prende un input numerico e visualizza il grado lettera che si tradurrebbe in. Si finirà per valutare l'ingresso contro se e elif dichiarazioni di trovare dove si inserisce.

  • Fare un semplice quiz che passa attraverso diverse a scelta multipla o compilare le domande in bianco. Al termine verrà visualizzato come l'utente ha fatto. Si possono raccogliere tutte le domande che vuole.

  • Prendete un ingresso di alcuni (presumibilmente grande) numero di monetine e convertirlo in tagli più grandi. Ad esempio, 149 centesimi = 1 dollaro, 1 quarto, 2 Dimes, e 4 centesimi.

  • Creare un semplice gestore di lista. Essere in grado di aggiungere / eliminare gli elenchi e aggiungere / eliminare le voci in tali elenchi. Ecco un esempio di un manager lista di Natale: http://pastebin.org/6543

  • Creare un programma che costruirà e quindi verificare se i numeri inseriti formano un quadrato magico (con una matrice 2D). Ecco alcuni esempi di codice, ma in realtà dovrebbe stampare la piazza ad ogni passo al fine di mostrare in cui l'utente è in termini di buliding piazza: http://pastebin.org/6544

Vorrei anche suggerire di fare alcune cose con xTurtle o un altro modulo di grafica per mescolare le cose e gli impediscono di ottenere noioso. Naturalmente, questo è molto programmazione pratica e non la scripting che un sacco di gente sarebbe davvero utilizzare Python per, ma gli esempi che ho dato sono più o meno direttamente preso da quando stavo imparando via pitone e ha funzionato alla grande per me. In bocca al lupo!

Risposto il 04/08/2009 a 21:20
fonte dall'utente

voti
1

Prova a trovare una copia di Why (Poignant) Guida a Ruby on-line. Il sito originale non è in linea, ma sono sicuro che ci sono un paio di specchi là fuori. Non è la tua guida tipico di programmazione; mette un giro unico (e divertente) per imparare una nuova lingua che potrebbe soddisfare il vostro amico. Per non parlare, Ruby è una grande lingua da imparare con.

Risposto il 26/08/2009 a 14:22
fonte dall'utente

voti
0

Utilizzare vera analogia mondo e personaggi immaginari per insegnare loro programmazione. Come quando insegno persone su variabili e comandi di controllo, ecc

Di solito inizio con l'esempio calcolatrice. Dico immaginare u avere una scatola per ogni variabile e u avere schede 10 carte con i numeri 0 - 9 stampate su di essi. Dire che la scatola può contenere un cartone alla volta e versi simile a spiegare come funzionano gli elementi di programmazione

E enfasi su come funziona ogni operatore .. come il '=' operatore semplice calcola sempre il lato destro prima in un unico valore. e mettere il valore nella casella Nome "NUM_1" (che è il nome della variabile)

Questo è stato molto molto efficace, in quanto sono in grado di immaginare il flusso molto rapidamente.

Risposto il 18/12/2009 a 13:59
fonte dall'utente

voti
2

Basta fare il divertimento!

Sorprendentemente Scala potrebbe essere il più facile se si tenta Kojo

Risposto il 19/03/2010 a 12:44
fonte dall'utente

voti
2

Se il tuo fratello ama i puzzle, mi sento di raccomandare Python sfida . Io non lo uso come strumento didattico formale, in un 1 contro 1 tutorial, ma è qualcosa che può fare quando non sei insieme per sfidare se stesso e divertirsi un po '.

Risposto il 06/04/2010 a 23:35
fonte dall'utente

voti
1

Academic Earth offre collegamenti per liberare i corsi informatica presso le migliori università. Hanno una sezione orientata verso Beginning Computer Science. Le lingue insegnate nei corsi che iniziano variano:

  • MIT - Introduzione alla Computer Science e Programmazione - Python
  • Stanford - Computer Science I: programmazione Metodologia - Java
  • Harvard - Introduzione alla Computer Science I - C (obiettivo principale), con pochi altri spruzzato in buona misura (ad esempio, SQL, PHP, LISP, Assembler, etc.)
  • Berkeley - un dialetto del linguaggio Lisp
Risposto il 17/04/2010 a 11:33
fonte dall'utente

voti
8

Non so se qualcuno ha parlato di questo qui, ancora, ma si potrebbe desiderare di controllare Zed Shaw 's Python the Hard Way Learn

Spero che questo ti aiuti

Risposto il 18/10/2010 a 23:42
fonte dall'utente

voti
2

Python Sfida

Risposto il 08/12/2010 a 15:58
fonte dall'utente

voti
2

Dopo aver attraversato un paio di liberi e-book, ho trovato il miglior libro per imparare a programmare è stato Head First Programming pubblicato da O'Reily Press. Esso utilizza Python come linguaggio e ti dà i programmi per lavorare fin dall'inizio. Sono tutti più interessante il fatto che 'Ciao mondo'. Vale la pena i soldi che ho speso su di esso, e dal momento che è stato fuori per un po 'si può essere in grado di trovare una copia usata più conveniente su eBay o Amazon.

Risposto il 03/01/2011 a 00:54
fonte dall'utente

voti
0

Chiedi al tuo fratello, se c'è qualcosa che gli piacerebbe fare un programma che fare o inventare un progetto per lui che si pensa di lui avrebbe interesse.

Qualcosa in cui può sapere che cosa l'uscita dovrebbe essere e lo puntare ai materiali (on-line o in stampa) pertinenti al progetto. Se sta entrando in pitone o la programmazione 'freddo' essere paziente mentre lavora la sua strada attraverso la comprensione delle nozioni di base come sintassi, errori, scoping e essere pronto a farsi da parte e lasciarlo correre e fare i propri errori quando si inizia a vedere la luce lampadina andare avanti sopra la sua testa.

Risposto il 12/05/2011 a 12:28
fonte dall'utente

voti
0

Mi raccomando di programmazione Python: An Introduction to Computer Science 2nd Edition da John Zelle . Si è orientata verso i principianti, e si occupa della semantica della programmazione. Dopo la lettura si sarà in grado di raccogliere altre lingue molto più velocemente a causa della semantica approccio di Zelle vs. sintattica. Controlla!

Risposto il 29/05/2011 a 02:05
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more