Newsgroup: it.comp.lang.visual-basic
Titolo: VB6 nelle scuola media inferiore per insegnare a programmare

Un docente di scuola media inferiore mi aveva chiesto un parere circa un 
linguaggio di programmazione che egli potesse usare per insegnare ai 
suoi alunni a programmare.
Con i tempi che corrono, c'e' davvero l'imbarazzo della scelta...!
Pero', pensavo che, considerando che costoro operano principalmente in 
ambiente Windows, e che per fare una finestra ad es. con C++ (ma anche 
con Java) bisogna avere delle basi di OOP (classe, metodo, a volte anche 
design-patter come "action listener", etc.), invece con VB6 una semplice 
GUI la si fa' in pochi minuti senza grosse basi teoriche, avevo pensato 
a quest'ultimo ambiente [= VB6].
In questa maniera - credo - il docente potrebbe concentrarsi su 
algoritmi e su argomenti piu' di base, come strutture di controllo come 
If, For, il concetto di suddivisione di un problema in sotto-problemi di 
complessita' decrescente da implementare in procedure, etc. e i ragazzi 
potrebbero intanto gia' "vedere" un programma prodotto da loro, con 
finestre, bottoni, etc.
Invece, ad es. usando Java o C++, bisognerebbe prima fare tutta una 
parte sulle basi del linguaggio e dell'OOP (con programmazione 
"console" testuale), e solo *alla fine* si puo' introdurre l'uso di una 
qualche libreria grafica per finestre, GUI e simili.
Ora, mi piacerebbe sapere - se qualcuno avesse tali informazioni - :
1. Se e' possibile ancora acquistare VB6 oppure si e' costretti 
attualmente ad acquistare 
VB.NET
 (che secondo me sara' anche molto piu' 
"elegante" del VB6...pero' e' anche molto piu' complesso, e si perdono i 
vantaggi che dicevo sopra).
2. In caso di risposta affermativa per 1., Microsoft fa sconti per 
scuole per l'acquisto di licenze VB6? ...perche' c'e' anche da 
considerare il fattore budget economico, dato che - come noto - le 
scuole non godono di bilanci "stratosferici" (si fa per dire...!) :)
Grazie per un'eventuale risposta.
Ciao,
Dan

 Dan
mi limito all' infopoint turistico (sulla scelta didattica passo, ma ho
come un presentimento che ci penseranno altri a stroncarla :)
afaik, vb6 non si trova piu'. si prende vbnet e si fa un downgrade. se
cerchi downgrade nei vecchi post o in msdn, dovresti trovare info piu'
precise. ecco, la pagina era questa, non so se esiste ancora:
http://www.microsoft.com/italy/msdn/vstudio/evaluation/downgrade.asp
ri-afaik, ms ha dei listini edu che tagliano in modo sostanzioso. msdn per
esempio io ce l'ho edu, e siamo sul 40-50%. puo' anche essere che per
aquisti di classi taglino ulteriormente, in fondo a loro preme diffondere
net, e la politica scolastica e' parte del know how che hanno trovato in
apple :)
la migliore e' somunque sempre sentire da loro. proprio sulle license edu
mi avevano risposto da questo mail
inf...@microsoft.com
pero' nel novembre 2002, quindi puo' essere cambiato.
hth, ciao, j.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Ora, mi piacerebbe sapere - se qualcuno avesse tali informazioni
Adesso, bisogna vedere che intensità e che durata ha questo corso.
Se è un corso che si protrae per tutto l'hanno un'infarinatura di C++ la
farei, ma non incentrandola sul linguaggio (C++) ma su cosa sta dietro alla
gestione della memoria, alla vita del processo, il ruolo dell'SO, le varie
differenze tra eseguibile, dll, processo, thread, task e chi più ne ha più
ne metta.
Solo quando questi concetti sono assimilati si può passare ad un linguaggio
visuale, su cui sviluppare i concetti degli algoritmi più comuni come ad es.
il sorting.
Personalmente consiglierei un linguaggio "ibrido" come il C# ed
eventualmente, se si vuole restare sul costo zero, un'IDE come C#, così
magari imparano anche l'interazione e la collaborazione con gli altri utenti
del web.
Ciao

 Ciao
Dimenticavo la firma, importantissima in un thread come questo :)
--
Qualunque mentecatto può scrivere codice che un computer possa capire.
I buoni programmatori scrivono codice che gli uomini possano capire.
[Martin Fowler]

 sapendo appiccicare 2 bottoni su un form si credono programmatori.
ecco, si deve sempre dar retta ai presentimenti :)

 ha scritto nel messaggio
news:37f2bbF...@individual.net...

A me piacerebbe tantissimo insegnare qualcosa sull'argomento, solo non
saprei a chi rivolgermi, per questo mi rifaccio con gli insegnanti
improvvisati :)
Ciao

 sapendo appiccicare 2 bottoni su un form si credono programmatori.
Non sono per niente d'accordo (e, comunque, e' solo un mio parere 
personale, nel senso che la decisione non spetta certo a me, ma 
all'interessato).
Il punto e' come investire al meglio le (poche) ore disponibili, anche 
stimolando i ragazzi (che a 12-13 anni hanno anche bisogno di elementi 
"concreti": vuoi mettere una GUI colorata e vuoi mettere un prompt dei 
comandi!).
Poi e' chiaro che gli si dice "la programmazione vera e' ben altra", o 
comunque - se sono intelligenti - lo capiranno strada facendo (sempre 
che vogliano approfondire certi temi).
Se proprio vuoi sapere come la penso, io metto ad un livello ben diverso 
chi appiccica due bottoni su un form e scrive due righe di codice per un 
handler, contro chi invece si scrive una WinMain() con registrazione di 
classe di finestra, pompa dei messaggi, gestione degli stessi, uso 
avanzato di puntatori, subclassing Win32, etc. etc. etc. etc. etc.
Il punto e' che VB6 - secondo me - e' un ottimo tool per chi voglia 
realizzare degli applicativi GUI per Windows, senza dedicare troppo 
tempo ai dettagli.
Che poi i "dettagli" siano interessanti (per me lo sono molto), o siano 
adatti ad un ragazzo di 12 anni, o si possano affrontare con successo in 
poche ore, beh questo e' tutto un altro discorso!
Dal canto mio, se dovessi organizzare un corso universitario di 
programmazione userei dall'inizio il C++, e lo farei da console, 
affinche' uno si faccia *solide* basi di programmazione OOP etc.
*Poi*, quando uno padroneggia bene questi concetti si passa a GUI, prima 
Win32 SDK, poi MFC, o magari un framework multipiattaforma come 
wxWindows o GTK+, etc.
Pero' questo e' tutto un altro contesto, ben diverso da quello iniziale 
di cui parlavo nel post di apertura.
Dan

 comandi!).
Oh, mi era sfuggito che erano dei ragazzini.
Beh, allora il discorso cambia radicalmente.
Non si puň parlare di C++ a un ragazzo di 12 anni.
In quel caso VB credo vada piů che bene, ma sempre con un'introduzione di 
teoria, anche breve, su quanto ci sta dietro.
Ciao 

 teoria, anche breve, su quanto ci sta dietro.
Sicuro.
Ciao,
Dan

Sinceramente, se proprio devo dirla tutta, eviterei l'uso di VB come 
strumento di insegmamento *principale* in una scuola.
Cioč secondo me un ragazzino di 12 anni, se proprio deve incominciare a 
guardare il pc sotto l'aspetto della sua programmazione, ha bisogno di 
sentir parlare anzitutto di ALGORITMI, di flusso di controllo, di 
tecnica top-down e cosě via. Deve cioč incominciare a ragionare un po' 
in termini di problema da risolvere e non di *immediato da vedere*.
In altre parole, gli farei anche cominciare con un pseudo-linguaggio e 
poi passerei a qualcosa che lo farebbe concentrare piů sul risultato 
logico da raggiungere che sull'aspetto grafico che ha la sua soluzione.
Secondo me l'ideale sarebbe il caro vecchio Turbo Pascal (e non ridetemi 
dietro) che perň č immediatamente rimpiazzabile col FreePascal (il TP7 
mi pare non si possa piů acquistare ma smentitemi se possibile) o con il C.
Ripeto, secondo me con questi linguaggi si penalizza - č vero - 
l'aspetto visivo della cosa ma forse č proprio l'ultimo dei problemi :)
-- 
Quando noi ignoranti eravamo di piů, tutto era piů bello...
(A. Celentano)
Per rispondermi in privato, prima togli l'immondizia dalla testa.

Danguard wrote:
ormai da un po' lurko soltanto qui, e anche quello 
sporadicamente, ma siccome insegno alle superiori e mi tocca 
sciropparmi il "prodotto" che sfornano insegnanti della scuola 
media, penso di poter (o meglio dover) esprimere una parere.
Tale parere è che all'istituto tecnico arrivano SPESSO ragazzi 
che non sanno nessuna tabellina a memoria, non sanno fare nessun 
calcolo a mano che non siano somme e differenze, non riescono a 
scalare numeri di ordini di grandezza multipli di dieci, cosa 
siano i logaritmi, non sanno risolvere le equazioni di secondo 
grado, talvolta di primo, sistemi normali a due incognite, 
convertire da a notazione scientifica e virgola mobile, e il 
concetto di cifra significativa (di insiemistica, algebra varia, 
e /o logica, non ne parliamo).
Alla luce di questo, sarebbe davvero utile dedicare ogni energia 
a costruire delle basi minime di matematica, piuttosto che 
pensare a divertirsi (da parte del docente, che così si 
sbizzarrisce). Così magari guadagnamo qualche posizione 
nell'istruzione scientifica degli studenti a livello 
internazionale (giriamo nei dintorni del 140° posto, recentemente)
senza nessuna polemica con te, ovviamente, che hai solo riferito 
la proposta
ciao
CCCP++Mario


 l'aspetto visivo della cosa ma forse č proprio l'ultimo dei problemi :)
a 12 anni ? mah...

 a 12 anni ? mah...
Di certo non devo essere un punto di riferimento, però a 12 anni 
programmavo con l'Amiga 600 in un linguaggio Basic-like ed era comunque 
testuale.
E forse lo spirito di risolvere un "problema" piuttosto che riuscire a 
disegnare delle icone mi ha portato a ragionare in un certo modo 
piuttosto che a tralasciare l'importanza dell'algoritmo (cosa che si 
tende a fare quando si dà più importanza all'interfaccia grafica).
Ora non voglio dire che se un linguaggio è VISUAL allora chi ci mette 
mani non sa programmare, ma soltanto che forse il fatto di poter 
immediatamente mettere mani su list box e compagnia bella fa perdere di 
vista il ruolo fondamentale che un algoritmo ha nei primi momenti in cui 
si impara a programmare.
ne ho viste di persone che hanno cominciato con VB e quando si trovavano 
di fronte al problema di dover ordinare un array di valori dicevano "e 
che mi frega di come si fa, tanto lo fa VB. Metto tutto in una list box."...
Non saranno tutti così, ma a me è stato da esempio e quindi quando devo 
consigliare punto verso un linguaggio come il Pascal o il C, dove 
l'attenzione si concentra tutta sul *problema da risolvere*.
Tutto IMHO ovviamente :)
-- 
Quando noi ignoranti eravamo di più, tutto era più bello...
(A. Celentano)
Per rispondermi in privato, togli prima l'immondizia dalla testa ;)

"Darkbyte [Home]"

da molti anzi quasi tutti i punti di vista il tuo ragionamento non fa una
grinza. il pascal lo sostengono in molti.
quello su cui mi verrebbe da essere un po' piu' flessibile e'
1. l'importanza _estrema_ delle gui, che e' quello che l'utente vede del
programma, il suo mondo. in ms per esempio ci pensano abbastanza, e non mi
sembra un caso che di hw facciano quello che l'utente _tocca_.
2. in questi anni ho visto che persone totalmente disinteressate ai pc
finche' dovevano ricordarsi un dir *.* hanno cominciato a usarli se dovevano
solo cliccare icone. e' secondario che molti continuino a non capire una
mazza. mi importa che si sono dati una mossa *perche' la cosa funziona*,
punto che lega col seguente.
3. e' vero, il listbox puo' essere sorted. e per una lista di 20 elementi
non mi pongo neanche il problema e uso il listbox tranquillamente, nessuno
mi convincera' che sul campo e' meglio altrimenti. in compenso con vb hai un
programma _che funziona_ in pochi minuti, cosa che a console mica tanto.
non conosco abbastanza delphi, e meno ancora altri rad, per valutare se vb
offra piu' pro o piu' contro. qualche pro imho comunque ce l'ha.
ciao, j.

Anche il tuo ragionamento non fa una grinza.
Quello che intendevo però era mirato ai primi insegnamenti ad un 12enne.
Insomma la GUI è importante, si, è la cosa fondamentale per un utente 
finale, ma prima secondo me bisognerebbe tralasciare l'organizazzione 
visiva delle cose per uno che sta imparando a programmare, passami il 
termine "tanti fronzoli" semmai, e farlo concentrare su quello che 
resta: la parte scritta di un programma.
Tipo fargli creare delle liste dinamiche, andarsene alla ricerca 
dell'elemento di una lista che sia successivo a quello da inserire, 
fargli scambiare i puntatori....
Dargli un problema da risolvere con l'algoritmo dello "zaino"...
Cose fattibilissime in VB, certo, ma non so perchè credo che se un 
linguaggio sia come il C o il Pascal allora si può dare molto più spazio 
alla programmazione, alla divisione del problema in procedure/funzioni e 
così via...
POI, una volta entrati nell'ottica di cosa sia la programmazione, quando 
dato un problema si stia già pensando a che funzioni scrivere e che 
risultati restituire, allora ovviamente un buon VB va benissimo. Ma a 
quel punto, una volta che si sa programmare, il linguaggio usato diventa 
la cosa meno importante (cioè se sai come risolvere il problema, passare 
a VB non deve essere tanto doloroso.... giusto qualche istruzione da 
imparare).
IMHO :)


 un'introduzione di teoria, anche breve, su quanto ci sta dietro.
Aggiungerei che sarebbe preferibile iniziare subito dall'interfaccia .NET
(magari usando sharpdevelop che è gratuito e non intacchi i budget della
scuola).
Cominciare da VB6 può essere più semplice in un primissimo momento, ma se i
ragazzi non conoscono VB, per loro non ci sarà differenza tra VB e 
VB.NET
(magari si potrebbe introdurre il .NET iniziando proprio da due bottoni e
una helloworld!).
bye
-- 
Gestione Ottica - Gestionale per Ottici e Programmi Gratuiti su:
http://www.nicolaottomano.it
Sinapsi Antispam. Antispam Gratuito.
http://www.sinapsi-antispam.tk
http://www.nicolaottomano.it/sinapsi.htm
Ingrosso Orologi.
http://www.supertop.it
email spamtrap: 
spam...@nicolaottomano.it

 scuola).
Se fosse per salvare i budget del pubblico, partirei con
linux e python: free e didatticamente completo.
Se l'hardware lo permettesse, aggiungerei java con eclipse:
al passo con i tempi e eclipse e' un ambiente di sviluppo
eccezionale.
--
ciao, hal
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 eccezionale.
eclipse e' molto bello ma pesantissimo su un p4...
e mi dicono che le scuole ora non hanno nemmeno i soldi per _stampare_ le
pagelle...

Mi accodo qui e non quoto perché il mio pensiero è molto simile a
quello di DarkByte, però io pongo la cosa in questo semplice modo:
Con FreePascal(o C, COBOL, ASSEMBLER, quellochevoletevoi) si dà 
importanza alla *sostanza*, mentre con VB, Delphi, ecc si dà importanza
all'apparenza.
Secondo me, ovviamente, dovrebbe essere dato più spazio alla
sostanza e non all'apparenza(specialmente se si è agli inizi) però nel
mondo "reale" è l'apparenza quella che vince e sotto gli occhi ne
abbiamo più di un esempio.
Ciao,
Andrea

 ha scritto

e quindi suggerisci di insegnare assembler piuttosto che vb ?
io so che in cobol perdevo un casino di tempo per stronzate tipo una
schermata. in clipper un po' meno. in vb zero. ed e' tempo che posso usare
per concentrarmi sulle cose serie.
ciao, j.

 ciao, j.
Ciao,
Andrea

 Si ma tu hai già "appreso" :D
ho appreso solo che finora non ho appreso una mazza. spero di migliorare in
futuro. magari non apprendendo due mazze, sarebbe gia' un passo avanti :)
ciao, j.

 ciao, j.
Andrea

 per concentrarmi sulle cose serie.
Si ma i ragazzi che imparano non devono uscire pazzi cone le schermate 
(se vogliono farlo è un problema loro).
Devono concentrarsi sul problema, capire quali sono i dati importanti 
per il problema ed essere in grado di costruirsi le procedure e le 
funzioni apposite per risolverlo.
E non su:
dove posiziono il pulsante?
Dov'è meglio metterlo in modo che sia facilmente raggiungibile?
Uso una listbox oppure una listview?
Come faccio a fare in modo che l'utente possa scambiare di posto due 
colonne di una listview? C'è una proprietà che lo fa?
Il punto è questo (IMHO): chi sta imparando a *programmare* deve appunto 
incominciare ad aprire la mentalità verso un certo *ragionamento*.
Dato un problema, sai risolverlo programmando?
Se lo sai fare, a quel punto usare un linguaggio come il Pascal o come 
il VB è indifferente.
Soltanto a quel punto si metterà davanti a VB ed imparerà a posizionare 
i pulsanti e a scrivere le Sub (che sa già cosa sono), e magari non le 
prenderà per quello che sono soltanto perchè VB glie le pone davanti.
Stesso discorso che qualcuno fa qualche thread più avanti dove si chiede 
se vale la pena cominciare con VB o con VB.Net: meglio cominciare con 
VB.Net dato che fai una cosa più completa, visto che con VB la maggior 
parte delle cose ti vengono nascoste e non sai nemmeno che senso abbiamo 
e perchè andrebbero fatte.
Io sinceramente soltanto oggi (col senno di poi) ringrazio non so quale 
Santo perchè a scuola mi hanno fatto partire con Pascal prima e C poi.
Ho visto chi a scuola ha iniziato con VB e non sapeva cosa fosse la 
stesura di una "relazione" (quindi in pratica tutto il ragionamento che 
ti fai *prima* di buttare giù righe di codice) per un compito di 
informatica.
Che poi VB lo abbia imparato per fatti miei è un altro paio di maniche; 
è VB che serve per i clienti, di certo non Pascal.
Ma senza il Pascal sicuramente non avrei imparato quello che mi serviva 
e che sapevo fare a occhi chiusi quando ho iniziato con VB: ragionare in 
maniera top-down.


 Che te ne pare della prospettiva?
Semplicemente fantastica :-)
Mi guadagno parte della mia pagnotta mettendo a posto e/o
controllando i casini prodotti da tale fauna.
Venghino, venghino, siore e siori...
piu' gente c'e' e piu' bestie si vede... (cit.)
-- 
ciao, hal

 piu' gente c'e' e piu' bestie si vede... (cit.)
ROTFLMAO con doppio avvitamento carpiato e successivo salto mortale
all'indietro in aria :D
Andrea

 Che te ne pare della prospettiva?
non particolarmente peggio di un'autostrada il fine settimana, o del centro
il sabato pomeriggio. o degli incontri sul lavoro durante tutta la
settimana. capisco il tuo punto di vista. ma imho con la console faresti
odiare i computer al 97% della classe. se ti premono solo i 2-3
potenzialmente bravi, go on. io mi entusiasmo di piu' a far scoprire che le
cose possono essere piacevoli a chi e' convinto del contrario, i secchioni
non li ho mai sopportati :)
la parte astratta, il modo di ragionare e i concetti fondamentali, li puoi
spiegare anche senza pc, e volendo anche senza lavagna e senza carta, se sai
mantenere l'attenzione, che e' molto difficile quasi per chiunque. poi,
pero', userei qualcosa di un po' piu' ragionevole e di piu' umano, e tutto
sommato anche di piu' produttivo. eclipse, vc, c#, kylix, quello che ti
pare. ma devono essere come quei solidi a triangolo e cerchio che vanno
messi nei buchi a cerchio e triangolo. lascia stare la console. il pc e'
memoria, e con gli oggetti (gli oggetti gui, intendo) ce l'hai davanti agli
occhi e non sprechi risorse a gestirla inutilmente. se alla fine ha vinto
apple, forse ci sara' un senso.
ciao, j.

> chi non ha mai usato un goto mi plonki subito o taccia per sempre :PP
PLONK! :)
-- 
Quando noi ignoranti eravamo di piů, tutto era piů bello...


 maniera top-down.
in clipper lavoravamo io e un mio amico. io arrivavo da dbase (mai usato
pascal, non mi ha mai particolarmente attratto). lui veniva proprio da
pascal. guardavi il codice e sembravano due linguaggi diversi. ma
funzionavano ambedue. il punto erano le teste, non le tastiere.
ciao, j.

 PLONK! :)
:)
adesso per favore metti su un ftp tutto il codice che hai scritto in vita
tua.
gna ! riapri quel cassetto ! ho detto t-u-t-t-o ! :)
ciao, j.

 gna ! riapri quel cassetto ! ho detto t-u-t-t-o ! :)
Anche hello world? :)
-- 
Quando noi ignoranti eravamo di più, tutto era più bello...


 funzionavano ambedue. il punto erano le teste, non le tastiere.
Ovviamente.
E' proprio di teste che parlo :)


 ciao, j.
Ciao,
Andrea

 pulsante".
non e' solo vb. si chiama *eventi*. non hai case "Y" case "N". hai due
pulsanti, e due eventi. logica completamente diversa, e all'inizio ci ho
sudato abbastanza.
pensi di rimettere le console sui pc ? dal mio sta' lontano ! :)
ciao, j.

 ciao, j.
Ciao,
Andrea

 Ma non lo conosco e non afferro il paragone... :(
il tedesco e' una lingua logica, dura e pura. ha i casi. "piero saluta
mario" e' ambiguo in inglese e in italiano, non lo e' in latino e in
tedesco: gia' dalla sintassi (la forma, non la semantica) sai chi fa cosa
(il soggetto saluta il complemento oggetto *gia' nelle forme linguistiche*),
non hai bisogno del contesto come in inglese e in italiano ("la mela mangia
pierino" in italiano e' disambiguato dalla semantica). ma *il mondo parla
inglese*, non a caso, e il tedesco per conto suo, non a caso, si sta
inglesizzando. io mi ci soffermerei un attimo...
il concetto puro e duro ti consente approfondimenti e precisione. ma rischia
di limitarti. imho e' meglio imparare *prima* la flessibilita' e imparare a
capire come procedere e cosa e' meglio usare, poi le cose da usare in
relazione ai tuoi scopi. io lavoro con le basi, col c++ mi spazzavo. un
linguaggio lo impari in tre mesi. per imparare a usare la testa non basta
una vita.
credo che dovendo fare lezioni simili, per parecchie ore terrei i pc spenti.
se capiscono che stanno programmando anche quando "c'e' poca luce ! puoi
aprire la finestra ? grazie", il piu' e' fatto. che poi alla finestra ci
vadano a piedi o coi pattini mi interessa poco.
pero', o per fortuna, ho scelto di stare alla larga dalle scuole :)
ciao, j.

 prompt di MS-DOS che non è proprio una CLI delle migliori.
beata gioventu' ! personalmente, mi sono rimasti abbastanza pochi anni da
vivere, e per di piu' sono un dattilografo abbastanza pessimo, per non usare
filezilla :)
ciao, j.

 ciao, j.
Ciao,
Andrea

 Un buono script lo scrivi una volta e lo usi tutta la vita, imho.
se usi ftp piu' di word, come in certi periodi, e per cose molto diverse fra
loro, mica tanto.
un caso solo: quando aggiorno il sito in intranet, ho un bat che mi copia
tutti gli html e uno che mi apre le inetpub dei server. di volta in volta
decido cosa usare.
e comunque uso il mouse, non il commandline.
ciao, j.

 ciao, j.
Ciao,
Andrea

 quella Y2.
non hai letto le righe sopra quella quotata...
so usare la console e a volte la uso, quando e' piu' veloce.
ciao, j.