Insegnamento della programmazione a un laureato non laureato [chiuso]

5

Ho un paio di amici interessati alla programmazione di computer, ma sono laureati non-CS; alcuni di loro hanno pochissima esperienza nel campo del testing del software (alcuni di loro hanno seguito alcuni corsi base di test del software). Ho intenzione di lavorare con loro sull'insegnamento della programmazione di base dei computer e dei fondamenti dell'informatica (strutture dei dati, ecc.).

Le mie domande sono;

  • In che lingua devo iniziare?
  • Quali sono gli argomenti di informatica fondamentali che dovrei coprire prima di buttarli nella programmazione del computer?
  • Quali letture posso incorporare per rendere l'argomento interessante e non travolgente?
  • Se vogliamo passare un anno, quali argomenti dovrebbero avere la priorità e devono essere coperti in 12 mesi?

Ancora una volta, questi non sono esperti di informatica e voglio mantenere l'apprendimento il più divertente possibile.

Grazie a tutti.

    
posta AbstractRated 13.02.2011 - 02:08
fonte

6 risposte

4

I miei 2 centesimi:

What language should I start with?

Perl, o in realtà, Python. Nella mia esperienza sono i più facili da configurare, riprendere e spostarsi, mentre l'implementazione di base dei linguaggi di programmazione è lontana.

What are essential computer science topics that I should cover before jumping them into computer programming?

Prima di iniziare a programmare? Vorrei entrare in costrutti di programmazione di base come diversi tipi di variabili (o nel caso di python e perl, diversi tipi di dati), come numeri interi, numeri in virgola mobile e stringhe, per iniziare. Quindi spostati nei costrutti di controllo e di flusso come le istruzioni e i cicli if-then-else. Questi sono essenziali per quasi tutti i moderni linguaggi di programmazione. Quindi spostati in strutture di dati in seguito, sebbene menzioni elenchi e matrici, poiché in Python è quello che utilizzerai di più.

What readings can I incorporate to make the topic interesting and non-overwhelming? If we want to spend a year on it, what topics should take priority and must be covered in 12 months?

Dopo averli introdotti in alcune lingue e aver scritto piccoli programmi in essi (Hello World, aggiungendo numeri, manipolando stringhe, aprendo, leggendo e scrivendo file) chiedi loro di scegliere una lingua che preferiscono e di farli costruire qualcosa che gli piace con esso. Prendi un libro o fornisci risorse online a cui rivolgersi per chiedere aiuto.

Again, these are non computer science folks, and I want to keep the learning as much fun as possible.

Porta in campo la (più) realtà possibile. Learning hashes (dizionari)? Porta in criptologia di base. Imparare gli alberi? Accedi a Facebook e alle reti di amici. Algoritmi di apprendimento? Scrivi un programma che guida l'utente a preparare una pizza (un algoritmo è semplicemente una ricetta). Visualizza strutture di dati come alberi quando possibile.

Una volta che i tuoi amici si sentono a proprio agio nella programmazione in una lingua a loro scelta, devi lasciare che la parte "divertente" vada un po 'per entrare in concetti di livello superiore. La programmazione è molto di divertimento, ma non è all divertente, ci sono frustrazioni che possono emergere, proprio come in qualsiasi altra cosa potresti imparare.

    
risposta data 13.02.2011 - 06:30
fonte
2

Se non desideri esplicitamente scegliere un linguaggio commerciale (C / C ++ / C # / PHP / Ruby / Java) e vuoi mantenere il livello di divertimento, perché non andare con Logo ?

    
risposta data 13.02.2011 - 02:32
fonte
1

Vai con C o forse Python. Insegnare loro solo i costrutti di base come if-else e loop e quindi dare loro delle sfide per ottenere delle risposte. Fatelo per 3-4 mesi. Se sono ancora interessati, passate a cose più difficili. Iniziare a parlare di libri solo dopo questa fase e anche solo se lo desiderano.
I libri possono renderlo un po 'noioso e tecnico. Quello di cui avresti bisogno è sviluppare il loro interesse e fornire loro un mezzo per realizzarlo.
Aqua ha alcune buone idee per renderlo divertente. Ma ricorda di andare piano e vai piano. Raccogli cose che possono essere implementate senza troppa confusione o qualcosa con cui hai esperienza. Questo è vitale.

    
risposta data 13.02.2011 - 09:28
fonte
1

Vorrei andare con Ruby. È divertente e puoi fare un sacco di cose velocemente. O se vuoi usare un libro guarda "Head First programming" che usa Python, che è anche una buona scelta.

Se sono un esperto di matematica, prendi "The Little Schemer" che è davvero un bel libro.

    
risposta data 13.02.2011 - 10:55
fonte
0

Evita di insegnare informatica, alg e amp; struttura dei dati, ecc. A meno che non siano già dei guru della matematica, questi concetti rischiano rapidamente di desiderare di programmare.

La programmazione professionale non è affatto simile al mondo accademico. È più focalizzato sul cliente e sui requisiti di qualsiasi altra cosa. Essendo questo web dev è così popolare (controlla la tua area locale), l'HTML è un ottimo punto di partenza. L'HTML ha una barriera bassa all'ingresso sia per difficoltà che per investimento monetario. Da lì puoi portarli in javascript e infine su un livello più basso. come .NET.

    
risposta data 13.02.2011 - 03:07
fonte
0

Dai un'occhiata a Scratch - link - che ti consente (oltre a numerosi studenti di scuola) di passare direttamente alla programmazione.

Sembra semplice ma consente di comprendere la programmazione multi-thread, le strutture e la maggior parte delle altre cose complesse, per poi continuare nella programmazione reale quando si conosce meglio la mentalità necessaria.

    
risposta data 13.02.2011 - 10:14
fonte

Leggi altre domande sui tag