23.  Si discuteva
se fosse più
opportuno,
in termini didattici,
introdurre la
programmazione
mediante il
diagramma a
blocchi oppure
con la pseudocodifica
Ogni insegnante di Informatica tende ad introdurre la programmazione con lo schema che meglio conosce partendo dal presupposto che i vari formalismi, cioè il diagramma a blocchi e la pseudocodifica, siano sostanzialmente paritetici. Questa posizione si è un pò incrinata nel corso degli anni. La diffusione del secondo metodo nelle aziende ha indotto alcuni insegnanti a lasciare i blocchi. Altri continuano a sostenerlo per la sua presunta generalità.
Le cose stanno davvero così
?


Lo specialista che deve sviluppare un programma (tralasciamo qui i settori avanzati e specialistici) riceve le specifiche tecniche, che illustrano l'algoritmo da programmare mediante una descrizione linguistica. Soltanto se il lavoro è piccino il programmatore può stendere subito il programma e saltare la progettazione. Quando il lavoro ha una qualche consistenza, egli non può passare direttamente dalle specifiche al codice ed interpone la fase di progetto che viene condotta mediante
il diagramma a blocchi oppure la pseudocodifica che dunque hanno lo scopo di facilitare la programmazione in Cobol, piuttosto che in Basic o in Pascal. Dal fatto che lo schema di progetto spiana la strada verso la programmazione, si deduce che lo schema scelto deve armonizzarsi al linguaggio di programmazione. Se viceversa ne usiamo uno che contrasta con la sintassi del linguaggio, invece di facilitarlo, rendiamo il lavoro più complicato. Invece di chiarire l'algoritmo lo rendiamo più astruso, invece di andare verso la conclusione del lavoro, si va indietro.  

 

Una volta chiariti questi principi a carattere generale si può rispondere:
1) Il diagramma a blocchi riporta le istruzioni ed i blocchi di controllo che sono tipici del linguaggio macchina dunque lo schema si armonizza con la programmazione in Assembler.
2) La pseudocodifica riporta le macro di controllo tipiche dei linguaggi simbolici: dal Pascal al Cobol, dal Basic all'RPG. Descrive le strutture in armonia ai linguaggi simbolici e dunque va scelta quando si usa questi linguaggi.

 

Vediamo ora la questione sul piano didattico. Il diagramma a blocchi è un grafo, è figurativo e quindi più immediato da comprendere ed usare. Le alternative ed i cicli danno luogo a percorsi che si seguono bene visivamente. Ha evidenti qualità didattiche in un approccio elementare. Queste virtù perdono valore man mano che lo studio progredisce. Dunque dopo aver appreso il diagramma a blocchi, è bene che lo studente faccia buona pratica di pseudocodifica perché i linguaggi simbolici sono di gran lunga più frequenti dell'Assembler.

 

Resta da chiarire la cosidetta generalità del diagramma a blocchi. Il rombo di decisione prevede una entrata e tre uscite che di solito viene presentato come logicamente perfetto perché ad esempio esaurisce le possibilità di confronto tra due valori.

 

 

In realtà questo è un modo di ragionare corretto in Matematica ma non in Informatica. Molto spesso i programmi esaminano non 3 ma bensì n alternative le quali ad esempio riguardano n scaglioni di pagamento, n categorie contrattuali, n tariffe, n aliquote iva ecc. ecc. Dunque sul piano del lavoro le tre alternative non danno nessun privilegio metodologico.

 

In conclusione i due schemi per la progettazione del programma non sono affatto equivalenti. A mio avviso vanno illustrati ambedue in un corso completo di programmazione per ragioni pratico-professionali e lasciando da parte presunti criteri "teorici".

Indietro

anno 2001


La più antica è la posta elettronica (email) la quale successivamente diede il via alle seguenti applicazioni più o meno direttamente derivate: 
  • lista di distribuzione (mailing list)
  • gruppo di lavoro (news group)
  • colloquio (chat)
  • conferenze (conference)

Tutte sono dedicate alla comunicazione interpersonale nella rete. 

Poi c'è il web (world wide web)  la quale ha soppiantato o comunque messo in secondo piano tutte le applicazioni precedenti volte alla ricerca dei dati nella rete quali gopher, archie ed altre. 

Ricordiamo il transferimento di file (ftp) che permette di scaricare i dati da un sito e telnet che simula il terminale di una rete in un nodo qualsiasi.

L'insegnante presenta senza difficoltà queste applicazioni che l'allievo può controllare "de visu" ed utilizzare direttamente. Anzi molto spesso non c'è neppure bisogno di dettagliarle, basta richiamarle perché lo studente già le conosce. Per l'insegnante che vuole approfondire il tema suggerisco i seguenti due punti.

 

A) Oltre a quelle visibili sopra elencate, Internet ha una serie di applicazioni di supporto che non sono visibili da parte dell'utente e che risultano importantissime.
Tra tutte amiamo sottolineare l'applicazione
name la quale fornisce l'indirizzo fisico in cambio dell'indirizzo logico (vedi risposta 22). Infatti l'uomo opera nella rete mediante indirizzi logici (es. www.unipg.it) mentre le macchine lavorano soltanto con indirizzi fisici che sono binari. Dunque si ha bisogno che qualche dispositivo faccia rapidamente la traduzione. Il lavoro è compiuto da un gran numero di name server sparsi in tutto il mondo che costituiscono un fondamentale supporto tecnico senza il quale Internet non potrebbe neppure esistere.   

 

B) Le applicazioni sopra viste danno un orientamento generale, mentre lo specialista è più preciso ed entra in ulteriori dettagli. Egli distingue, ad esempio, se la posta elettronica segue il protocollo simple mail transfer oppure post office protocol; se l'ftp è un file transfer oppure un trivial file transfer. Ognuna di queste precise applicazioni ha un proprio codice identificativo, chiamato porta (port), lungo 16 bit (vedi anche risposta 139). I valori vanno da 0 a 65.535 e sono così organizzati:

- I numeri 0-1023 sono stati assegnati dalla commissione IANA (Internet Assigned Number Authority) alle applicazioni privilegiate che sono quelle standard, alcune delle quali abbiamo sopra ricordato. Ad esempio il web è 80, simple mail transfer è 25,  post office protocol  è 110, file transfer è 20, trivial file transfer è 69, gopher è 70.

- I numeri 1024-49151 sono assegnati dalla commissione a chiunque voglia inventarsi una nuova applicazione e metterla nella rete. 

- I numeri 49152-65535 sono codici che vengono assegnati dinamicamente dai dispositivi di rete per applicazioni interne.

Attenzione nessuna applicazione può funzionare nella rete senza il valore di porta il quale viene infatti utilizzato dal protocollo TCP, basilare per tutta Internet.

 

Indietro

anno 2001

24. Quali
sono le
applicazioni più
importanti
nella rete? 
=