SlideShare a Scribd company logo
Coding Class
da Scratch a Python
> Enrico La Sala
> FabLab Western Sicily
> 03 ottobre 2020
1842
Ada Lovelace scrive il primo
algoritmo della storia per la
macchina analitica di Babbage.
È l’inizio della scienza
dell’informazione.
1954
Un gruppo di lavoro dell’IBM
guidato da John Backus teorizza e
successivamente implementa il
FORTRAN, uno dei capostipiti dei
linguaggi di programmazione
moderni.
1970
Niklaus Wirth crea il
Pascal, il primo linguaggio
di programmazione adatto
alla didattica.
1972
Viene creato il C da
Dennis Ritchie, ancora
oggi uno dei linguaggi più
potenti e più usati nella
programmazione.
1984
Il C viene ampliato
con la teoria della
programmazione ad
oggetti: nasce il C++.
1842 1946 1954 1970 1972 1984
Grazie anche al
lavoro di Alan
Turing negli anni
precedenti, nasce
la macchina
astratta di Von
Neumann. 1946
Breve storia del Coding
> 2020, le macchine teorizzate da Babbage e Turing sono
diventate reali e hanno rivoluzionato il mondo e l’idea stessa di
innovazione!
> L’esercizio di programmazione fatto da Ada pensando ad una
macchina “inesistente” è diventato la professionalità più
ricercata sul mercato del lavoro per far funzionare i miliardi di
oggetti programmabili esistenti che usiamo ogni giorno.
> Per essere adeguatamente preparato a lavori del futuro (o
meglio del presente!) è indispensabile avere una buona
comprensione dei concetti di base dell'informatica. Esattamente
com'è accaduto nel passato per le altre materie scientifiche.
L’Informatica e il pensiero computazionale
I benefici del “pensiero computazionale”: In tutti i lavori moderni ogni giorno si devono affrontare
problemi complessi; ipotizzare soluzioni che prevedono più fasi e la COLLABORAZIONE con altre
persone; formulare una descrizione chiara di cosa fare e quando farlo e quali debbano essere gli output.
Sviluppato dal MIT Media Lab a
partire dal 2003, consente di
elaborare storie interattive, giochi,
animazioni, arte e musica.
Inoltre permette di condividere i
progetti con altri utenti del web!
scratch.mit.edu
scratch.mit.edu/projects/editor/
CHE COS’È?
Linguaggio di programmazione ispirato alla teoria
costruzionista dell'apprendimento e progettato per
l'insegnamento della programmazione tramite
primitive visive.
CHE COS’È?
Linguaggio di programmazione dinamico
orientato agli oggetti utilizzabile per molti
tipi di sviluppo software.
Offre un forte supporto all'integrazione con
altri linguaggi e programmi.
Python supporta la maggioranza dei
sistemi operativi (Windows, Mac, Linux,
Mobile etc.) e può essere utilizzato nella
maggior parte degli ambiti professionali.
Negli ultimi anni è stato il linguaggio di
programmazione con il più alto tasso di
adozione.
Ideato da Guido van Rossum
all'inizio degli anni novanta, il
nome fu scelto per la passione
dello stesso inventore verso i
Monty Python.
python.org
repl.it/languages/python3
Concetti computazionali
Concetto Descrizione
SEQUENZA Una serie di passaggi in un azione
LOOPS Eseguire la stessa sequenza più volte
PARALLELISMO Far accadere le cose contemporaneamente
EVENTI Una causa determina un effetto
CONDIZIONI Prendere decisioni in base alle condizioni
OPERATORI Espressioni matematiche e logiche
DATI Memorizzare, recuperare ed aggiornare valori
Tratto da https://www.slideshare.net/fpassantino/game-coding-for-kids
Pratiche computazionali
Pratica Descrizione
PRODURRE PER ITERAZIONI ED
INCREMENTI
Sviluppare una parte per volta, provare e svilupparne
ancora
TESTARE E RIMUOVERE GLI ERRORI Essere sicuri che le cose funzionino, cercare e risolvere
gli errori
RICICLARE E MESCOLARE Creare qualcosa partendo da materiale creato da altri
ASTRARRE E RENDERE MODULARE Creare qualcosa di grande mettendo insieme una
collezione di piccole parti
Tratto da https://www.slideshare.net/fpassantino/game-coding-for-kids
“Ciao” è un testo o una sequenza di caratteri.
In informatica una sequenza di caratteri si chiama STRINGA
I numeri rappresentano dei VALORI
Una VARIABILE è un contenitore (scatola) che ha:
1. Un'etichetta , che è il nome della variabile
2. Un contenuto, che può cambiare nel tempo
Alcuni concetti base
A
10
ETICHETTA
CONTENUTO
I concetti di ingresso e uscita
Azioni di ingresso (INPUT):
Azioni con cui il programma richiede in ingresso un dato. ( Ex. Python - input() )
Possibilità dell’utente di inserire i dati per risolvere il problema.
“Leggono” da una unità di ingresso e “scrivono” su una variabile, il cui stato viene pertanto alterato.
Azioni di uscita(output):
Azioni con cui il programma mostra un dato in uscita. (Ex. Python - print(), return)
Mostrano il valore finale di una variabile o un messaggio, sulla base del comportamento del programma e
dei dati di ingresso inseriti.
INGRESSO PROGRAMMA USCITA
Operatori Logici
somigliano alle congiunzioni della lingua italiana
|| OR: condizione1 && condizione2, verifica che almeno una delle
condizioni sia verificata
&& AND : condizione1 && condizione2, verifica che entrambe le
condizioni siano verificate
| NOT: !condizione, indica l’opposto della condizione
Operatori Matematici:
“+” , “-” ,“ x” e “/ “, vengono detti operatori matematici
Un' ESPRESSIONE aritmetica, in
matematica, è un insieme di
numeri legati da operatori
Gli operatori
66 - 44 + 1
Le strutture di controllo condizionali consentono di specificare che una data istruzione o un dato
blocco di istruzioni devono essere eseguiti "(solo) se" vale una certa condizione.
L'alternativa if-then (se-allora) è la più semplice forma di alternativa.
I
Le strutture condizionali - if/else
CONDIZIONE
ISTRUZIONE
ll suo significato può essere
parafrasato con la frase
SE
vale la condizione C,
ALLORA
esegui l'istruzione (blocco) I.
Le strutture condizionali - if/else
La maggior parte dei linguaggi di programmazione ammette anche (come variante) la forma
più articolata if-then-else ("se-allora-altrimenti"), che si può parafrasare come:
SE
vale la condizione C
ALLORA
esegui l'istruzione (blocco) I1
ALTRIMENTI
esegui l'istruzione (blocco) I2
Le strutture di controllo iterativo - while
Il ciclo while è un flusso di controllo che consente l'esecuzione ripetuta di alcune istruzioni in
base a una condizione di entrata ("finché la condizione C è vera esegui I").
Il ciclo si può interrompere attraverso il cambiamento della variabile considerata nella condizione
di entrata nelle istruzioni o attraverso il cambiamento di quest'ultima attraverso eventi esterni al
ciclo.
FINCHÈ
vale la condizione C
ALLORA
esegui l'istruzione (blocco) I
Le strutture di controllo iterativo - for
Il ciclo for è una struttura di controllo iterativa che permette l'esecuzione di istruzioni ripetute per
un certo numero noto di volte.
Il fatto che il numero di ripetizioni sia definito direttamente all'entrata del ciclo lo distingue dal
ciclo while.
Una delle possibilità per definire il numero di cicli è la funzione range(n), dove n indica il numero
di volte in cui si vogliono eseguire le istruzioni del ciclo.
FINCHÈ
Un numero N è minore di un certo valore
ALLORA
esegui l'istruzione (blocco) I
INCREMENTA N
N=N+1
Le strutture di controllo iterativo - break e continue
Ci sono due espressioni correlate ai cicli while e for: le
istruzioni break e continue.
L'istruzione break INTERROMPE immediatamente
l'esecuzione del ciclo, in questo modo il programma
eseguirá l'istruzione successiva al ciclo iterativo.
L'istruzione continue interrompe l'esecuzione
dell'iterazione e PASSA ALLA SUCCESSIVA
(Incrementando l'iterazione nel caso di for)
Continue
Break
Costruiamo una calcolatrice
Per costruire un programma che simula una calcolatrice
utilizzeremo i seguenti strumenti visti oggi:
● Operatori numerici e variabili
● Funzione input() e output (print())
● Istruzioni di controllo if e else
● Funzioni di conversione di tipo (str(), float())
● Ciclo while e istruzioni break e continue
Domande?
Via Ludovico Anselmi Correale, 12

More Related Content

What's hot

Linguaggio C++ - Basi
Linguaggio C++ - BasiLinguaggio C++ - Basi
Linguaggio C++ - Basi
I.S.I.S. "Antonio Serra" - Napoli
 
Spyppolare o non spyppolare
Spyppolare o non spyppolareSpyppolare o non spyppolare
Spyppolare o non spyppolare
PyCon Italia
 
La metodologia Top - Down - applicazione al C++
La metodologia Top - Down - applicazione al C++La metodologia Top - Down - applicazione al C++
La metodologia Top - Down - applicazione al C++
I.S.I.S. "Antonio Serra" - Napoli
 
Corso python 2020 - Lezione 1
Corso python 2020 - Lezione 1Corso python 2020 - Lezione 1
Corso python 2020 - Lezione 1
Riccardo Bortoluzzi
 
Introduzione a Python
Introduzione a PythonIntroduzione a Python
Introduzione a Python
Emanuel Di Nardo
 
Python@Unina - Theory
Python@Unina - TheoryPython@Unina - Theory
Python@Unina - Theory
NaLUG
 
Programmazione Top Down in C++
Programmazione Top Down in C++Programmazione Top Down in C++
Programmazione Top Down in C++
I.S.I.S. "Antonio Serra" - Napoli
 
Laboratorio Programmazione: Overflow e switch
Laboratorio Programmazione: Overflow e switchLaboratorio Programmazione: Overflow e switch
Laboratorio Programmazione: Overflow e switchMajong DevJfu
 
Functional Programming per tutti
Functional Programming per tuttiFunctional Programming per tutti
Functional Programming per tutti
Giancarlo Valente
 
Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)STELITANO
 
Introduzione a R
Introduzione a RIntroduzione a R
Introduzione a RMCalderisi
 
Programmazione funzionale e Stream in Java
Programmazione funzionale e Stream in JavaProgrammazione funzionale e Stream in Java
Programmazione funzionale e Stream in Java
Cristina Attori
 

What's hot (17)

Linguaggio C++ - Basi
Linguaggio C++ - BasiLinguaggio C++ - Basi
Linguaggio C++ - Basi
 
Spyppolare o non spyppolare
Spyppolare o non spyppolareSpyppolare o non spyppolare
Spyppolare o non spyppolare
 
La metodologia Top - Down - applicazione al C++
La metodologia Top - Down - applicazione al C++La metodologia Top - Down - applicazione al C++
La metodologia Top - Down - applicazione al C++
 
T4 tipizzazione
T4 tipizzazioneT4 tipizzazione
T4 tipizzazione
 
Corso python 2020 - Lezione 1
Corso python 2020 - Lezione 1Corso python 2020 - Lezione 1
Corso python 2020 - Lezione 1
 
Introduzione a Python
Introduzione a PythonIntroduzione a Python
Introduzione a Python
 
Python@Unina - Theory
Python@Unina - TheoryPython@Unina - Theory
Python@Unina - Theory
 
T8 supporti
T8 supportiT8 supporti
T8 supporti
 
Pyscuola
PyscuolaPyscuola
Pyscuola
 
Programmazione Top Down in C++
Programmazione Top Down in C++Programmazione Top Down in C++
Programmazione Top Down in C++
 
Laboratorio Programmazione: Overflow e switch
Laboratorio Programmazione: Overflow e switchLaboratorio Programmazione: Overflow e switch
Laboratorio Programmazione: Overflow e switch
 
Functional Programming per tutti
Functional Programming per tuttiFunctional Programming per tutti
Functional Programming per tutti
 
Pe t1 perl-intro
Pe t1 perl-introPe t1 perl-intro
Pe t1 perl-intro
 
T7 librerie
T7 librerieT7 librerie
T7 librerie
 
Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)
 
Introduzione a R
Introduzione a RIntroduzione a R
Introduzione a R
 
Programmazione funzionale e Stream in Java
Programmazione funzionale e Stream in JavaProgrammazione funzionale e Stream in Java
Programmazione funzionale e Stream in Java
 

Similar to Coding class da scratch a python

Algoritmi
Algoritmi Algoritmi
Algoritmi
Emilia Calzetta
 
Corso di Basi e Fondamenti di Programmazione in C++ Lezione 1
Corso di Basi e Fondamenti di Programmazione in C++ Lezione 1Corso di Basi e Fondamenti di Programmazione in C++ Lezione 1
Corso di Basi e Fondamenti di Programmazione in C++ Lezione 1
Daniele Falamesca
 
Continous Delivery & HQ Code
Continous Delivery & HQ CodeContinous Delivery & HQ Code
Continous Delivery & HQ Code
Daniele Mondello
 
Modulo 1 concetti di base dell'ict
Modulo 1 concetti di base dell'ictModulo 1 concetti di base dell'ict
Modulo 1 concetti di base dell'ictAndreina Concas
 
What is new in C# 2018
What is new in C# 2018What is new in C# 2018
What is new in C# 2018
Marco Parenzan
 
Lezioni di programmazione in c i file By Cristian Randieri - www.intellisyste...
Lezioni di programmazione in c i file By Cristian Randieri - www.intellisyste...Lezioni di programmazione in c i file By Cristian Randieri - www.intellisyste...
Lezioni di programmazione in c i file By Cristian Randieri - www.intellisyste...
Cristian Randieri PhD
 
Caratteristiche del linguaggio c
Caratteristiche del linguaggio cCaratteristiche del linguaggio c
Caratteristiche del linguaggio cughetta
 
Modellazione geometrica generativa: un approccio algoritmico
Modellazione geometrica generativa: un approccio algoritmicoModellazione geometrica generativa: un approccio algoritmico
Modellazione geometrica generativa: un approccio algoritmico
Antonio Turiello
 
Inferno Limbo Italian
Inferno Limbo ItalianInferno Limbo Italian
Inferno Limbo Italian
Alberto Minetti
 
Continuous Integration e High Quality Code
Continuous Integration e High Quality CodeContinuous Integration e High Quality Code
Continuous Integration e High Quality Code
Daniele Mondello
 
Concorso Informatici C3 INPS 2007 - Banca Dati
Concorso Informatici C3 INPS 2007 - Banca DatiConcorso Informatici C3 INPS 2007 - Banca Dati
Concorso Informatici C3 INPS 2007 - Banca Dati
Concorsando.it
 
2011.02.19 Introducing F#
2011.02.19 Introducing F#2011.02.19 Introducing F#
2011.02.19 Introducing F#
Marco Parenzan
 
Progetto MIPS/SPIM AA 2010-2011
Progetto MIPS/SPIM AA 2010-2011Progetto MIPS/SPIM AA 2010-2011
Progetto MIPS/SPIM AA 2010-2011Nicola Paoletti
 
Lezione 4 (7 marzo 2012)
Lezione 4 (7 marzo 2012)Lezione 4 (7 marzo 2012)
Lezione 4 (7 marzo 2012)STELITANO
 
15 - Programmazione: Algoritmi
15 - Programmazione: Algoritmi15 - Programmazione: Algoritmi
15 - Programmazione: AlgoritmiMajong DevJfu
 
Sviluppo Di Applicazioni Su I Os
Sviluppo Di Applicazioni Su I OsSviluppo Di Applicazioni Su I Os
Sviluppo Di Applicazioni Su I Os
NoDelay Software
 

Similar to Coding class da scratch a python (20)

Algoritmi
Algoritmi Algoritmi
Algoritmi
 
Corso di Basi e Fondamenti di Programmazione in C++ Lezione 1
Corso di Basi e Fondamenti di Programmazione in C++ Lezione 1Corso di Basi e Fondamenti di Programmazione in C++ Lezione 1
Corso di Basi e Fondamenti di Programmazione in C++ Lezione 1
 
Continous Delivery & HQ Code
Continous Delivery & HQ CodeContinous Delivery & HQ Code
Continous Delivery & HQ Code
 
05 1 intro-struttura
05 1 intro-struttura05 1 intro-struttura
05 1 intro-struttura
 
1 Programmazione
1   Programmazione1   Programmazione
1 Programmazione
 
Modulo 1 concetti di base dell'ict
Modulo 1 concetti di base dell'ictModulo 1 concetti di base dell'ict
Modulo 1 concetti di base dell'ict
 
What is new in C# 2018
What is new in C# 2018What is new in C# 2018
What is new in C# 2018
 
Modulo 1 - Dispensa
Modulo 1 - DispensaModulo 1 - Dispensa
Modulo 1 - Dispensa
 
Lezioni di programmazione in c i file By Cristian Randieri - www.intellisyste...
Lezioni di programmazione in c i file By Cristian Randieri - www.intellisyste...Lezioni di programmazione in c i file By Cristian Randieri - www.intellisyste...
Lezioni di programmazione in c i file By Cristian Randieri - www.intellisyste...
 
Caratteristiche del linguaggio c
Caratteristiche del linguaggio cCaratteristiche del linguaggio c
Caratteristiche del linguaggio c
 
Modellazione geometrica generativa: un approccio algoritmico
Modellazione geometrica generativa: un approccio algoritmicoModellazione geometrica generativa: un approccio algoritmico
Modellazione geometrica generativa: un approccio algoritmico
 
7 Sottoprogrammi
7   Sottoprogrammi7   Sottoprogrammi
7 Sottoprogrammi
 
Inferno Limbo Italian
Inferno Limbo ItalianInferno Limbo Italian
Inferno Limbo Italian
 
Continuous Integration e High Quality Code
Continuous Integration e High Quality CodeContinuous Integration e High Quality Code
Continuous Integration e High Quality Code
 
Concorso Informatici C3 INPS 2007 - Banca Dati
Concorso Informatici C3 INPS 2007 - Banca DatiConcorso Informatici C3 INPS 2007 - Banca Dati
Concorso Informatici C3 INPS 2007 - Banca Dati
 
2011.02.19 Introducing F#
2011.02.19 Introducing F#2011.02.19 Introducing F#
2011.02.19 Introducing F#
 
Progetto MIPS/SPIM AA 2010-2011
Progetto MIPS/SPIM AA 2010-2011Progetto MIPS/SPIM AA 2010-2011
Progetto MIPS/SPIM AA 2010-2011
 
Lezione 4 (7 marzo 2012)
Lezione 4 (7 marzo 2012)Lezione 4 (7 marzo 2012)
Lezione 4 (7 marzo 2012)
 
15 - Programmazione: Algoritmi
15 - Programmazione: Algoritmi15 - Programmazione: Algoritmi
15 - Programmazione: Algoritmi
 
Sviluppo Di Applicazioni Su I Os
Sviluppo Di Applicazioni Su I OsSviluppo Di Applicazioni Su I Os
Sviluppo Di Applicazioni Su I Os
 

More from Enrico La Sala

Intelligenza artificiale
Intelligenza artificialeIntelligenza artificiale
Intelligenza artificiale
Enrico La Sala
 
Arduino day 2017
Arduino day 2017Arduino day 2017
Arduino day 2017
Enrico La Sala
 
Introduzione alla sicurezza informatica
Introduzione alla  sicurezza informaticaIntroduzione alla  sicurezza informatica
Introduzione alla sicurezza informatica
Enrico La Sala
 
Introduzione all’Iot e alle schede elettroniche
Introduzione all’Iot e alle schede elettronicheIntroduzione all’Iot e alle schede elettroniche
Introduzione all’Iot e alle schede elettroniche
Enrico La Sala
 
Introduzione alla programmazione
Introduzione alla programmazioneIntroduzione alla programmazione
Introduzione alla programmazione
Enrico La Sala
 
Google Cardboard e l’evoluzione dei visori VR
Google Cardboard e l’evoluzione dei visori VRGoogle Cardboard e l’evoluzione dei visori VR
Google Cardboard e l’evoluzione dei visori VR
Enrico La Sala
 

More from Enrico La Sala (6)

Intelligenza artificiale
Intelligenza artificialeIntelligenza artificiale
Intelligenza artificiale
 
Arduino day 2017
Arduino day 2017Arduino day 2017
Arduino day 2017
 
Introduzione alla sicurezza informatica
Introduzione alla  sicurezza informaticaIntroduzione alla  sicurezza informatica
Introduzione alla sicurezza informatica
 
Introduzione all’Iot e alle schede elettroniche
Introduzione all’Iot e alle schede elettronicheIntroduzione all’Iot e alle schede elettroniche
Introduzione all’Iot e alle schede elettroniche
 
Introduzione alla programmazione
Introduzione alla programmazioneIntroduzione alla programmazione
Introduzione alla programmazione
 
Google Cardboard e l’evoluzione dei visori VR
Google Cardboard e l’evoluzione dei visori VRGoogle Cardboard e l’evoluzione dei visori VR
Google Cardboard e l’evoluzione dei visori VR
 

Coding class da scratch a python

  • 1. Coding Class da Scratch a Python > Enrico La Sala > FabLab Western Sicily > 03 ottobre 2020
  • 2. 1842 Ada Lovelace scrive il primo algoritmo della storia per la macchina analitica di Babbage. È l’inizio della scienza dell’informazione. 1954 Un gruppo di lavoro dell’IBM guidato da John Backus teorizza e successivamente implementa il FORTRAN, uno dei capostipiti dei linguaggi di programmazione moderni. 1970 Niklaus Wirth crea il Pascal, il primo linguaggio di programmazione adatto alla didattica. 1972 Viene creato il C da Dennis Ritchie, ancora oggi uno dei linguaggi più potenti e più usati nella programmazione. 1984 Il C viene ampliato con la teoria della programmazione ad oggetti: nasce il C++. 1842 1946 1954 1970 1972 1984 Grazie anche al lavoro di Alan Turing negli anni precedenti, nasce la macchina astratta di Von Neumann. 1946 Breve storia del Coding
  • 3. > 2020, le macchine teorizzate da Babbage e Turing sono diventate reali e hanno rivoluzionato il mondo e l’idea stessa di innovazione! > L’esercizio di programmazione fatto da Ada pensando ad una macchina “inesistente” è diventato la professionalità più ricercata sul mercato del lavoro per far funzionare i miliardi di oggetti programmabili esistenti che usiamo ogni giorno. > Per essere adeguatamente preparato a lavori del futuro (o meglio del presente!) è indispensabile avere una buona comprensione dei concetti di base dell'informatica. Esattamente com'è accaduto nel passato per le altre materie scientifiche. L’Informatica e il pensiero computazionale I benefici del “pensiero computazionale”: In tutti i lavori moderni ogni giorno si devono affrontare problemi complessi; ipotizzare soluzioni che prevedono più fasi e la COLLABORAZIONE con altre persone; formulare una descrizione chiara di cosa fare e quando farlo e quali debbano essere gli output.
  • 4. Sviluppato dal MIT Media Lab a partire dal 2003, consente di elaborare storie interattive, giochi, animazioni, arte e musica. Inoltre permette di condividere i progetti con altri utenti del web! scratch.mit.edu scratch.mit.edu/projects/editor/ CHE COS’È? Linguaggio di programmazione ispirato alla teoria costruzionista dell'apprendimento e progettato per l'insegnamento della programmazione tramite primitive visive.
  • 5. CHE COS’È? Linguaggio di programmazione dinamico orientato agli oggetti utilizzabile per molti tipi di sviluppo software. Offre un forte supporto all'integrazione con altri linguaggi e programmi. Python supporta la maggioranza dei sistemi operativi (Windows, Mac, Linux, Mobile etc.) e può essere utilizzato nella maggior parte degli ambiti professionali. Negli ultimi anni è stato il linguaggio di programmazione con il più alto tasso di adozione. Ideato da Guido van Rossum all'inizio degli anni novanta, il nome fu scelto per la passione dello stesso inventore verso i Monty Python. python.org repl.it/languages/python3
  • 6. Concetti computazionali Concetto Descrizione SEQUENZA Una serie di passaggi in un azione LOOPS Eseguire la stessa sequenza più volte PARALLELISMO Far accadere le cose contemporaneamente EVENTI Una causa determina un effetto CONDIZIONI Prendere decisioni in base alle condizioni OPERATORI Espressioni matematiche e logiche DATI Memorizzare, recuperare ed aggiornare valori Tratto da https://www.slideshare.net/fpassantino/game-coding-for-kids
  • 7. Pratiche computazionali Pratica Descrizione PRODURRE PER ITERAZIONI ED INCREMENTI Sviluppare una parte per volta, provare e svilupparne ancora TESTARE E RIMUOVERE GLI ERRORI Essere sicuri che le cose funzionino, cercare e risolvere gli errori RICICLARE E MESCOLARE Creare qualcosa partendo da materiale creato da altri ASTRARRE E RENDERE MODULARE Creare qualcosa di grande mettendo insieme una collezione di piccole parti Tratto da https://www.slideshare.net/fpassantino/game-coding-for-kids
  • 8. “Ciao” è un testo o una sequenza di caratteri. In informatica una sequenza di caratteri si chiama STRINGA I numeri rappresentano dei VALORI Una VARIABILE è un contenitore (scatola) che ha: 1. Un'etichetta , che è il nome della variabile 2. Un contenuto, che può cambiare nel tempo Alcuni concetti base A 10 ETICHETTA CONTENUTO
  • 9. I concetti di ingresso e uscita Azioni di ingresso (INPUT): Azioni con cui il programma richiede in ingresso un dato. ( Ex. Python - input() ) Possibilità dell’utente di inserire i dati per risolvere il problema. “Leggono” da una unità di ingresso e “scrivono” su una variabile, il cui stato viene pertanto alterato. Azioni di uscita(output): Azioni con cui il programma mostra un dato in uscita. (Ex. Python - print(), return) Mostrano il valore finale di una variabile o un messaggio, sulla base del comportamento del programma e dei dati di ingresso inseriti. INGRESSO PROGRAMMA USCITA
  • 10. Operatori Logici somigliano alle congiunzioni della lingua italiana || OR: condizione1 && condizione2, verifica che almeno una delle condizioni sia verificata && AND : condizione1 && condizione2, verifica che entrambe le condizioni siano verificate | NOT: !condizione, indica l’opposto della condizione Operatori Matematici: “+” , “-” ,“ x” e “/ “, vengono detti operatori matematici Un' ESPRESSIONE aritmetica, in matematica, è un insieme di numeri legati da operatori Gli operatori 66 - 44 + 1
  • 11. Le strutture di controllo condizionali consentono di specificare che una data istruzione o un dato blocco di istruzioni devono essere eseguiti "(solo) se" vale una certa condizione. L'alternativa if-then (se-allora) è la più semplice forma di alternativa. I Le strutture condizionali - if/else CONDIZIONE ISTRUZIONE ll suo significato può essere parafrasato con la frase SE vale la condizione C, ALLORA esegui l'istruzione (blocco) I.
  • 12. Le strutture condizionali - if/else La maggior parte dei linguaggi di programmazione ammette anche (come variante) la forma più articolata if-then-else ("se-allora-altrimenti"), che si può parafrasare come: SE vale la condizione C ALLORA esegui l'istruzione (blocco) I1 ALTRIMENTI esegui l'istruzione (blocco) I2
  • 13. Le strutture di controllo iterativo - while Il ciclo while è un flusso di controllo che consente l'esecuzione ripetuta di alcune istruzioni in base a una condizione di entrata ("finché la condizione C è vera esegui I"). Il ciclo si può interrompere attraverso il cambiamento della variabile considerata nella condizione di entrata nelle istruzioni o attraverso il cambiamento di quest'ultima attraverso eventi esterni al ciclo. FINCHÈ vale la condizione C ALLORA esegui l'istruzione (blocco) I
  • 14. Le strutture di controllo iterativo - for Il ciclo for è una struttura di controllo iterativa che permette l'esecuzione di istruzioni ripetute per un certo numero noto di volte. Il fatto che il numero di ripetizioni sia definito direttamente all'entrata del ciclo lo distingue dal ciclo while. Una delle possibilità per definire il numero di cicli è la funzione range(n), dove n indica il numero di volte in cui si vogliono eseguire le istruzioni del ciclo. FINCHÈ Un numero N è minore di un certo valore ALLORA esegui l'istruzione (blocco) I INCREMENTA N N=N+1
  • 15. Le strutture di controllo iterativo - break e continue Ci sono due espressioni correlate ai cicli while e for: le istruzioni break e continue. L'istruzione break INTERROMPE immediatamente l'esecuzione del ciclo, in questo modo il programma eseguirá l'istruzione successiva al ciclo iterativo. L'istruzione continue interrompe l'esecuzione dell'iterazione e PASSA ALLA SUCCESSIVA (Incrementando l'iterazione nel caso di for) Continue Break
  • 16. Costruiamo una calcolatrice Per costruire un programma che simula una calcolatrice utilizzeremo i seguenti strumenti visti oggi: ● Operatori numerici e variabili ● Funzione input() e output (print()) ● Istruzioni di controllo if e else ● Funzioni di conversione di tipo (str(), float()) ● Ciclo while e istruzioni break e continue