generalità concetti di base
cosa significa informatica? scienza dell informazione e l informazione giornalistica? scienza dei computer (dall inglese computer science) per i progettisti di computer? scienza per la rappresentazione e l elaborazione dell informazione e i computer? meri esecutori (c) Fabrizio d'amore 2
informazione dati di interesse numeri, parole, simboli, testi, immagini, suoni interessanti per la consultazione la deduzione di novi dati (che siano deducibili ) informatica = scienza per la rappresentazione e l elaborazione dell informazione (c) Fabrizio d'amore 3
rappresentazione dell informazione convenzione per rappresentare tramite simboli o parametri fisici concetti astratti simboli: rappresentazione digitale parametri fisici: rappresentazione analogica seven sette 00000111 informatica = scienza per la rappresentazione e l elaborazione dell informazione (c) Fabrizio d'amore 4
elaborazione dell informazione processo automatico che a partire da dati in ingresso (input) produce dati in uscita (output) le regole che definiscono come costruire l output a partire dall input costituiscono un algoritmo volto normalmente alla risoluzione di un problema informatica = scienza per la rappresentazione e l elaborazione dell informazione (c) Fabrizio d'amore 5
concetto di problema cosa è un problema? descrizione di un contesto, di uno scenario risoluzione di un problema contesto + input output è necessario che l output sia determinabile (calcolabile) a partire dal contesto e dall input (c) Fabrizio d'amore 6
classe di problemi insieme di problemi simili, definiti nello stesso contesto che differiscono essenzialmente nell input esempio: contesto: individuare su uno stradario il percorso migliore fra due città input: partenza = Roma, destinazione = Milano output: autostrada A1 (c) Fabrizio d'amore 7
istanze di problemi classe di problemi + input = istanza di problema in genere il termine problema è usato in modo ambiguo, talvolta per indicare classe di problemi, talvolta per indicare istanza di problema esempio: risoluzione di un equazione di secondo grado classe o istanza? (c) Fabrizio d'amore 8
decisionali tipi di problemi ammettono solamente una risposta: sì oppure no di ottimizzazione in un insieme di soluzioni ammissibili si vuole individuare quale soddisfa meglio una determinata proprietà esempio: percorso Roma Milano, proprietà di interesse: distanza percorsa una soluzione ammissibile è un qualunque percorso che colleghi le due città la soluzione ottimale è quella che minimizza la distanza Roma Milano (c) Fabrizio d'amore 9
sommario problemi decisione ottimizzazione classe istanza (c) Fabrizio d'amore 10
risoluzione dei problemi (1) nella definizione di una classe di problemi si specifica cosa deve essere calcolato (una volta noto l input) in altre parole, data un istanza di problema, è perfettamente definito l output del problema (purché sia risolvibile e i dati siano sufficienti) non viene invece fornito un metodo di soluzione dato l input, come è possibile determinare l output? (c) Fabrizio d'amore 11
risoluzione di problemi (2) analisi e comprensione delle specifiche familiarità con la classe di problemi individuazione di un insieme di strategie ammissibili scelta di un metodo descrizione dettagliata del metodo (c) Fabrizio d'amore 12
risoluzione di problemi (3) come mettere in pratica il metodo? l attuazione della procedura di risoluzione può essere complessa chi mette in pratica il metodo? la descrizione dettagliata della procedura di risoluzione non può essere indipendente dall attuatore attuatore quanto è intelligente l attuatore attuatore? quale grado di autonomia ha? sa interpretare il contesto? (c) Fabrizio d'amore 13
algoritmi descrizione di una sequenza ordinata di passi elementari da Ar al-khwārazmī, che porta senza matematico ambiguità arabo alla (IX individuazione secolo) originario della soluzione del Khwārazm di un (Khiva) problema la sequenza che per primo di passi, suggerì anche un metodo se lunga, per deve essere finita sommare due numeri rappresentati nel esistono sistema problemi numerico che Hindu non ammettono algoritmi risolutivi o che, in altre parole, non ammettono alcun procedimento risolutivo che dia garanzia di terminazione di norma concepiti con riferimento a una classe di problemi (c) Fabrizio d'amore 14
problema della capra, del lupo e del cavolo 1. porta la capra sull altra sponda 2. torna indietro 3. porta il cavolo sull altra sponda 4. porta indietro la capra 5. porta il lupo sull altra sponda 6. torna indietro 7. porta la capra sull altra sponda classe o istanza? (c) Fabrizio d'amore 15
qualità degli algoritmi correttezza output corretti in corrispondenza di input ammissibili quali output negli altri casi? efficienza uso efficace delle risorse tempo spazio (c) Fabrizio d'amore 16
eseguibilità degli algoritmi nell informatica moderna gli algoritmi debbono essere eseguiti dagli elaboratori ciò comporta che i passi che compongono l algoritmo debbono essere eseguibili dall elaboratore ogni singolo passo potrebbe corrispondere a un istruzione macchina della CPU (c) Fabrizio d'amore 17
visione funzionale degli algoritmi input A1 A3 = output A1 + A2 A2 output input A2 output (c) Fabrizio d'amore 18
es: : equazione 2 o grado ax 2 + bx + c = 0 2 4 b ± b ac x = 2a (c) Fabrizio d'amore 19
es: : equazione 2 o grado/2 b b * - *4 a c * b - + / x 1 a *2 (c) Fabrizio d'amore 20
ancora sulla visione funzionale utile sia nell approccio top-down down,, sia bottom-up top-down down: decomposizione di un problema complesso in sottoproblemi più semplici bottom-up up: riuso di soluzioni già disponibili occorre un sistema per descrivere la sequenza delle operazioni previste (c) Fabrizio d'amore 21
diagrammi o grafi di flusso (flow charts) start I/O stop sottoprogramma operazione test selezione (c) Fabrizio d'amore 22
diagrammi di flusso (esempio) start calcola x2=(-b-r)/(2a) output x1 input a, b, c calcola x1=(-b + r)/(2a) output x2 calcola d = bb 4ac calcola r = d stop se d è < 0?? (c) Fabrizio d'amore 23
esempio equazione 2 2 grado start calcola x1=(-b + r)/(2a) calcola x2=(-b - r)/(2a) input a, b, c calcola r = d output x1, x2 no calcola d = bb 4ac d<0? sì output no radici reali stop (c) Fabrizio d'amore 24
descrizione di algoritmi diagramma di flusso quando l algoritmo diviene complesse sono estesi e di difficile comprensione/correzione pseudo-codice informale, ampiamente utilizzato ha sostituito il diagramma di flusso negli ultimi venti anni codice richiede la conoscenza di un linguaggio di programmazione (c) Fabrizio d'amore 25
pseudo-codice start input(a, b, c) d = bb 4ac if(d < 0) output( no radici reali ) else e = sqrt(d) x1 = (-b( b + e) / (2a) x2 = (-b( e) / (2a) output(x1, x2) stop (c) Fabrizio d'amore 26
radice quadrata metodo numerico per il calcolo rapido della radice quadrata di un reale non negativo r metodo di Newton-Raphson x = 1 r + x n+ 1 n 2 xn occorre criterio di arresto es., se xk + 1 xk < ε (c) Fabrizio d'amore 27
radice quadrata (flow( chart) start x = (r/x + x)/2 x = 1 xprec = ε = 0.000001 xprec=x sì stop input(r) x-xprec >ε? output x no (c) Fabrizio d'amore 28
radice quadrata (pseudo( pseudo-codice) start input(r) x=1 (ad esempio) xprec = ε = 0.000001 while( x ( x-xprec > ε) xprec = x x = (r/x + x)/2 output(x) stop (c) Fabrizio d'amore 29
radice quadrata /2 algoritmo perfezionato start input(r) if(r < 0) r = -r input(x) input(ε) xprec = while( x ( x-xprec > ε) xprec = x x = (r/x + x)/2 output(x) stop (c) Fabrizio d'amore 30