1 PROGETTARE SOLUZIONI Introduzione al concetto di programmazione Che cosa piace in uno smartphone? Sicuramente il design del dispositivo (hardware), ma soprattutto il software che lo rende interattivo. Il è qualcosa di , che si potrebbe paragonare al nostro pensiero: esiste, ma che lo contenga (il cervello) . Per questo motivo l’informatica, pur occupandosi di software, deve sempre tenere in considerazione l’hardware. I programmatori devono occuparsi della logica del software, ma anche dell’input e dell’output. Il computer è una macchina in grado di eseguire calcoli molto velocemente, ma è compito del programmatore attribuire un significato ai numeri. Per esempio uno smartphone è in grado di generare numeri casuali, ma è compito del programmatore immaginare che essi rappresentino dei dadi lanciati su un tavolo o l’avanzamento di due cavalli durante una corsa. Oltre a essere creativo, il programmatore deve avere capacità di astrazione per risolvere classi di problemi e non un singolo problema. Per esempio deve programmare una calcolatrice e non un software che sia in grado di sommare solo due numeri (sempre gli stessi). software impalpabile senza un supporto hardware non può essere utilizzato PROGRAMMARE SEMPLICI APP Oggi esistono dei (per esempio Scratch, App Inventor) creati per , cioè quel processo mentale che consente di individuare un modello astratto di un problema dato, trovarne una soluzione ed esprimerla come una sequenza di istruzioni che possano essere eseguite automaticamente da una macchina. Le interfacce di questi software sono grafiche, colorate e generalmente gradevoli. I comandi sono intuitivi e si attivano con il mouse. Trascinando i diversi elementi è possibile fingere di essere esperti sviluppatori di app giocando con la programmazione. La limitazione di non essere , tuttavia, rende che, nel mondo reale, vengono gestiti da software generici realizzati utilizzando i linguaggi di programmazione. Inoltre, la semplicità di utilizzo introdotta da questi ambienti nasconde molteplici aspetti che riguardano lo e la loro interne del computer. Per in modo professionale è necessario che riguardano l’hardware (CPU, memoria, periferiche ecc.), che sono intrinsecamente delle interfacce o dall’interazione con il mouse, rinunciando, almeno inizialmente, alla gradevolezza di grafica e animazioni. software didattici sviluppare il pensiero computazionale general purpose questi software inadatti a risolvere gran parte dei problemi sviluppo dei programmi interazione con le varie componenti imparare a programmare entrare nel dettaglio di alcune problematiche di base svincolate dall’aspetto estetico / general purpose per uso generale