Le basi del pensiero computazionale

Ai web designer è richiesto di pensare ai problemi in un modo che i computer possano capire, quindi "il pensiero computazionale" è un insieme di competenze indispensabili per loro. Offre strumenti sistematici necessari per risolvere compiti complessi da parte dei clienti. 

Il pensiero computazionale consente ai web designer di abbattere un problema, individuare i modelli nei dati, identificare e concentrarsi sugli aspetti assolutamente necessari di un incarico, lasciando da parte le informazioni non necessarie che impantaneranno il processo.

Come strumento per una pianificazione approfondita, evita errori costosi che derivano dal correre per completare un progetto senza aver considerato aspetti diversi del problema a portata di mano. 

Cos'è il pensiero computazionale? 

Il pensiero computazionale come concetto può sembrare intimidatorio. Ma ogni giorno, in tutti gli aspetti della nostra vita, eseguiamo il pensiero computazionale. Pensa alle seguenti azioni e decisioni che le riguardano: 

  • Vuoi farti una tazza di tè o di caffè.
  • Vuoi comprare una macchina.
  • Vuoi cambiare carriera.
  • Vuoi trasferirti in un'altra città.
  • Vuoi comprare una casa.                         
  • Vuoi scrivere un libro.
  • Vuoi creare un'app.

Il processo di pianificazione e raggiungimento di questi obiettivi implica un qualche tipo di pensiero computazionale.

La pianificazione implica la suddivisione di questi problemi in parti gestibili e la creazione di soluzioni che ci consentano di raggiungere l'obiettivo che abbiamo in mente.

Rottura di problemi

Per i nostri scopi, poiché come web designer vogliamo usare il computer per aiutarci a risolvere i problemi a portata di mano, il pensiero computazionale riguarda davvero la comprensione del complesso problema in questione, per poi scomporlo in una serie di piccoli problemi gestibili. Sviluppiamo quindi idee su come risolvere questi piccoli problemi individuali, e infine comunichiamo le idee risultanti in una serie di passaggi che possono essere capiti ed elaborati da un computer.

Questo approccio segue ciò che chiamiamo "i principi del pensiero computazionale".

I principi del pensiero computazionale

Ci sono quattro di questi principi:

  1. Decomposizione
  2. Astrazione
  3. Pattern recognition
  4. Scrittura dell'algoritmo

Queste sono tecniche chiave che ti aiuteranno a pensare in modo computazionale attraverso un problema complesso (sfida o compito) prima di scrivere una singola riga di codice. Esaminiamoli.

1. Decomposizione 

Questo è l'abbattere un problema complesso o un sistema in parti più piccole e facilmente risolvibili. Questi problemi minori vengono risolti uno dopo l'altro fino a risolvere il problema complesso più grande.

"Se un problema non è scomposto, è molto più difficile da risolvere. Affrontare molte fasi diverse contemporaneamente è molto più difficile che rompere un problema in una serie di problemi minori e risolverli uno alla volta. "- BBC Bitesize                                                   

2. Pattern recognition 

Una volta che hai scomposto il problema complesso in problemi più piccoli, il prossimo passo è guardare le somiglianze che condividono.

I pattern sono caratteristiche condivise che si verificano in ogni singolo problema. Quali somiglianze osservate? Trovare queste somiglianze in piccoli problemi decomposti può aiutarci a risolvere problemi complessi in modo più efficiente.

 3. Astrazione

"Abstraction" si riferisce a concentrarsi solo sulle informazioni importanti, ignorando i dettagli irrilevanti. Per raggiungere una soluzione, dobbiamo ignorare le caratteristiche non necessarie per concentrarci su quelli che facciamo.

Quindi, quali sono queste informazioni importanti su cui dobbiamo concentrarci? In astrazione l'attenzione è principalmente sulle caratteristiche generali che sono comuni a ciascun elemento, invece di dettagli specifici.

Una volta che hai le caratteristiche generali, puoi creare un "modello" del problema; un modello è l'idea generale del problema che stiamo cercando di risolvere.

"Se non lo facciamo, potremmo finire con la soluzione sbagliata al problema che stiamo cercando di risolvere". - BBC Bitesize

Una volta che abbiamo un modello, possiamo progettare un algoritmo

4. Scrittura dell'algoritmo

Hai suddiviso il grosso problema in problemi più piccoli e facilmente gestibili. Hai identificato le somiglianze tra questi problemi. Ti sei concentrato su dettagli rilevanti e hai lasciato qualcosa di irrilevante.

Ora è il momento di sviluppare istruzioni dettagliate per risolvere ciascuno dei problemi più piccoli o le regole da seguire quando si risolve il problema. Questi semplici passaggi o regole sono usati per programmare un computer per aiutare a risolvere un problema complesso nel modo migliore. Sono anche chiamati "algoritmi".

Definizione: Un algoritmo è un piano, un insieme di istruzioni passo passo utilizzate per risolvere un problema.

"Gli algoritmi non comportano sempre complicate attività di programmazione; nel cuore, sono sequenze di passi per muoversi verso un obiettivo. "- John Villasenor

La scrittura di un algoritmo richiede una pianificazione approfondita perché funzioni correttamente. La soluzione offerta dal tuo computer è all'altezza dell'algoritmo che scrivi. Se l'algoritmo non è buono, anche la tua soluzione non sarà buona.

Utilizzando i diagrammi di flusso

I diagrammi di flusso offrono un modo perfetto per rappresentare gli algoritmi.

"Un diagramma di flusso è un tipo di diagramma che rappresenta un algoritmo, un flusso di lavoro o un processo, che mostra i passaggi come scatole di vari tipi e il loro ordine collegandoli con le frecce. Questa rappresentazione schematica illustra un modello di soluzione per un dato problema. "- Wikipedia

I diagrammi di flusso sono un modo semplice per tracciare gli algoritmi, soprattutto se hanno bisogno di produrre risultati diversi lungo il percorso. Usano convenzioni di stile standard. I diagrammi di flusso scorrono dall'alto verso il basso e da sinistra a destra.

Esempi di elementi del diagramma di flusso dai kit UX

Usando Pseudocodice

Durante la scomposizione del problema in parti più piccole gestibili, hai comunicato i risultati, le idee e le possibili soluzioni in inglese semplice (o in qualsiasi altra lingua tu usi per comunicare).

I computer non capiscono le istruzioni in inglese. Capiscono il codice. Codice o algoritmi che formano un insieme di istruzioni con sintassi molto specifica.  

Ma prima di usare le tue scoperte per scrivere codice che il computer capirà, di solito è consigliabile scriverle pseudocodice.

Pseudocode ti aiuta a pianificare le soluzioni al tuo problema per evitare errori durante la scrittura del codice. È un modo di scrivere le istruzioni in modo semplificato che legge come un codice. Tuttavia, lo pseudocodice non è codice, non ha una sintassi specifica che il codice utilizza.

Lo pseudocodice è scritto meglio usando parole chiave e variabili. Le variabili in programmazione rappresentano un valore, una parola o un pezzo di codice. Nella programmazione il valore delle variabili cambia a seconda di dove ci si trova nel codice.

Ad esempio, questo pseudocodice (tratto dall'Università del Tennessee) potrebbe calcolare la retribuzione:

Inizia INPUT ore INPUT rate pay = hours * rate OUTPUT pay End

E questo esempio leggermente più complesso potrebbe calcolare la retribuzione con gli straordinari:

Inizia INPUT ore, tasso SE ore ≤ 40 THEN paga = ore * tariffa ELSE paga = 40 * tariffa + (ore - 40) * tariffa * 1,5 USCITA pagamento END

 Pseudocode utilizza termini simili al codice che sono utili quando lo si traduce in codice.

  • STOP / END I computer sono letterali. Devi dire loro quando è stata fatta una dichiarazione o un'istruzione. Fatelo scrivendo STOP o FINE.
  • If / else / POII computer capiscono le condizioni: se A succede, allora fa B, altrimenti non lo fa C.
  • INPUT / OUT Alcuni codici richiedono input per poter essere eseguiti e creare un risultato di output. L'input è per i dati che un utente o un'altra fonte daranno al computer. L'output è usato per indicare il risultato finale di una serie di comandi. 
  • STORE / SAVETermine Pseudocodice che indica a un computer di salvare o memorizzare un valore ogni volta che è necessario. 

Valutare le soluzioni

C'è in realtà una quinta parte a questo intero processo. Hai usato il pensiero computazionale per arrivare a una soluzione. La soluzione è un algoritmo che può essere utilizzato per programmare il computer.

Hai voglia di iniziare a programmare, ma prima di andare avanti devi valutare la soluzione. Perché?

"Senza valutazione, eventuali errori nell'algoritmo non verranno rilevati e il programma potrebbe non risolvere correttamente il problema o potrebbe non risolverlo nel modo migliore." - BBC Bitesize

Pensa a valutare il tuo algoritmo come "debugging".

Conclusione

Il pensiero computazionale attraversa tutti gli aspetti e le funzioni di 21st affari del secolo. È un'abilità indispensabile per la risoluzione dei problemi per i web designer che alla fine devono rappresentare soluzioni in un linguaggio che i computer possono comprendere ed elaborare.

Ricorda, il pensiero computazionale prevede i seguenti passaggi:

  1. Decomposizione: abbattere un problema nelle sue parti componenti.
  2. Pattern Recognition: identificazione delle somiglianze nelle parti componenti di un problema.
  3. Astrazione: concentrandosi su importanti informazioni generali e lasciando da parte le informazioni che sono irrilevanti per la soluzione.
  4. Algoritmo di scrittura: scrivere il codice che crea la soluzione desiderata. Scrivere istruzioni passo passo che possono essere lette ed elaborate dal computer. Le istruzioni sono scritte utilizzando le informazioni rilevanti raccolte da decomposizione, riconoscimento di pattern e astrazione.
  5. Valutazione: trovare i bug nell'algoritmo e correggerli per assicurarsi che funzioni senza problemi.

Risorse utili

  • Come disegnare un diagramma di flusso
  • Guida definitiva al diagramma di flusso 
  • Modelli di diagramma di flusso su Envato Elements