• Non ci sono risultati.

Let s go UP. il Pensiero Computazionale come pensa un informatico quando affronta un problema?

N/A
N/A
Protected

Academic year: 2022

Condividi "Let s go UP. il Pensiero Computazionale come pensa un informatico quando affronta un problema?"

Copied!
5
0
0

Testo completo

(1)

S. Crafa A.A. 20/21

Let’s go UP

Computer Science is no more about computers than astronomy is about telescopes.

-- Edsger Dijkstra

Silvia Crafa - [email protected] Dipartimento di Matematica “Tullio Levi-Civita”

S. Crafa A.A. 20/21

Sistema Operativo

Hardware Software

“Algoritmo risolutivo”

compilatore editor

S. Crafa A.A. 20/21

il Pensiero Computazionale

come pensa un informatico quando affronta un problema?

capacità di formulare problemi in modo che

ammettano soluzioni rappresentabili in un formato eseguibile

da un uomo o da una macchina o una combinazione dei due

(an information processing agent)

una serie di strumenti mentali che ci consentono di

passare da un’idea alla sua realizzazione

pensare in maniera creativa alle possibili soluzioni

approccio trial-and-error (esplorare e sperimentare)

iniziare programmando un prototipo

S. Crafa A.A. 20/21

il Pensiero Computazionale

come pensa un informatico quando affronta un problema?

capacità di formulare problemi in modo che

ammettano soluzioni rappresentabili in un formato eseguibile

da un uomo o da una macchina o una combinazione dei due

(an information processing agent)

una serie di strumenti mentali che ci consentono di

passare da un’idea alla sua realizzazione

pensare in maniera creativa alle possibili soluzioni

approccio trial-and-error(esplorare e sperimentare)

iniziare programmando un prototipo

La programmazione è un modo di esercitare ed allenare questa capacità

di formulare e risolvere i problemi (come la scrittura è un modo per

esprimere i propri pensieri)

(2)

S. Crafa A.A. 20/21

1. Capacità di formulare i problemi

Due capacità fondamentali nell’affrontare problemi complessi:

astrazione: permette di focalizzarsi sugli aspetti cruciali del problema, ignorando i dettagli irrilevanti,

maggiori dettagli possono essere eventualmente affrontati in seguito, ad un altro livello di astrazione o in un altro strato software

decomposizione: un problema complesso si decompone in sottoproblemi, da risolvere separatamente.

la soluzione dei sottoproblemi è spesso riutilizzabile in altri casi

S. Crafa A.A. 20/21

Decomposizione

Sito di food delivery

interfaccia accattivante (grafica, marketing)

interazione utente (programmazione front-end)

funzionamento degli ordini (programmazione back-end)

gestione database piatti, anagrafica e ordini dei clienti

pagamento online…es. riuso un modulo già sviluppato per altro sito

S. Crafa A.A. 20/21

Astrazione

processo produttivo

@

modello formale

struttura statica

processo dinamico

focalizzarsi sugli aspetti cruciali del problema, ignorando i dettagli irrilevanti

S. Crafa A.A. 20/21

Astrazione

Sistema Operativo

Hardware Software

focalizzarsi sugli aspetti cruciali del problema, ignorando i dettagli irrilevanti

(3)

S. Crafa A.A. 20/21

Astrazione

modello epidemiologico

per studiare andamento di una pandemia

S. Crafa A.A. 20/21

S. Crafa A.A. 20/21

modello epidemiologico

per studiare andamento di una pandemia

una simulazione permette di modellare una situazione ed esplorare le sue possibili evoluzioni. È uno strumento molto potente per migliorare la comprensione di un fenomeno

La computazione è unica nella sua capacità di rendere concreto il modello astratto definito dalla simulazione

https://www.math.unipd.it/news/la-matematica-del-contagio/

modello matematico:

equazioni che descrivono il comportamento del sistema

S. Crafa A.A. 20/21

scienze naturali

informatica

ingegneria

progettazione (design)

comporre e gestire sistemi

valutare costi e benefici

tecnologia informatica matematica

uso di linguaggio formale per esprimere concetti

scienza

informatica

osservare sistemi complessi, fare ipotesi e verificare previsioni:

simulazione e analisi

SOCIETA’

Politica Economia Filosofia Psicologia ….

(4)

S. Crafa A.A. 20/21

2. soluzioni in formato eseguibile

il linguaggio di programmazione è progettato per essere conciso e non ambiguo: poche istruzioni con significato univoco e indipendente dal contesto

Un programma consiste di una serie di istruzioni che spiegano come effettuare una computazione

es. un calcolo matematico, una elaborazione di un testo, un’operazione grafica, la riproduzione di un filmato…

errori di sintassi: uso di simboli errati o di struttura non corretta

errori di semantica (o di logica): il programma si comporta in modo diverso dal previsto… il programma fa quello che il programmatore ha scritto, ma si è espresso in modo errato

S. Crafa A.A. 20/21

https://snap.berkeley.edu

https://bjc.edc.org/bjc-r/course/bjc4nyc.html

S. Crafa A.A. 20/21

future su bitcoin (BTC)

linguaggio Marlowe

per scrivere smart contracts finanziari sulla piattaforma Cardano

S. Crafa A.A. 20/21

python 3

print('Ciao! a cosa vuoi giocare?')

input('1.Scacchi 2.Indovina il numero 3.Guerra termonucleare globale') print(‘Hai scelto: Indovina il numero Ottima scelta!')

answer = input('inserisci il numero: ') if answer == 7 :

print('Indovinato!') else:

print(‘Sbagliato...sarai piu fortunato in amore’)

È un programma

sbagliato?

(5)

S. Crafa A.A. 20/21

Algoritmo per disegnare una casa:

• disegna un quadrato

• disegna un triangolo

Decomposizione

Algoritmo per disegnare un quadrato:

ripeti 4 volte

• gira il cursore di 90 gradi

• disegna un lato

Algoritmo per disegnare un tirangolo:

Algoritmo per disegnare una fila di case:

ripeti finche’ c’è spazio:

• disegna una casa

• sposta il cursore

S. Crafa A.A. 20/21

dall’algoritmo all’ implementazione

Algoritmo si riferisce alla soluzione concettuale del problema

Implementazione (dell’algoritmo) si riferisce al codice di un programma che realizza l’algoritmo

S. Crafa A.A. 20/21

ripeti finche’ c’è spazio

disegna una casa sposta la pennae

dall’algoritmo all’ implementazione

S. Crafa A.A. 20/21

Decomposizione

# programma che disegna una fila di case:

# invoca l’algoritmo definito sopra draw_a_row_of_houses()

def draw_a_row_of_houses():

max_area=240 position=0

# 50 is the dimension of a house while position+50 < max_area:

draw_house(50)

print('sposta la penna') position=position+50

# procedura per disegnare una casa def draw_house(dim):

draw_square(dim) draw_triangle(dim)

# procedura per “disegnare” un quadrato def draw_square(dim):

print('disegna un quadrato')

# procedura per “disegnare” un quadrato def draw_triangle(dim):

print('disegna un triangolo')

# procedura per disegnare una fila di case:

dall’algoritmo all’ implementazione

in Snap! ci sono istruzioni per disegnare una linea e girare il

cursore, è un linguaggio pensato anche per questo.

in Python non ci sono, quindi scriviamo le parole (oppure usare la libreria grafica:

import turtle) python 3

Riferimenti

Documenti correlati

« Non occorre che io ripeta nuovi avvisi, perchè si coltivino molto le vocazioni allo stato ecclesiastico. Questo è lo scopo principale, a cui tende ora la

28 Esistono sostanziali differenze tra gli Stati membri UE riguardo alla legislazione in materia di criminalità organizzata, per esempio per quanto riguarda la definizione dei

E anche Fuomo cattivo puö essere amico al cattivo: essi infatti possono essere amici in quanto hanno lo stesso interesse&#34;, Grande etica, 1209 b.. „L'amico deve pur esser

Oltre alle stanze l'edificio dovrà contenere: hall di ingresso, ufficio, sala ristorante e prima colazione (50 coperti), cucina, magazzini, servizi per il pubblico e per il

Regolare l’intensità della luce con il dimmer collocato sulla parte superiore dell’apparecchio L’intensità più bassa consente la visualizzazione del valore, delle macro e

TRATTARE IL VISO COME IL CORPO È IL nuovo principio dello skincare antietà, che punta a sollevare le palpebre, ridefinire le labbra, modellare l'ovale, tonificare il collo.. E per

pertanto a lui, non solo perché relatore della mia tesi di Laurea magistrale Maria e Marta: storia di un’iconografia, ma anche per aver interpretato il suo ruolo di guida ai

→ Quando è dichiarata la protezione da calore e fiamme, controllare tra le caratteristiche la dicitura &#34;EN 407&#34; che riporta i sei valori di resistenza del guanto, tenendo