Newsgroup: it.scienza.informatica
Titolo: didattica dell'informatica

salve a tutti,
   mi chiedevo secondo voi  quale fosse la maniera più proficua per la
didattica di un linguaggio di programmazione... Mi trovo ad organizzare
un corso universitario e volevo cambiare radicalmente modo di
insegnamento rendendo la mia classse una sorta di "ambiente di lavoro",
dove l'apprendimento del linguaggio vada di pari passo con la
realizzazione di un progetto (tutto sotto la mia supervisione). Che ne
pensate? commenti e  suggerimenti sono bene accetti!
good day,
   nelson

 ha scritto nel messaggio 
news:1112088011....@f14g2000cwb.googlegroups.com...

    Ho insegnato programmazione VB e C++, pur non essendo professore. Quello 
che ho notato è che l'insegnamento legato allo sviluppo di un progetto deve 
sicuramente essere supportato e preceduto da una buona (e noiosissima!) base 
teorica. Personalmente, partivo da cose banali come il concetto di variabili 
e flow-chart (magari mi spingevo, ma più avanti, nel sistema binario, porte 
and, flip-flop ed altre amenità...). Passavo poi per esercizi di 
pseudo-programmazione (del tipo: dare le istruzioni a qualcuno per 
raggiungere la cattedra, a partire dal proprio banco). Fatto questo, nel 
caso del VB, mostravo come fare un banale programma che faceva qualcosa, 
premendo un "bottone". Poi mi sbizzarrivo mostrando come scrivere un 
semplice paint, che risulta divertente ed istruttivo. Una volta che gli 
studenti prendono confidenza col sistema di sviluppo, li si incoraggia a 
modificare il programma da soli, per cambiare i colori, introdurre altri 
strumenti (per disegnare cerchi ecc.), salvare il file e quant'altro.
    Passare allo sviluppo di un progetto è possibile solo quando ogni 
studente è in grado di utilizzare l'ambiente di sviluppo ed ha raggiunto la 
"forma mentis dello smanettone". In questo modo, ci si trova di fronte ad 
una classe di studenti che esplorano la programmazione, invece che 
semplicemente apprenderla.
Stefano 

Innanzitutto secondo me dovresti concentrare il tuo corso più sulla 
realizzazione di flow-chart (o diagrammi di flusso) riguardanti un progetto 
e successivamente parlare di programmazione pratica...
Ti dico questo perchè sono uno studente di ing informatica e noi di flow 
chart ne facciamo davvero pochi e poi i prof pretendono che facciamo 
progetti che neanche lo Zio Bill sa fare...
Parti dal flow chart e poi passo passo introduci la programmazione al 
computer 

:
|| volevo cambiare radicalmente
|| modo di insegnamento rendendo la mia classse una sorta di "ambiente
|| di lavoro", dove l'apprendimento del linguaggio vada di pari passo
|| con la realizzazione di un progetto (tutto sotto la mia
|| supervisione).
Penso che avere un esercizio "guida" da portare avanti per tutta la durata
del corso sia una buona idea ma che per organizzare il lavoro in gruppo per
progetti un po' più complessi ci sia bisogno di una buona dose di nozioni di
ingegneria del software e sopratutto tanto lavoro di coordinamento.
Se il corso è rivolto a studenti al "primo linguaggio" e senza nozioni di
*organizzazione* del software penso che troverai parecchie difficoltà.
Ma tutto è possibile.
-- 
^I^caro
en_UK : 
http://icaro.blogspot.com
         [perhaps technical]
it_IT : 
http://preponderante.splinder.it
  [certamente personale]
                    "Dove mai andiamo?"......"Sempre a casa"....


Si tratta di insegnare l'uso di un nuovo linguaggio a persone
che hanno gia un buon background in ambito di informatica
oppure devi in pratica anche insegnare i fondamenti
della programmazione ?
Se si tratta anche di insegnare le basi IMHO ti conviene prima
dare un occhiata alle metodologie seguite da altri, tra questi
l'esempio piu fulgido e' costituito (sempre IMHO)
da come fanno al MIT:
http://www.htdp.org
   (How to Design Programs)
e
http://www.drscheme.org
 (il tool di sviluppo di solito abbinato)
In pratica per insegnare i fondamenti della programmazione
hanno puntato su un linguaggio "semplice" (ma sufficientemente potente)
e su un tool di sviluppo che riducessero il tempo e le risorse mentali
richieste per imparare ad utilizzare "gli attrezzi" (linguaggio ed
ambiente di sviluppo) in modo da focalizzare l'attenzione degli studenti
su quello che e' veramente importante per essere in grado di
programmare in modo efficace.
Una volta che si acquisiscono i concetti base e che li si sa applicare
il linguaggio utilizzato ed i tool di sviluppo sono di importanza
relativamente secondaria.
Se invece si tratta "solo" dell'apprendimento di un nuovo linguaggio
dedica almeno un 30% della del corso all'apprendimento della
"filosofia di base" del linguaggio e solo dopo quando questa e' chiara
inizia a tirare in ballo un progetto da realizzare.
Es.1: Se devi insegnare la programmazione in Haskell a gente che conosce
       solo C++ o Java devono prima aver ben chiare
       le basi della programmazione funzionale oppure te li ritroverai
       che lo usano come fosse una specie di preprocessore per C++.
L. Micheletto