INTRODUZIONEAL CORSOE PRIME NOZIONI

40
FONDAMENTI DI INFORMATICA INTRODUZIONE AL CORSO E PRIME NOZIONI Prof. Alfredo Accattatis ([email protected])

Transcript of INTRODUZIONEAL CORSOE PRIME NOZIONI

Page 1: INTRODUZIONEAL CORSOE PRIME NOZIONI

FONDAMENTI DI INFORMATICA

INTRODUZIONE AL CORSO E PRIME NOZIONI

Prof. Alfredo Accattatis

([email protected])

Page 2: INTRODUZIONEAL CORSOE PRIME NOZIONI

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

Page 3: INTRODUZIONEAL CORSOE PRIME NOZIONI

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

[email protected]

3Fondamenti di Informatica - Alfredo Accattatis

Page 4: INTRODUZIONEAL CORSOE PRIME NOZIONI

Stanza in dettaglio: 19, Edificio D Ing.

Informazione

Fondamenti di Informatica - Alfredo Accattatis 4

Page 5: INTRODUZIONEAL CORSOE PRIME NOZIONI

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

Page 6: INTRODUZIONEAL CORSOE PRIME NOZIONI

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

Page 7: INTRODUZIONEAL CORSOE PRIME NOZIONI

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

Page 8: INTRODUZIONEAL CORSOE PRIME NOZIONI

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!

Page 9: INTRODUZIONEAL CORSOE PRIME NOZIONI

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

Page 10: INTRODUZIONEAL CORSOE PRIME NOZIONI

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

Page 11: INTRODUZIONEAL CORSOE PRIME NOZIONI

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

Page 12: INTRODUZIONEAL CORSOE PRIME NOZIONI

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).

Page 13: INTRODUZIONEAL CORSOE PRIME NOZIONI

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

Page 14: INTRODUZIONEAL CORSOE PRIME NOZIONI

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

Page 15: INTRODUZIONEAL CORSOE PRIME NOZIONI

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!

Page 16: INTRODUZIONEAL CORSOE PRIME NOZIONI

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

Page 17: INTRODUZIONEAL CORSOE PRIME NOZIONI

• 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

Page 18: INTRODUZIONEAL CORSOE PRIME NOZIONI

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

Page 19: INTRODUZIONEAL CORSOE PRIME NOZIONI

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

Page 20: INTRODUZIONEAL CORSOE PRIME NOZIONI

Illusione di Ponzo

Fondamenti di Informatica - Alfredo Accattatis 20

Page 21: INTRODUZIONEAL CORSOE PRIME NOZIONI

Viso-vaso di Rubin

Fondamenti di Informatica - Alfredo Accattatis 21

Page 22: INTRODUZIONEAL CORSOE PRIME NOZIONI

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

Page 23: INTRODUZIONEAL CORSOE PRIME NOZIONI

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

Page 24: INTRODUZIONEAL CORSOE PRIME NOZIONI

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.

Page 25: INTRODUZIONEAL CORSOE PRIME NOZIONI

Fondamenti di Informatica - Alfredo Accattatis 25

Page 26: INTRODUZIONEAL CORSOE PRIME NOZIONI

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

Page 27: INTRODUZIONEAL CORSOE PRIME NOZIONI

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

Page 28: INTRODUZIONEAL CORSOE PRIME NOZIONI

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

Page 29: INTRODUZIONEAL CORSOE PRIME NOZIONI

Fondamenti di Informatica - Alfredo Accattatis 29

Page 30: INTRODUZIONEAL CORSOE PRIME NOZIONI

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

Page 31: INTRODUZIONEAL CORSOE PRIME NOZIONI

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

Page 32: INTRODUZIONEAL CORSOE PRIME NOZIONI

Fondamenti di Informatica - Alfredo Accattatis 32

Sono solo numeri!

Il mondo esterno è

RAPPRESENTATO tramite numeri,

memorizzati all’interno del

calcolatore

Page 33: INTRODUZIONEAL CORSOE PRIME NOZIONI

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";

Page 34: INTRODUZIONEAL CORSOE PRIME NOZIONI

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

Page 35: INTRODUZIONEAL CORSOE PRIME NOZIONI

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

Page 36: INTRODUZIONEAL CORSOE PRIME NOZIONI

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

Page 37: INTRODUZIONEAL CORSOE PRIME NOZIONI

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à).

Page 38: INTRODUZIONEAL CORSOE PRIME NOZIONI

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

Page 39: INTRODUZIONEAL CORSOE PRIME NOZIONI

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

Page 40: INTRODUZIONEAL CORSOE PRIME NOZIONI

Sommario

• Informazioni sul corso

• Definizione di Informatica

• Problem solving

• Algoritmi

40Fondamenti di Informatica - Alfredo Accattatis