Newsgroup: it.comp.lang.c++
Titolo: C++ e didattica

Sono un insegnante e volevo porvi una domanda: č pensabile di proporre a 
scuola, 3 liceo, lo studio del c per arrivare alla fine dell'anno a 
vedere le classi? E' un massacro? Oppure č piů sensato e didattico 
partire da un linguaggio tipo basic (non visuale), pascal, python, ....?
Ciao

 le classi? E' un massacro?
Secondo me le classi non sono un concetto complesso da capire, soprattutto
se non sei gia' viziato da anni di programmazione procedurale. Se ti serve
introdurre un linguaggio oo potresti pensare anche al java. La sua estrema
semplicita' sintaticca ti permetterebbe di concentrarti maggiormente sui
concetti della oop.
Ciao,
fadeh

 concetti della oop.
Il dubbio non era l'opportunità o meno di introdurre le classi, ma se 
era il caso di farlo attraverso il C++ vista la facilità di riempire il 
codice di errori non facilmente debuggabili soprattutto per degli 
studenti. Non è preferibile il C# al Java per restare su linguaggi similari?

 vedere le classi? E' un massacro?
Come già detto da altre parti: sì, è un massacro e rischi di far
perdere l'interesse per la programmazione al tuo pubblico.  Devi
scartare il C, come linguaggio didattico.  Affidati a qualcosa di più
semplice e immediato come il Pascal o ancor meglio Python.

 partire da un linguaggio tipo basic (non visuale), pascal, python, ....?
Secondo me, soprattutto se si tratta di ragazzi che non hanno mai
programmato, sarebbe meglio partire con Python, sia perche' e' piu'
facile da imparare del C++, sia perche' ha una libreria standard piu'
ampia e piu' pratica da usare, che puo' aiutare a raggiungere risultati
tangibili con relativamente poco sforzo.
Eviterei il Java che tende a portare i principianti all'aberrazione che
la programmazione ad oggetti sia l'unico paradigma esistente.
Ciao,
Nicola


Ripetevo la domanda già fatta nel ng di python per avere un giudizio da 
persone con altra formazione, esperienza e filosofia. Poi è chiaro che 
alla fine la decisione la prenderò in base ad una serie di fattori che 
saranno anche prettamente ambientali e relativi al contesto 
docente(ovvero me)/scuola/alunni.
Ciao e comunque grazie ancora dei vari giudizi e consigli.

 la programmazione ad oggetti sia l'unico paradigma esistente.
Mmmhh e valutare qualcosa di funzionale come il lisp?
Ciao e grazie.

 Mmmhh e valutare qualcosa di funzionale come il lisp?
Hai letto "Structure and Interpretation of Computer Programs"? Se lo
hai letto, sei in grado di risponderti da solo, altrimenti scarterei
l'idea a priori.
Direi pero' che il punto che devi chiarirti e' che scopo ti prefiggi
con l'insegnamento della programmazione e non trascurerei l'aspetto di
che cosa conosci meglio tu, che dovendo presumibilmente insegnare a dei
principianti assoluti puo' risultare piu' importante della scelta del
linguaggio.
Meglio insegnare bene Visual Basic che insegnare male C++.
Ciao,
Nicola

> Meglio insegnare bene Visual Basic che insegnare male C++.
Il libro con cui ho attaccato è il Bellini Guidi sul linguaggio C, 
introducendo il concetto di algoritmo e la macchina di Turing. L'idea 
iniziale era continuare con il C per alla fine sfociare nel C++. 
Preferivo non usare ambienti troppo visuali perché mascherano troppo 
secondo me quello che accade all'interno di un PC, sono anagraficamente 
della vecchia guardia, anche se ho lavorato con il VB. Andando molto sul 
semplice preferei allora introdurre il Basic classico, con tutti i 
crismi della strutturazione e della dichiarazione delle variabili (alla 
Pascal), del resto c'è FreeBasic con FBide che funzionano molto bene e 
sono molto ben documentati, cosa che purtroppo non vale per il FreePascal.
Ciao grazie e scusate se stiamo andando nell'OT.

Hobbit ha scritto:
guarda, anche se non insegno programmazione ma chimica, ti do la 
mia opinione (di insegnante)
a prescindere dalla scelta del linguaggio, considera anche (di 
certo lo farai già, penso, ma cmq ...) :
1) disponibilità di ambienti di sviluppo FREE, non solo e non 
tanto per i computer di scuola, ma anche per quelli di casa. La 
programmazione relegata esclusivamente alle ore curricolari e 
priva di sperimentazioni in proprio, imho è condannata 
all'inefficacia con qualsiasi linguaggio e qualsiasi docente che 
non il padre eterno in persona
2) anche se sono collaterali, la piattaforma su cui gli 
eseguibili dovranno girare e su cui gira l'IDE (cioè l'OS) 
dovrebbero tenere conto, sempre imho, di che genere di O.S. 
hanno prevalentemente gli studenti a casa, sempre nella medesima 
ottica di rendere agevoli le sperimentazioni casalinghe, nel 
tempo libero.
3) una buona libreria di base, ma non tanto di algoritmi (che 
immagino porrai come obiettivo per gli allievi), ma proprio come 
facilities grafiche e/o interfacce ragionevolmente amichevoli, 
imho è un aiuto enorme, proprio perché dai motivazione a un 
ragazzo convincendolo che potrà essere in grado di scriversi 
programmi realmente utili e anche per se stesso. A chi mai, a 
parte uno impallato di suo, può interessare molto prodursi 
programmi con interfaccia a carattere (console) ? Non si tratta 
di svendersi per poco, ma credo seriamente che il punto più 
critico (il più forte se si sviluppa e l'anello debole se manca) 
è l'interesse e la volontà di sperimentare a casa. Per suscitare 
curiosità ci vuole il premio di creare cose usabili, utili, e in 
tempi ragionevoli. Un qualche aiuto in tal senso è consigliabile.
Nel merito, conosco troppo pochi linguaggi e tra loro simili per 
dare pareri autorevoli (in pratica una infarinatura di pascal e 
fortran 77, ormai sbiadita, visual basic, C e C++ .... 
l'assembler lo escludo, e forse lo fanno in "sistemi").
In sostanza sono tutti solo o prevalentemente 
procedural-dichiarativi, eccetto il C++ che è polivalente.
Imho come primo linguaggio conviene usare il subset procedurale 
del C++ (lasciando intendere che esistono parole chiave da 
esplorare con possibilità enormi), che poi è una sorta di 
"better C".
Python non lo conosco, e quindi non so valutare il caso. Da 
quanto si è detto delle ricche librerie, parrebbe soddisfare 
alcuni dei punti che sottolineavo sulla produzione di codice 
potenzialmente utile e pappabile, e non solo vuoti esercizi 
didattici che potrebbero essere percepiti come non utili
ciao
Soviet_Mario

 Ciao grazie e scusate se stiamo andando nell'OT.
Pascal...object pascal .... e poi o delphi o lazarus... secondo me č un 
ottimo linguaggio strutturato, con molta letteratura e con lazarus e 
free pascal ne hai anche una implementazione gratuita ...(come 
ovviamente per il C con gcc )

 ovviamente per il C con gcc )
Questa secondo me è la nota dolens, freepascal, lazarus e le varie 
librerie sono poco documentati. La grande letteratura si riferisce 
solamente al tp e comunque al pascal e object pascal come linguaggio.
Ciao

 Soviet_Mario
Ho fatto molti esperimenti, ho installato di tutto ed alla fine la 
miglior combinazione ambiente, semplicità di sviluppo e buone librerie 
di quelli citati sopra è il freebasic+freeide che lo hanno trasformato e 
somiglia per alcuni versi al c, ma ho paura un po' del pregiudizio da 
cui è perseguitato tutto ciò che deriva dal vecchio basic. La cosa che 
mi colpisce è che con poca fatica ci si può fare una widget gtk che 
contiene un rendering opengl, oppure in tre righe ci si intefaccia ad 
allegro e molto altro. Perciò avrei facilità a porre degli obiettivi 
facilmente realizzabili dagli studenti preoccupandomi della parte 
algoritmica.
Ciao e scusa la lunghezza e probabilmente le panzane che ho detto.
Chiedo scusa al ng se sono ancora ot.
Ciao

sono molto ben documentati, cosa che purtroppo non vale per il FreePascal.
Perdonami, ma cosa c'è da documentare per il Free Pascal ? Riguardo il
linguaggio Pascal, internet è stracolma di documentazione.  Si tratta,
alla fine, di un compilatore a riga di comando che traduce un
linguaggio molto simile a Delphi.
Di quali informazioni specifiche avresti bisogno ?

 cui è perseguitato tutto ciò che deriva dal vecchio basic. 
mi passeresti eventualmente il link da cui l'hai scaricato ? 
Anche se lo detesto razionalmente, emotivamente sono ancora 
legato al basic (ripensandoci manco l'avevo citato, eh eh he)
ciao
Soviet:Mario


 Soviet:Mario
http://www.freebasic.net/
http://fbide.freebasic.net/
La doc. del linguaggio è notevole, per quanto riguarda le lib. ad ex. 
allegro uso quella per il c che ha una corrispondenza di 1:1. Se sei 
nostalgico, quando vedrai certe primitive, oppure il peek/poke ti 
verranno le lacrimuccie. :)
Ciao

 Di quali informazioni specifiche avresti bisogno ?
Come dicevo il pascal in se stesso è documentato, ma le varie units no. 
Lazarus men che meno. Immedesimati, pensa che un ragazzino a casa se lo 
installa e vuol capire cosa può farci, cosa si legge?
Ciao

 qualsiasi docente che non il padre eterno in persona
Mi inserisco anche se ho poca voce autorevole in materi...ci sono LiveCd 
di Linux che puoi liberamente scaricare.
In questo modo x fare lezione dovrebbero solo riavviare il PC e inserire 
la Live Distro senza dover installare nulla.
Si evita anche di dover perdere tempo in installazioni su molti PC ed 
eventuali danni dovute a programmazioni "avventate".
Il costo sarebbe di tanti CD quanti sono gli alunni.
Dentro alle live c'è sicuramente C, C++, Java e Python a seconda di 
quella che scegli.
Scusa il commento.Ciao

 quella che scegli.
La conversazione non è privata! :)
La cosa interessante di questo modo di procedere sarebbe far 
sperimentare gli studenti nuovi ambienti, come linux, che risultano 
sicuramente stimolanti dal punto di vista della programmazione in cui le 
risorse sono in genere open. Lo svantaggio però è che a questi livecd 
che si scaricano per esperienza personale manca sempre il tool o la 
libreria che mi interessa e perciò andrebbe preparato su misura. Altro 
aspetto negativo è il funzionamento un po' lento, mi aspetto che ogni 
volta che viene lanciata una qualche compilazione il cd cominci a frullare.
Grazie per il suggerimento, ne terrò conto.

 Ciao

 wrote:

Si. IMHO č un massacro. IMHO la scelta migliore fra quelli che hai
elencato č Python.
-- 
blog:  
http://www.akropolix.net/rik0/blogs
 | Uccidete i filosofi,
site:  
http://www.akropolix.net/rik0/
      | tenetevi riso e
forum: 
http://www.akropolix.net/forum/
     | bacchette per voi.

installa e vuol capire cosa può farci, cosa si legge?
Un manuale sul Pascal e comincia a scrivere programmini banali.

 elencato è Python.
E fra quelli che non ho elencato?

 E fra quelli che non ho elencato?
Python. Complessivamente Python. Potresti prendere in considerazione
anche Ruby (se non ti piace troppo la sintassi di Python -- che invece a
me piace tantissimo ).
Ma se hai esperienza in Python, lo insegnerai certamente meglio. Direi
che Python č quello che fa per te.
Per altro c'č sempre tempo. Ma insegna loro a programmare *in Python*.
Non in un sottoinsieme piů o meno language independent di Python.
