Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Lezione 2. Algoritmi e computer, Dispense di Reti informatiche

Diagrammi di flusso il concetto di algoritmo

Tipologia: Dispense

2020/2021

Caricato il 07/05/2021

123Cavalli
123Cavalli 🇮🇹

4.5

(4)

8 documenti

1 / 40

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Fondamenti di Informatica
Accademia di Belle Arti di Verona
Università degli Studi di Verona
A.A. 2019-2020
Docente -Vincenzo Giannotti
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28

Anteprima parziale del testo

Scarica Lezione 2. Algoritmi e computer e più Dispense in PDF di Reti informatiche solo su Docsity!

Fondamenti di Informatica

Accademia di Belle Arti di Verona

Università degli Studi di Verona

A.A. 2019-

Docente - Vincenzo Giannotti

CAPITOLO 2 – ALGORITMI E COMPUTER

  • Il dizionario Treccani lo definisce più o meno così:

“Termine, derivato dall’appellativo al-Khuwārizmī del matematico Muḥammad ibn Mūsa del 9° sec., originario di quello che è l’attuale Uzbekistan, che designa qualunque schema o procedimento sistematico di calcolo. Con un algoritmo si tende a esprimere in termini matematicamente precisi il concetto di procedura generale, di metodo sistematico valido per la soluzione di una certa classe di problemi”.

  • Se questa definizione non è abbastanza chiara, proviamo più

semplicemente a dirlo così:

Il concetto di Algoritmo

“un algoritmo è una sequenza finita di operazioni

da svolgere per risolvere un dato problema”.

  • Perché vi ho presentato queste due definizioni, così diverse, di

algoritmo?

  • Perché ancora oggi non esiste una «definizione di algoritmo» che ne

definisca pienamente il concetto in termini formali ci si deve

accontentare di definizioni più o meno intuitive come quella prima

evidenziata.

  • Uno dei tentativi più riusciti è quello proposto da Turing con la sua

«macchina» ed è proprio per questo motivo che la Macchina di Turing

è ancora oggi lo strumento più potente utilizzato per decidere se un

dato procedimento sia o meno calcolabile con una macchina

automatica.

Il concetto di Algoritmo

  • Anche senza bisogno che qualcuno ce lo spieghi, vediamo subito che

per essere sicuri di poter fare un’ottima pasta frolla abbiamo bisogno

che:

  1. Ci sia dato il materiale con cui lavorare (gli ingredienti)
  2. Ci sia spiegato quale procedimento applicare attraverso un numero finito di istruzioni elementari (la ricetta)
  3. Tutto questo, alla fine, produce un risultato (la pasta frolla).
  • Utilizzando un linguaggio più affine all’informatica, abbiamo bisogno:
  1. Di un input
  2. Di un algoritmo
  3. E noi, alla fine, dobbiamo produrre un output.

Il concetto di Algoritmo

Classici esempi di algoritmi in informatica sono:

  • L’algoritmo di Euclide per il calcolo del Massimo Comun Divisore (MCD) di due numeri interi
  • L’algoritmo per la ricerca delle soluzioni di una equazione di II grado
  • L’algoritmo PageRank di Google , che stabilisce quale sito far apparire prima nei risultati di una ricerca

Ma anche i seguenti sono esempi di algoritmi:

  • Le indicazioni stradali per raggiungere una data località
  • Le istruzioni per assemblare un mobile dell’IKEA

Il concetto di Algoritmo

  • Abbiamo visto che quello di algoritmo non è un concetto strettamente

informatico.

  • In Informatica tuttavia, per essere definito tale, un algoritmo deve

rispettare alcune proprietà, definite negli anni ‘60 da Donald Knuth

(Stanford University):

  • Finitezza : Un algoritmo deve terminare dopo un numero finito di passi
  • Definitezza : Ogni passo deve essere rigorosamente definito; le azioni da svolgere devono essere rigorose e non ambigue (operazioni elementari)
  • Input : …deve avere un numero finito di dati/oggetti in entrata
  • Output : …deve produrre un risultato univoco
  • Efficacia : Tutte le operazioni da svolgere debbono avvenire in un tempo finito ragionevole
  • Queste proprietà servono a garantire il fatto che un computer sia in grado

di portare a termine il suo compito.

Proprietà degli Algoritmi

  • Prima che una macchina come il computer possa realizzare un dato compito, è necessario che sia concepito e definito un algoritmo o una serie di algoritmi in grado di realizzare quello stesso compito (« analisi »)
  • In seguito quello stesso algoritmo dovrà essere rappresentato in una forma che sia compatibile con il nostro computer; viene fatto un « progetto » per trascrivere l’algoritmo utilizzando un linguaggio che la macchina sia in grado di comprendere
  • Questa rappresentazione dell’algoritmo si chiama « programma » e l’intero processo di sviluppo del programma, la sua codifica in forma comprensibile alla macchina e l’inserimento in memoria, viene detto « programmazione »
  • Il programma viene verificato in una fase di « testing » in cui le funzionalità del programma vengono valutate (rispetto alle specifiche) ed il programma viene utilizzato da persone diverse per individuarne eventuali malfunzionamenti
  • Infine si ha l’attività di « manutenzione » per ulteriori correzioni, adattamenti a diverse piattaforme, evoluzioni etc.

Dall’algoritmo al programma

  • In linea teorica, una volta che viene scoperto un nuovo algoritmo che

realizza un dato compito (per esempio l’algoritmo di Euclide per trovare il

Massimo Comun Divisore di due numeri interi, l’algoritmo per comprimere

la musica in mp3 o le immagini in jpg), questo viene dato per acquisito e

non viene richiesto di comprenderne il funzionamento.

  • In questo senso l’algoritmo rappresenta un «mattone fondamentale» che

non viene ulteriormente messo in discussione.

  • Soprattutto nell’informatica moderna, questo concetto è ampiamente

utilizzato e un grandissimo numero di questi «mattoni» si trovano nel Web

ad uso e consumo dei programmatori e degli appassionati di tutto il

mondo.

Dall’algoritmo al programma

Algoritmi e Società

Oggi l’informatica si è affermata come la scienza degli algoritmi.

L'ambito di questa scienza è molto ampio, attingendo e interagendo

con diverse discipline come la matematica, l’ingegneria, la psicologia, la

biologia, l’economia aziendale, le scienze ambientali, la linguistica etc...

Questo implica che i ricercatori in diversi rami dell'informatica possono

avere delle idee anche molto diverse di cosa sia l’informatica e di quale

sia il suo scopo.*

*Liberamente tratto da «Computer Science: an overview 11° ed» - j. Brookshear (Pearson 2012)

Algoritmi e Società

  • Queste sono visioni parziali in cui si perde di vista il quadro generale e si perde di

vista il ruolo vero dell’informatica che non è quello di cambiare il mondo quanto piuttosto quello di rispondere ad alcuni quesiti (in quanto scienza degli algoritmi).

  • Quali problemi possono essere risolti con un approccio di tipo algoritmico?
  • Come può essere reso più semplice scoprire e definire un algoritmo?
  • Come possono essere migliorate le tecniche di rappresentazione e di comunicazione degli algoritmi?
  • Come possono essere analizzate e comparate le caratteristiche di diversi algoritmi?
  • Come possiamo utilizzare gli algoritmi per manipolare l’informazione?
  • Come possiamo applicare degli algoritmi per produrre comportamenti intelligenti?
  • Che impatto può avere l’applicazione degli algoritmi sulla società?
  • Rispondere a queste domande presuppone di operare con un elevato grado di

astrazione il che significa: ignorare i dettagli interni di un dato oggetto, per concentrasi sulle sue proprietà esterne*.

*Liberamente tratto da «Computer Science: an overview 11° ed» - j. Brookshear (Pearson 2012)

Il Computer

Ripartiamo dalla definizione di Computer:

«Macchina in grado di elaborare dati, automatica e

programmabile»

e dalle sue due componenti fondamentali:

  • La componente fisica ovvero «Hardware»;
  • La componente immateriale ovvero «Software»

Software

Il Computer

La prima cosa da fare per cercare di

spiegare il computer è quella di porsi

la seguente domanda:

Perché il computer è diventato uno

strumento così importante e

pervasivo della nostra società?