|
La
sua domanda è semplice e nel contempo pesantissima. E' semplice perché lei
la pone con assoluta immediatezza e chiarezza. E' pesantissima perché
sottende gravi problemi di impostazione che sussistono nel nostro settore.
L'Informatica è una scienza giovane e soffre di errori di base e di
deviazioni come nel passato successe già alla Meccanica, alla Chimica ed a
tante altre discipline. Importante, specie per un insegnante, è saperlo e
trovare soluzioni adeguate. Infatti
alcuni metodi di studio
sono talmente rovinosi che una volta accettati non c'è verso di venirne fuori. Anzi più
si va avanti e più se ne resta invischiati. L'unica soluzione praticabile
consiste nel metterli da parte e porre lo studio
dell'Informatica su nuove
basi. La sua domanda pone il dito su una
difficoltà di questo tipo.
Da anni si è tentato di
affrontare le strutture dei
dati con strumenti logico-astratti i quali hanno prodotto confusioni nella
didattica e poi a ruota nella programmazione e nell'analisi. Se si trattasse di un ostacolo di poco conto, sarebbe
sufficiente qualche caso per recuperare lo studente. Invece gli esempi
didattici servono quasi
niente a causa della irragionevolezza dell'approccio astratto. Esso costituisce una vera e propria iattura
per il nostro settore e l'unica via praticabile consiste
nel riporlo. Ne ho già scritto più volte in
questa rubrica, ad esempio nelle risposte
27,
29
e
38.
A mio avviso, l'unica è quella che si conforma alle più elementari nozioni di hardware ed alla pratica professionale. Lo studente sa bene che il computer non manipola valori-matematici-astratti bensì opera con porzioni di memoria ram nei quali sono contenuti dei codici. Dunque alla base ci sono i campi informativi. Con questo nome si sottolinea efficacemente il loro significato operativo e si agevola il paragone con gli equivalenti cartacei che si trovano ad esempio sui moduli, sui prestampati ecc. Il campo informativo che contiene il dato elementare, si disegna come uno scatolotto o anche con un semplice segmento, ponendo sotto il nome e sopra il suo eventuale contenuto
Non sto dicendo nulla di nuovo. Il modello è già noto, ma non viene approfondito. Gli viene dato un ruolo illustrativo. Qualcuno lo trova banale mentre ha un valore sostanziale perché le celle di memoria sono fatte proprio così. Una volta che la questione è stata posta sul piano concreto e corretto, lo studio dei dati si appiana e progredisce vorrei dire da solo. Infatti le strutture dati sono le aggregazioni dei campi informativi che il programmatore realizza per comodità. I testi riportano:
I più importanti sono i primi e gli ultimi perché risultano di gran lunga i più comuni. Si disegnano in modo immediato.
Essi riguardano tantissimi lavori per le seguenti ragioni di utilità:
La struttura 2 della lista si usa per concatenare dei dati che sono cancellati ed aggiunti senza regole. Le strutture 3 sono lineari e si distinguono soltanto per il modo con cui vengono riempite e svuotate. Le ultime servono per speciali algoritmi di uso tutt'altro che quotidiano. Ognuna risponde ad una precisa funzione e questo produce un importante corollario: il programmatore sceglie la struttura in funzione del compito da eseguire. Il procedimento didattico illustrato segue fedelmente la tecnologia ed introduce i dati in funzione del servizio che offrono. E' diametralmente opposto al cammino di chi presenta i dati in astratto e poi si sforza di trovarne una giustificazione nella pratica.
|
83. Parlando di strutture dati, lineari, tabellari (chiave-valore), o ad alberi binari, ho difficoltà a far capire ai ragazzi il contesto di utilizzo cioè QUANDO é utile servirsi di certe strutture: può fornirmi cortesemente degli esempi concreti di utilizzo che siano facilmente comprensibili ai ragazzi? |