Estratto del documento

LEZIONE 1

Video rappresenta evoluzione del valore dei brand a partire dagli anni 2000

2018 serie di marchi legati a mondo dell’informatica in qualche modo. Valore dell’informazione è sempre

più importante.

Nessuna di queste aziende può essere immaginata senza sito web

Cos’è e come gestire l’informazione dato

Prima distinzione da fare è iniziare a distinguere cos’è il (elemento oggettivo riferito a un elemento o

l’informazione

evento) e cos’è (è un modo di interpretare il nostro dato nel momento in cui facciamo dei

collegamenti tra i dati e diamo un obiettivo).

Es. concetto temperatura 38°

38° è un dato se lo colleghiamo ad altri dati e gli diamo un obiettivo ha un’interpretazione e rappresenta

un’informazione diversa. Se 38° è temperatura che ci viene rilevata prima di entrare in un ristorante non mi

farà entrare mentre se è la temperatura rilevata su un pezzo di carne significa che dovrà continuare a

cuocere.

Nel momento in cui diamo un collegamento ad altri dati e gli diamo un obiettivo ha un’interpretazione,

quindi rappresenta un’informazione diversa.

Nel momento in cui diamo significato a dati oggettivi (= ad esempio un numero), nel momento in cui

creiamo una finalità possiamo costruire una rappresentazione dei dati in modo da estrarre conoscenza.

Possiamo a quel punto definire la conoscenza, elaborarla e interpretarla.

L'informazione ha l'obiettivo di creare una rappresentazione dei dati in modo da estrarre conoscenza

tramite la sua elaborazione oppure migliorare la loro interpretazione da parte dell'utente.

L'informazione ha l'obiettivo di creare una rappresentazione dei dati in modo da estrarre conoscenza

tramite la sua elaborazione oppure migliorare la loro interpretazione da parte dell'utente.

Il modo e la forma in cui trattiamo i dati diventano fortemente dipendenti dagli obiettivi che abbiamo.

Possiamo definire l’informatica come uno studio sistematico degli algoritmi che descrivono e trasformano

l’informazione -> teoria, analisi, progetto, studio dell’efficienza, realizzazione e applicazione.

«l’informatica è lo studio sistematico degli algoritmi che descrivono e trasformano l’informazione: la loro

teoria, analisi, progetto, efficienza, realizzazione e applicazione.»

È uno studio sistematico, l’informatica non è un far andare le cose, vi stanno dietro teorie, è una scienza di

gestione dell’informazione che si occupa di algoritmi (= serie di passi per elaborare l’informazione). Non è

solo un modo per descrivere l’informazione ma anche un modo per trasformarla. Esempio più semplice di

trasformazione è gestione di schermi di diverse dimensioni, richiede di trasformare la stessa info per

trasformarla in modo diverso. L’informazione è qualcosa con cui abbiamo a che fare tutti i giorni.

L’informatica è un modo per rappresentare e gestire l’informazione.

L’informatica è lo studio sistematico di tecniche e metodi per:

Rappresentare

• l’informazione: astrarre i concetti importanti da quelli trascurabili,

per modellare opportunamente la realtà di interesse

Elaborare gestire

• e l’informazione: uso e trasformazione dell’informazione in modo funzionale agli

obiettivi

Elaborazione per l’informazione, parliamo di trasformazione automatica cioè capire come velocizzare

quest’informazione perché spesso bisogna gestire grandi quantità di calcoli.

In caso di grandi quantità di dati e sia necessaria un'elaborazione veloce dell'informazione, si ricorre all'uso

di strumenti automatici: calcolatori elettronici.

Passaggio da gradi celsius a fahrenheit è una forma di trasformazione, elaborazione dell’informazione. Se la

facciamo a mano è trasformazione dell’informazione, quella in cui ci focalizziamo nell’informatica è una

trasformazione automatica, cioè capire come possiamo velocizzare quest’informazione, perché in alcuni

elaborare grandi quantità di dati.

casi avremo da

Il concetto di elaborare grandi quantità di dati è alla base dell’informatica perché c’erano dei calcoli che

non si potevano fare a mano, richiedevano tempo, riuscire a farle con un calcolatore ci permette di

velocizzare le cose. Quindi abbiamo dei calcolatori elettronici (computer) che non fanno altro che ricevere

una serie di informazioni d’ingresso (informazioni e non dato, perché abbiamo già trasformato e dato

un’interpretazione iniziale) lo passiamo a un calcolatore con cui analizziamo questi dati e da questo

ricaviamo un’informazione in uscita e una conoscenza, può essere uno, può essere l’altro, può essere

entrambi.

Es. tempera è informazione d’ingresso, c’è un calcolatore che elabora l’informazione velocemente e da una

serie d’informazioni in uscita (visualizzazione della temperatura) e la conoscenza (risposta data a utente). Ci

sono altri sistemi che sono un po’ più complessi: es telefono ha una sua telecamera quello che faccio

quando guardo telefono leggo come informazione d’ingresso la visualizzazione del volto e da quello

informazione in uscita (se persona corrisponde o è salvata) e conoscenza (percorso che viene sbloccato) ->

sistema di elaborazione delle informazioni.

I calcolatori elettronici permettono: (aspetti tra loro collegati, uno richiede l’altro)

• Una rappresentazione efficace dell’informazione

• Un’elaborazione sistematica, veloce e pratica dell’informazione

Il calcolatore esegue algoritmi per l'elaborazione ed utilizza elementi di memoria per immagazzinare le

informazioni che sta elaborando. Si può analizzare qualsiasi sistema informatico e si vedrebbe che si riduce

a questo: fornire informazione, avere algoritmo che la elabora, avere elementi di memoria che servono a

immagazzinare informazione e su questo arrivare ad avere informazione d’uscita con una conoscenza.

Se vogliamo progettare un sistema dobbiamo definire qual è l’obiettivo della nostra elaborazione e capire

come gestire elaborare l’informazione per arrivare a una soluzione automatica (algoritmo) attraverso l’uso

di un calcolatore.

La specifica è un linguaggio naturale comprensibile a una persona, mentre l’algoritmo è comprensibile al

calcolatore. Umano ha problema di capire come convertire il suo problema in un algoritmo comprensibile

dal suo elaboratore.

Vedremo come passare dalla specifica di un problema alla sua soluzione automatica (algoritmo) attraverso

l’uso di un calcolatore:

• La specifica è una descrizione semi-formale del problema

• È necessario passare dalla specifica ad un algoritmo che risolve il problema dato

• Infine affinché l’algoritmo trovato sia eseguibile dal calcolatore dovrà essere definito in un linguaggio

comprensibile al calcolatore stesso

• Capiremo come rappresentare l’informazione

Un algoritmo è una sequenza finita di operazioni elementari che sono eseguibili dal calcolatore e non

ambigue che giunge certamente a terminazione.

L’algoritmo permette di risolvere uno specifico compito o problema e deve seguire queste caratteristiche:

caso costruzione lego, Ikea e preparazione ricetta -> sequenza di operazioni elementari, sono degli

algoritmi? No, alla fine serve momento di interpretazione delle cose che potrebbe non portare allo stesso

identico risultato per il caso delle istruzioni, per le ricette invece è una sequenza di operazioni elementari

sono comprensibili ma non è detto che siano non ambigue, sequenza di passi ma non è un algoritmo finché

non diamo informazioni in più che lo rende non ambiguo. Inoltre per le istruzioni è necessario essere in

grado di decifrare i disegni, interpretarli.

L’esecutore di questi passi è una persona e non un calcolatore (è molto complesso far comprendere un

linguaggio grafico ad un calcolatore). L’esecutore è una persona che conosce la lingua italiana. I passi sono

spesso non precisi ed ambigui, richiedendo quindi il buonsenso dell’esecutore.

Altro esempio: Prodotto di due numeri interi positivi tramite somme ripetute

1. Leggi A

2. Leggi

3. Somma A a sé stesso B volte

4. Scrivi il risultato

È qualcosa che è semplice ma non intuitivo, abbiamo capito cosa fare ma non è detto che sia non ambiguo,

stiamo usando operazioni non elementari.

I passi sono definiti in modo che possano essere eseguiti senza ambiguità?

• ABBASTANZA (ma non ancora in modo completo)

I passi sono comprensibili ad uno specifico esecutore (cioè il calcolatore)?

• NO, L’esecutore è ancora una persona che conosce la lingua italiana

Il nostro algoritmo deve avere una formulazione che non sia specifica per una serie sola di valori ma deve

essere un algoritmo che risolve in modo completo il problema che vogliamo risolvere, risolvere in modo

completo -> gestire gli errori e deve funzionare per ogni valore ammesso per la specifica.

La descrizione di un algoritmo per un esecutore deve avere una formulazione generale

Alcune osservazioni importanti:

• Gli algoritmi prevedono particolari passi destinati ad acquisire i valori dei dati da utilizzare ed

elaborare in ogni specifica esecuzione

• La soluzione individuata deve essere generale, cioè non deve valere solo per alcuni valori

predefiniti dei dati

• La soluzione deve funzionare per ogni valore ammesso dalla specifica

Esempio:

Un algoritmo per calcola il prodotto di due numeri per somme ripetute non eseguirà tale calcolo solo per

due valori predefiniti MA sarà in grado di eseguire il calcolo per una qualsivoglia coppia di numeri acquisiti

dall’utente

Dal momento in cui si programma un sito web si deve ipotizzare che persona possa immettere informazioni

fuori dalla specifica

Rappresentazione di un algoritmo

• Descrizione delle operazioni eseguibili e dei dati su cui agiscono le operazioni

• Descrizione di tutte le possibili sequenze di operazioni da eseguire per risolvere il problema dato

(flusso di controllo)

• Deve essere univoco (sia da parte del programmatore che dell’esecutore) il modo di andare da dati

in ingresso a dati di uscita (flusso di esecuzione)

Flusso di controllo: la descrizione a priori di tutte le possibili sequenze nell’esecuzione dei passi

dell’algoritmo, in particolare di operazioni in alternativa e di operazioni da ripetere più volte ciclicamente

Flusso di esecuzione: la sequenza di operazioni effettivamente eseguite durante una particolare esecuzione

dell’algoritmo e che dipende dagli specifici valori che i dati assumono in quell’esecuzione

Faccio questa operazione se il mio numero A è maggiore di 5, nel flusso di controllo manca da definire cosa

faccio se non è maggiore di 5, devo definire che in quel caso magari non eseguo operazioni. Nel momento

in cui fornisco dei dati andrò a costruire un percorso nel flusso di controllo che dipenderà dalla gestione di

queste situazioni.

Flusso di controllo definito come una rappresentazione generale statica dell’algoritmo dove descriviamo

tutte le possibili sequenze, andiamo a descrivere la sequenza di passi, la selezione, ecc.

Flusso di esecuzione sono operazioni eseguite di volta in volta dato un valore che viene specificato, è un

analisi dinamica di quello che succede dati dei valori.

Quali sono le proprietà che deve avere un algoritmo. L’ideale e che l’algoritmo dia la soluzione al compito a

cui è stato predisposto, compito è descrizione dell’algoritmo passato al calcolatore. Il calcolatore esegue

specifica senza sapere se sia giusto o sbagliato è compito del programmatore se algoritmo sia giusto o

sbagliato e il calcolatore arriva alla soluzione dell’algoritmo non del problema

L’algoritmo ottiene la soluzione del compito cui è preposto

• Il calcolatore eseguirà l’algoritmo a prescindere che sia giusto o sbagliato; è compito del programmatore

garantire che l’algoritmo sia corretto

L’algoritmo perviene alla soluzione del problema nel modo in cui è predisposto

• Il calcolatore arriverà alla soluzione nel modo in cui è stato programmato; è compito del programmatore

definire come ottenere un modo più veloce o come usare la minima quantità di risorse fisiche

Se l’algoritmo arriva a una soluzione «sbagliata», la colpa è del programmatore. Quando c’è un problema

che non si riesce a risolvere bisogna cercare di capire dove andare a lavorare

Prima cosa a cui dobbiamo pensare quando progettiamo un algoritmo è su cosa deve elaborare. Dobbiamo

immaginare tutto quello che succede nell’elaborare l’algoritmo.

dati

I sono un primo elemento ma dovendo considerare tutto quello che succede durante l’algoritmo

dobbiamo immaginare quali sono i dati che dobbiamo fornire in ingresso, quali sono i dati che vogliamo che

il nostro algoritmo produca, ma anche passo dopo passo quali sono i dati necessari per dei calcoli

intermedi, ad esempio, questo è molto importante nel momento in cui si calcola un algoritmo per due

motivi:

1. Non dobbiamo tenere in considerazione solo dimensione dati ingresso e in uscita ma dato che i dati

staranno in memoria durante l’algoritmo dobbiamo arrivare a capire qual è la quantità di memoria

che il nostro algoritmo ha bisogno

2. Dobbiamo capire tipologia di dati che utilizziamo perché dobbiamo poi capire come utilizzarli

Prima cosa che dobbiamo capire sui dati è se sia una variabile o una costante. Se ragioniamo sul numero di

mesi che ci sono in un anno, questa è un’informazione costante perché qualunque cosa succeda il numero

di mesi rimane 12. Ci sono altri valori che non cambiano mai nel nostro algoritmo (pi greco).

Non cambiare mai è diverso da cambiare con una bassissima probabilità perché nell’altro caso c’è

possibilità che il nostro dato assuma un valore diverso e quindi dobbiamo dare la possibilità all’algoritmo di

mantenere il valore modificato.

Questo porta a idea di come i dati vengano rappresentati perché devono essere sempre rappresentati in

modo univoco e comprensibile per il calcolatore, il calcolatore non deve avere ambiguità su come

interpretare l’informazione. Se noi diciamo che un valore è costante non ci potremo fare operazioni di

modifica, perché quello è un’operazione ambigua. Nel momento in cui l’informazione è variabile dobbiamo

trovare un modo per rappresentarla in modo che il calcolatore la possa utilizzare. La variabile, quindi,

rappresenta un dato che può variare il suo valore; mentre una costante è un valore che noi siamo sicuri, per

come è costruito l’algoritmo (o per la definizione dei dati) questo non potrà mai cambiare. A seconda di

come classifichiamo l’informazione utilizzeremo elementi diversi e da questo arriveranno rappresentazioni

diverse.

Una volta definiti i dati su cui lavorare andremo a definire una serie di operazioni che prendono dei dati e

producono un risultato. Combinando le operazioni creiamo le espressioni e utilizzando le espressioni

riusciamo a fare le trasformazioni da ingresso e uscita. Tutte queste operazioni sono quelle che poi

potremo usare nel nostro algoritmo. Proprietà soprattutto di atomicità va a ricordare che nel momento in

cui definiamo queste operazioni ci rappresenta il set minimo di operazioni che possiamo utilizzare e poi ci

dovremo ricondurre il nostro algoritmo a utilizzare solo ed esclusivamente queste operazioni, indivisibili e

comprensibili dal calcolatore.

Quindi i dati d’ingresso li trasformiamo verso dati in uscita, ma gli algoritmi fanno delle scelte nel momento

in cui dobbiamo prendere flussi di controllo diversi ed eseguire delle operazioni a seconda di una

condizione piuttosto che un’altra (esempio calcolare valore assoluto di un numero, ci sono operazioni

diverse a seconda del risultato di un’operazione). Flusso di controllo: specifica delle possibili successioni dei

passi dell’algoritmo

Mettendo insieme i dati, le operazioni e il flusso di controllo si ha la possibilità di eseguire qualsiasi tipo di

algoritmo.

La variabile si può immaginare come un contenitore di informazioni. Parliamo di variabili quindi di elementi

che possono cambiare il loro valore durante l’esecuzione, un valore costante non ha bisogno di essere

salvato in memoria, non ha bisogno di un contenitore per rappresentare l’informazione perché nel nostro

algoritmo lo possiamo rappresentare direttamente.

Andiamo ad utilizzare un contenitore d’informazioni in memoria solo nel momento in cui l’elemento è

definito variabile, se la variabile cambia molto poco, raramente, è quasi costante nel tempo io avrò il mio

contenitore di informazioni che per la maggior parte del tempo avrà all’interno uno stesso valore. Nel

momento in cui vado a fare un’operazione e vado a cambiare quel valore, il mio contenitore di memoria

dove ho assegnato la variabile conterrà il nuovo valore e se andrò ad utilizzarlo sarò sicuro che conterrà

l’ultimo valore.

variabile

La può e deve avere sempre un valore, vuol dire che non posso avere più valori associati alla

stessa variabile, se devo avere più valori devo avere più variabili (es data composta da giorno mese e anno,

non posso immaginarli con un’unica variabile ma tre contenitori diversi). Una variabile non è mai vuota

(problema informatico) perché nel momento in cui dico che una determinata area di memoria rappresenta

un valore, qualunque operazione io faccia su quel contenitore vado a prendere il valore che c’è dentro, la

memoria non ha la possibilità di sapere

Anteprima
Vedrai una selezione di 20 pagine su 103
Appunti teoria Fondamenti di Informatica Pag. 1 Appunti teoria Fondamenti di Informatica Pag. 2
Anteprima di 20 pagg. su 103.
Scarica il documento per vederlo tutto.
Appunti teoria Fondamenti di Informatica Pag. 6
Anteprima di 20 pagg. su 103.
Scarica il documento per vederlo tutto.
Appunti teoria Fondamenti di Informatica Pag. 11
Anteprima di 20 pagg. su 103.
Scarica il documento per vederlo tutto.
Appunti teoria Fondamenti di Informatica Pag. 16
Anteprima di 20 pagg. su 103.
Scarica il documento per vederlo tutto.
Appunti teoria Fondamenti di Informatica Pag. 21
Anteprima di 20 pagg. su 103.
Scarica il documento per vederlo tutto.
Appunti teoria Fondamenti di Informatica Pag. 26
Anteprima di 20 pagg. su 103.
Scarica il documento per vederlo tutto.
Appunti teoria Fondamenti di Informatica Pag. 31
Anteprima di 20 pagg. su 103.
Scarica il documento per vederlo tutto.
Appunti teoria Fondamenti di Informatica Pag. 36
Anteprima di 20 pagg. su 103.
Scarica il documento per vederlo tutto.
Appunti teoria Fondamenti di Informatica Pag. 41
Anteprima di 20 pagg. su 103.
Scarica il documento per vederlo tutto.
Appunti teoria Fondamenti di Informatica Pag. 46
Anteprima di 20 pagg. su 103.
Scarica il documento per vederlo tutto.
Appunti teoria Fondamenti di Informatica Pag. 51
Anteprima di 20 pagg. su 103.
Scarica il documento per vederlo tutto.
Appunti teoria Fondamenti di Informatica Pag. 56
Anteprima di 20 pagg. su 103.
Scarica il documento per vederlo tutto.
Appunti teoria Fondamenti di Informatica Pag. 61
Anteprima di 20 pagg. su 103.
Scarica il documento per vederlo tutto.
Appunti teoria Fondamenti di Informatica Pag. 66
Anteprima di 20 pagg. su 103.
Scarica il documento per vederlo tutto.
Appunti teoria Fondamenti di Informatica Pag. 71
Anteprima di 20 pagg. su 103.
Scarica il documento per vederlo tutto.
Appunti teoria Fondamenti di Informatica Pag. 76
Anteprima di 20 pagg. su 103.
Scarica il documento per vederlo tutto.
Appunti teoria Fondamenti di Informatica Pag. 81
Anteprima di 20 pagg. su 103.
Scarica il documento per vederlo tutto.
Appunti teoria Fondamenti di Informatica Pag. 86
Anteprima di 20 pagg. su 103.
Scarica il documento per vederlo tutto.
Appunti teoria Fondamenti di Informatica Pag. 91
1 su 103
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher heialee di informazioni apprese con la frequenza delle lezioni di Fondamenti di Informatica per il Web Design e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Politecnico di Milano o del prof Pilato Christian.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community