L’informatica è la scienza della rappresentazione dell’organizzazione e del trattamento (automatico) dell’informazione.

Approccio sistematico disciplinato da:

-Soluzione (automatica) dei problemi

-Elaborazione (automatica) dell’informazione.

 

Problema

Deve essere disponibile una precisa formalizzazione (per esempio la matematica).

Bisogna poter dedurre una strategia di soluzione basata sulla applicazione sistematica di regole operative ben precise, a partire da i dati resi disponibili dall’utente.

Algoritmo

-Procedimento risolutivo di un problema.

Insieme di regole che, eseguite ordinatamente, permettono di ottenere risultati di problemi a partire dai dati messi a disposizione dall’utente (o dal programmatore)

Un insieme di regole è un’algoritmo quando (proprietà):

-Non ambiguità: Le istruzioni devono essere univocamente interpretabili dall’esecutore dell’algoritmo.

-Eseguibilità: L’esecutore deve essere in grado, con le risorse messe a disposizione, di eseguire ogni istruzione, ed in un tempo finito.

-Finitezza: L’esecuzione dell’algoritmo deve avere luogo in un tempo finito dipendente da ogni insieme di volori di ingresso.

 

Poi distinguiamo ancora:

-Problemi decidibili

-Problemi non decidibili

 

e avremo inoltre problemi di:

-efficicienza temporale

-efficienza spaziale

 

Esistono dei problemi che anche se decidibili, definendo un algoritmo risolutivo, portano ad un costo temporale e spaziale insostenibile nella pratica.

 

Quindi l’esecutore automatico (elaboratore) fa uso di adeguati linguaggi che hanno la particolarità di avere regole comprensibili sia per l’elaboratore che per noi stessi (programmatori).

 

 

 

Programma

E’ essenzialmente una sequenza di istruzioni

Anche qui c’è un problema di efficienza. Infatti dobbiamo cercare di far effettuare al programma il numero minore di operazioni (per esempio moltiplicando 17*3 invece di 3*17.

Tipi di istruzione:

-Input/output

-Assegnazioni

-Operazione aritmetiche e logiche

-Controllo:

a)Sequenza (Composizione)ðIstruzioni in sequenza

b)Selezione (Alternativa)ðIF condizione P THEN istruzione A ELSE istruzione B

c)Iterazione (Ciclo o Ripetizione)ðWHILE condizione P istruzione A

Ciascuna di queste strutture di controllo gode della proprietà fondamentale di avere un flusso con una sola entrata ed uno con una sola uscitaà possiamo anche concatenarle tra loro ed annidarle in vari livelli.

Qualsiasi programma può essere costruito utilizzando esclusivamente questi tre tipi di strutture di controllo. Questo è il teorema di Bohm-Iacobini

Processo

Processo di una esecuzione di un programma è una sequenza di azioni (che sono l’esecuzioni delle istruzioni di un programma)

Essenzialmente fa passare l’elaboratore da  uno stato iniziale ad uno stato finale.

 

 

INPUT- dati di ingresso: rappresentazioni, fornite all’elaboratore, dei dati messi a disposizione dello stesso.

PROGRAMMA- rappresentazione dell’algoritmo nel linguaggio di programmazione scelto. A sua volta il programma è formato da ISTRUZIONI)

OUTPUT- dati di uscita: le rappresentazioni fornite dall’elaboratore al termine del programma, come soluzione ahli input precedentemente immessi.

 

Elaboratore

1-L’elaboratore non è altro che un esecutore di operazioni in sequenza che trasformano input in output.

2-Funziona secondo regole precise e ben determinate e conosce un numero molto limitato di comandi.

3-Esegue ciascuno di questi compandi in modo univoco e in un tempo finito.

4-Esegue operazioni elementari su dati astratti, eseguendo istruzioni.

 

  Dal punto di vista logico: simbolo che identifica la rappresentazione di un oggetto di interesse

Variabile:

 

Dal punto di vista fisico: può essere intesa come un contenitore per valori di un oggetto di interesse

 

In entrambe i casi comunque la variabile sarà di tipo fissato.

Alle variabili quindi assegno valori costanti oppure i valori di un’altra variabile per mezzo dell’uguaglianza.

Il valore iniziale delle variabili è 0 (z=0)

 

Per verificare la correttezza del processo si può inserire una ulteriore relazione di validità durante l’esecuzione del programma. Questo metodo è detto invariante di ciclo.

 

 

 

Architettura del calcolatore

 

Il calcolatore è:

 

a)       un sistema

b)       un esecutore di programmi

c)       una macchina programmabile

 

Un programma può permettere al calcolatore di eseguire una molteplicità di operazioni.

Programma=applicazione

 

L’applicazione comprende:

1-       dati gestiti dall’applicazione come informazioni elementari che possono a loro volta:

a)       essere acquisiti

b)       essere memorizzati

c)       manipolati

d)       visualizzati

2-       operazioni che possono essere usate per manipolare le informazioni, trasformandole e generandonde di nuove

 

e normalmente le caratteristiche di una applicaizone sono:

1-       permettere agli utenti di perseguire un particolare scopo

2-       gestire informazioni soto forma di dati

3-       elaborazione di dati mediante delle operazioni

4-       le operazioni possono essere eseguite in modo interattivo se sono soddisfatte le condizioni che ne abilitano l’esecuzione

 

ð Un linguaggio è un insieme di costrutti linguistici – detti istruzioni (o operazioni) – e di regole che possono essere usate per esprimere i passi necessari alla risoluzione di problemi.

 

Ciascuna applicazione ha il proprio linguaggio.

Spesso la capacità di usare un linguaggio è abbastanza indipendente dalla comprensione e dal funzionamento del calcolatore.

Esempi:

ð Word Processor

ð Foglio elettronico

ð Browser Web à particolare questo permette queste operazioni:

a)       accesso ad una pagina web per mezzo dell’URL

b)       Navigazione ipertestuale

c)       Altre operazione come per esempio la gestione dei segnalibri.

 

ð L’interfaccia è il mezzo di interazione tra l’utente (dell’applicazione) e il calcolatore (esecutore dell’applicazione).

 

Le applicazioni moderne godono di interfaccie grafiche di tipo GUI –mouse, bottoni, icone, ecc.

 

Inoltre se prendiamo come esempio GUI le finestre, essere funzionano con la tecnologia WYSIWYG (What you see is what you get)

Godono di modalità di interazione simili (tipo il menù File uguale per tutti)

 

Alcune interazioni con la tastiera:

-          inserimento di testi

-          modifica e cancellazione testi

-          copia-e-incolla testi

interazione con il mouse sono invece:

-          Point-and-click

-          Double-click

Drag-and-Drop