INTRODUZIONEAL CORSOE PRIME NOZIONI
Transcript of INTRODUZIONEAL CORSOE PRIME NOZIONI
FONDAMENTI DI INFORMATICA
INTRODUZIONE AL CORSO E PRIME NOZIONI
Prof. Alfredo Accattatis
Info
• INGEGNERIA ENERGETICA/MECCANICA
• Aula 4, tranne in caso di esplicita comunicazione, p. es.
se si decide una lezione aggiuntiva e/o di “recupero”
• Ingegnere Informatico/Elettronico
• Esperienza : accademica, ditte private e pubbliche,
professione
• …Siamo (saremo) colleghi!
• Il corso in aula aggiunge, rispetto al materiale distribuito
(e quando possibile), elementi presi da esperienza “sul
campo” (mondo “reale” degli Ingegneri)
• Possibilità di lezione extra su argomenti correlati al lavoro
Fondamenti di Informatica - Alfredo Accattatis 2
Informazioni di base
• Alfredo Accattatis • [email protected]
• Ricevimento studenti (teorico!)• Quando: lunedi dopo le 18:00
• Dove: stanza 19 (piano terra), Edificio “Ingegneria dell’Informazione”
• In realtà essendo ESTERNO non ho una stanza personale in ateneo, pertanto i contatti avverranno in via telematica, e solo in casi particolarinell’aula indicata
• Alternativa “scomoda” : Roma EUR, piazza Marconi.
• Le domande andranno principalmente poste al TUTOR in via telematica oppure si fissa un incontro
TUTOR: dott. Marcello Colella
3Fondamenti di Informatica - Alfredo Accattatis
Stanza in dettaglio: 19, Edificio D Ing.
Informazione
Fondamenti di Informatica - Alfredo Accattatis 4
Iscrizione al corso
Fondamenti di Informatica - Alfredo Accattatis 5
❑E’ stata abilitata la sezione iscrizione al corso sulla
piattaforma DELPHI (delphi.uniroma2.it)
❑La richiedo per fini statistici e per meglio programmare il
corso: in particolare per comunicazioni, esami, dispense
esercitazioni. Importantissima se dovesse verificarsi
l’eventualità di NON poter essere a lezione. Fornite un
indirizzo VALIDO che LEGGETE altrimenti è inutile
❑Facoltativo e più veloce: se conosceteTELEGRAM
cercate il canale @FOIAA1819, utile per comunicazioni
velocissime ed invio materiali
Dove trovare il materiale
▪ Sito ufficiale:
• Informazioni, slide
• Dispense sostituite dal libro di testo
• Gradito feedback
• http://didatticaweb.uniroma2.it
• Amici
• Forum
• Varie…
6Fondamenti di Informatica - Alfredo Accattatis
Premessa:
Fondamenti di Informatica - Alfredo Accattatis 7
Il corso di fondamenti di Informatica è per voi strumentale,
ossia l’informatica è solo un mezzo e non (anche) un fine.
Lo scopo del corso è dunque quello di fornire gli strumenti
teorici di base e principalmente la capacità di scrivere dei
programmi con un linguaggio di programmazione
Materiale per studiare
• Slide e Libro di testo• Slide rilasciate dopo ogni lezione
• Testo: Fondamenti di Informatica (Accattatis)
• Libreria TEXMAT, Via di Tor Vergata 93/95
• Rinuncia ai diritti di autore
• Tool di programmazione:
• Matlab - http://www.mathworks.com
• Octave - http://www.gnu.org/software/octave/
Fondamenti di Informatica - Alfredo Accattatis 8
Nota: le slide non sostituiscono il libro di testo!
Come studiare….
• Il testo in apparenza molto corposo…
• Il corso è da 6 (sei) crediti
• Soluzione:
Usate le slide come linea guida ed il
testo per «comprendere» le slide…e
quando richiesto fate gli esercizi!!
Fondamenti di Informatica - Alfredo Accattatis 9
Perché Matlab/Octave
• Matlab è più di un semplice linguaggio. Esso è un
“pacchetto”, ossia un insieme di programmi associati ad
un linguaggio di programmazione che permette di
implementare algoritmi “automatici”(come ogni linguaggio)
ma permette di andare molto oltre (esempio: simulazione
di sistemi, compilazione, grafica, etc.)
• Matlab è un linguaggio ad “alto livello”
• Permette di tradurre in pratica i concetti teorici appresi
durante le lezioni di Fondamenti di Informatica.
• Questo NON è un corso di MATLAB puro
Fondamenti di Informatica - Alfredo Accattatis 10
OCTAVE
• Octave con GUI (versione 3.8.1 e seguenti, attuale 4.2.2):
1. Sotto Linux, la versione 3.8 si trova sia su Fedora 21
che su Ubuntu 14.10 (informazioni datate).
2. Per windows/Linux si puo' scaricare da
https://www.gnu.org/software/octave/
Fondamenti di Informatica - Alfredo Accattatis 11
Esami
L’esame sarà composto da:
• Esame scritto ( DUE risposte aperte e TRE esercizi ) su tutti gli
argomenti affrontati nel corso, tranne quelli esplicitamente esclusi
(verrà detto a lezione e comunicato telematicamente)
• Rilasciati Scritti di esempio dei precedenti A.A.
Fondamenti di Informatica - Alfredo Accattatis 12
Il corso mira fornire la capacità di utilizzare il Computer in
maniera evoluta, ossia non solo come semplice strumento sul
quale eseguire programmi “preconfezionati” (Es. App) ma a
scriverne di personalizzati in funzione del problema da risolvere
(problem solving).
Il vostro background
• Possedete un Computer (PC/laptop/ipad o simili)?
• Che uso ne fate? Per quale scopo?
• Quali sono le applicazioni maggiormente usate?
• Conoscete ed avete mai usato:
• Microsoft Excel (o simili)
• Microsoft Access (o “database management systems”)
• Linguaggi di programmazione
• Sapete cos’è un algoritmo?
• Sapete come lavora un computer?
• Architettura
• Sistema Operativo
Fondamenti di Informatica - Alfredo Accattatis 13
Il vostro background
• Sapete cosa è lo Spettro di un segnale?
• Teorema del campionamento?
• Li farete in altri corsi, in questo ne daremo un semplice
accenno al fine di comprendere meglio problematiche
generali sul software
Fondamenti di Informatica - Alfredo Accattatis 14
Perché programmare?• Perché sviluppare questa capacità ?
• Apprendere l’arte di risolvere un problema tramite un computer è utile in generale nella vita
• Alla stessa stregua, ed a maggior ragione, sarà utile nellavostra vita professionale
• Quali computer abbiamo a disposizione?
• PC, Tablet, Smartphone….
Fondamenti di Informatica - Alfredo Accattatis 15
Il telefonino dunque è un computer. Allora non
usatelo solo per usare APP preconfezionate.
Scrivetevi il software da soli!
Opinioni autorevoli
• Non è solo la mia opinione ma:
• Obama (US Gov.) ha detto: “Don’t Just Play on Your
Phone, Program It”
Fondamenti di Informatica - Alfredo Accattatis 16
• Iniziativa a cura del governo americano: “Computer Science Education Week”, una campagna annuale che sottolinea l’importanza per tutti di imparare l’Informatica. A maggior ragione per un Ingegnere!
• Alcuni filmati significativi:
• (Obama) https://www.youtube.com/watch?v=yE6IfCrqg3s
• (Gates, Jobs, etc.) https://www.youtube.com/watch?v=nKIu9yen5nc
• (Astronauti) https://www.youtube.com/watch?v=WE2s3647awE
• Princeton University COS 126 (corso introduttivo all’Informatica)
• http://www.washingtonpost.com/blogs/the-switch/wp/2013/12/11/president-obama-talks-about-teaching-everyone-to-code-this-professor-does-it/
Fondamenti di Informatica - Alfredo Accattatis 17
L’informatica va oltre
• Ha influenzato materie apparentemente assai distanti
• Psicologia
• L’approccio cognitivista (Ulrich Neisser) poi cognitivo-
comportamentale ed HIP (Human Information
Processing). Approccio computazionale di Marr
• Sono basati su una modellizzazione del comportamento
umano basato sugli stessi paradigmi dell’Informatica e dei
Computer, che somiglia al modello di von Neumann
• La mente opera attivamente sull’informazione proveniente
dagli organi sensoriali, trasformata dal soggetto in base ai
suoi scopi, aspettative ed esperienze passate (dunque
memorizzate) => Comportamento
Fondamenti di Informatica - Alfredo Accattatis 18
L’informatica va oltre
• Psicologia della percezione
• Esempio: Visione!
• Approccio: percezione diretta
• Approccio: costruttivismo
• Due grandi scuole di pensiero
• Top-Down
• Bottom-up
• Von Neumann oppure Reti neurali
• Oltre l’approccio cognitivo: informazioni distribuite tra i
circuiti neurali
Fondamenti di Informatica - Alfredo Accattatis 19
Illusione di Ponzo
Fondamenti di Informatica - Alfredo Accattatis 20
Viso-vaso di Rubin
Fondamenti di Informatica - Alfredo Accattatis 21
22
Definizione di Informatica(Computer Science)
• Le definizioni sono varie…ma simili….prendiamone una autorevole
Treccani:• Scienza che studia l’elaborazione delle informazioni e le sue applicazioni;
più precisamente l’Informatica si occupa della rappresentazione, dell’organizzazione e del trattamento automatico della informazione
Fondamenti di Informatica - Alfredo Accattatis 22
”Computer science is no more about computers than astronomy is abouttelescopes.” (L'informatica non riguarda i computer più di quanto
l'astronomia riguardi i telescopi)
E. Dijkstra
Fondamenti di Informatica - Alfredo Accattatis 23
Rappresentazione dell’Informazionel’informatica ha a che fare con le “informazioni” ossia
quelle entità che ci consentono di effettuare lo “scambio di
conoscenza” tra esseri umani. La rappresentazione ha a
che fare i merito al “come” questa informazione viene
memorizzata negli elaboratori.
Come fare dunque a rendere comprensibile e
memorizzabile al calcolatore il concetto astratto di
informazione? La risposta è che dobbiamo
rappresentare essa per tramite di simboli tradotti in
una grandezza fisica disponibile nel mondo
(elettronico) del calcolatore. Ossia effettuare quella
che viene definita “codifica” dell’informazione
La scelta per i calcolatori è la rappresentazione tramite numeri in
BASE DUE
Fondamenti di Informatica - Alfredo Accattatis 24
In particolare per i calcolatori la base scelta e due, dunque i
numeri sono rappresentati come sequenze di zeri e uno
(BIT). Perché questa scelta? Perché ad esempio non usare la
base 10, a noi più familiare?
Per motivi di pratica e tecnologica realizzabilità:
distinguere tra due valori di una grandezza fisica (per
esempio due livelli di tensione elettrica) è più semplice.
Fondamenti di Informatica - Alfredo Accattatis 25
Fondamenti di Informatica - Alfredo Accattatis 26
Come è possibile far interagire il computer con il
"mondo reale" ? Come è possibile far si che le
variabili (grandezze) del mondo esterno vengano
trasferite nel mondo dell’elaboratore?
Provate a pensare:
- Musica
- Immagini
- Filmati
- Voce
- Eccetera (es. temperatura, mappature…)
Sono sempre e solo sequenze di NUMERI
da memorizzare ed elaborare
Fondamenti di Informatica - Alfredo Accattatis 27
La risposta è:
Teorema del campionamento!
(Shannon Nyquist)
Lo tratteremo in maggior dettaglio. Tramite esso è
possibile tradurre qualsiasi grandezza «del mondo
esterno» in un formato comprensibile al mondo degli
elaboratori (numeri codificati in binario)
E’ fondamentale ed ha reso
l’Informatica uno strumento universale
Fondamenti di Informatica - Alfredo Accattatis 28
Problem solving
L’arte di risolvere i problemi con il computer
Diamo una definizione generale di algoritmo, rappresentazione
e di esecuzione automatica
Fondamenti di Informatica - Alfredo Accattatis 29
30
Esempio. Un problema da risolvere.
• Cosa ci serve per risolvere il problema “astrattamente” ?• Una rappresentazione delle entità coinvolte (porta, scatola)
• Una procedura da seguire (basata sulla rappresentazione adottata) ossia
una sequenza di passi
◼ Rappresentazione
- Un modo di esprimere le informazioni rilevanti per risolvere il problema
(dunque NON TUTTE)
◼ Procedura
- Un “processo” a step (passi) da seguire per ottenere la soluzione
- In parole povere una “ricetta” ossia un algoritmo
Fondamenti di Informatica - Alfredo Accattatis 30
Fondamenti di Informatica - Alfredo Accattatis 31
Dunque una possibile rappresentazione della
scatola in centimetri è:
1) Faccia A: Altezza, Larghezza (es. 220,70)
2) Faccia B: Altezza, Larghezza (es. 220,100)
3) Faccia C: Altezza, Larghezza (es. 70,110)
Mentre per la porta (centimetri):
1) Porta: Altezza, Larghezza (210, 80)
Esempio: 220,70,220,100,70,110,210,80
Fondamenti di Informatica - Alfredo Accattatis 32
Sono solo numeri!
Il mondo esterno è
RAPPRESENTATO tramite numeri,
memorizzati all’interno del
calcolatore
Fondamenti di Informatica - Alfredo Accattatis 33
(1)Verifica: se (altezza(A)<altezza(porta)) e (larghezza(A)<larghezza(porta))
Se (1) è VERO ok; altrimenti verifica la faccia B (passo successivo);
(2)Verifica: se (altezza(B)<altezza(porta)) e (larghezza(B)<larghezza(porta))
Se (2) è VERO ok; altrimenti verifica faccia C (passo successivo);
(3)Verifica: se (altezza(C)<altezza(porta)) e (larghezza(C)<larghezza(porta))
Se (3) è VERO ok; altrimenti "la scatola non passa";
34
Procedura “più generale” possibile
◼ Siamo interessati a procedure il più possibile generali e valide per il maggior numero possibile di casi, ossia ad algoritmi migliori
◼ La procedura appena vista vale per ogni porta e scatola?
Fondamenti di Informatica - Alfredo Accattatis 34
Fondamenti di Informatica - Alfredo Accattatis 35
(1) Verifica: se altezza(A)<altezza(porta) e larghezza(A)<larghezza(porta)
Se (1) è VERO ok; altrimenti ruota faccia A e vai al passo 2;
(2) Verifica: se altezza(A)<altezza(porta) e larghezza(A)<larghezza(porta)
Se (2) è VERO ok; altrimenti verifica faccia B;
(3..) Etc.
Algoritmo differente
Quindi: questo algoritmo vale per un numero
MAGGIORE di scatole
36
Procedure “automatiche”
rappresentazione procedura
+
◼ “La scienza della rappresentazione dell’informazione ed elaborazione
automatica”. Automatico?
Fondamenti di Informatica - Alfredo Accattatis 36
Di macchina, meccanismo o dispositivo che, regolato opportunamente, è
capace di compiere determinate operazioni o lavorazioni, per lo più
ripetute in serie, senza il diretto intervento dell’uomo
(1)Verifica: se (altezza(A)<altezza(porta)) e (larghezza(A)<larghezza(porta))
Se (1) è VERO ok; altrimenti verifica la faccia B (passo
successivo);
(2)Verifica: se (altezza(B)<altezza(porta)) e (larghezza(B)<larghezza(porta))
Se (2) è VERO ok; altrimenti verifica faccia C (passo
successivo);
(3)Verifica: se (altezza(C)<altezza(porta)) e (larghezza(C)<larghezza(porta))
Se (3) è VERO ok; altrimenti "la scatola non passa";
220,70,220,100,70,110,210,80
Fondamenti di Informatica - Alfredo Accattatis 37
Algoritmi
• i passi costituenti devono essere "elementari", ovvero non ulteriormente scomponibili (atomicità);
• i passi costituenti devono essere interpretabili in modo diretto e univoco dall'esecutore, sia esso umano o artificiale (non ambiguità);
• l'algoritmo deve essere composto da un numero finito di passi e richiedere una quantità finita di dati in ingresso (finitezza)
• l'esecuzione deve avere termine dopo un tempo finito (terminazione);
• l'esecuzione deve portare a un risultato univoco (effettività).
38
Un formalismo per scrivere “algoritmi”
START
Inizia il processo di calcolo
END
L’algoritmo termina
Ingresso / Uscita
Un passo dell’algoritmo
condition
Selezione su condizione
true false
algoritmo “collaterale”
X :
‘contenitore’ con nome
X expr
Mette il valore nel “contenitore”
Fondamenti di Informatica - Alfredo Accattatis 38
39
Un esempio di “algoritmo”Start
true scrivi: “soluzione banale
o non calcolabile”
End
r resto
di x/y
read m and n
x m
y n
x ≠ 0 AND y ≠ 0false
falser = 0
x y
◼ “provate” questo algoritmo con differenti coppie di numeri
y r
scrivi: “la risposta è:” y
End
true
Fondamenti di Informatica - Alfredo Accattatis 39
Sommario
• Informazioni sul corso
• Definizione di Informatica
• Problem solving
• Algoritmi
40Fondamenti di Informatica - Alfredo Accattatis