UD 3.2a: Introduzione alla Programmazione
Bibliografia Curtin, (vecchie edizioni) 12.1 Curtin (IV edizione): 11.1 Questi lucidi
Il concetto di programma memorizzato Gli elettrodomestici di uso quotidiano ed il computer sono dispositivi elettromeccanici complessi Gli elettrodomestici di uso quotidiano sono adatti ad un uso specifico (es lavatrice, TV, HIFI, ) il loro comportamento è guidato dalla interazione tra i componenti fisici e meccanici
Un computer Il concetto di programma memorizzato è una macchina universale (general purpose) in grado cioè di svolgere compiti molto diversi tra di loro Scrivere lettere Gestire il proprio Conto Corrente Bancario Giocare a scacchi il suo comportamento è guidato da un insieme di istruzioni elementari, chiamate programma (o software) Per far cambiare funzione al computer è sufficiente cambiare il programma che risiede nella memoria RAM.
Il S.O. e i programmi applicativi Il Sistema Operativo permette poi ai programmi applicativi di interagire con l hardware del computer tramite il BIOS 21 nov 2011 Dia 5
I Programmatori Il Software è scritto da specialisti informatici detti programmatori (anche se l intero processo di progettazione e sviluppo di un software prevede la presenza di altri specialisti, quali l analista ecc ) Un analista/programmatore deve Descrivere passo per passo la procedura logica di soluzione al problema, cioè l Algoritmo Descrivere la tipologia e l organizzazione dei dati, cioè le Strutture Dati Progettare le modalità di interazione dell utente con il programma, cioè la cosiddetta Interfaccia Utente.
I Programmatori La programmazione è una combinazione di arte e scienza e richiede una particolare attenzione all analisi di tutte le possibili situazioni nelle quali potrà trovarsi l elaborazione (completezza) ai dettagli descrittivi dei singoli compiti che deve svolgere l elaboratore (accuratezza) All assenza di conflitti computazionali tra le varie parti del programma (linearità) Un analista/programmatore è un esperto molto qualificato che progetta e costruisce sistemi software.
I Programmi I programmi sono di gran lunga il prodotto più complesso concepito dalla mente umana Ad esempio il Sistema Operativo XP è composto da 40 Milioni di istruzioni Stampate su fogli A4, con interlinea singola, occuperebbero 750.000 pagine (750 volumi da 500 pagine l uno, stampate fronte/retro)
Dal problema al programma (I) Bisogna, preventivamente, analizzare il problema, scomporlo, eventualmente, in sottoproblemi e verificare la risolubilità di ogni singola parte. Bisogna poi formulare una strategia di soluzione del problema (algoritmo). Nel caso, molto comune, di problemi scomponibili in più sottoproblemi bisogna dare un algoritmo per ogni sottoproblema.
Dal problema al programma (II) Un algoritmo, per poter essere eseguito da un computer, deve essere scritto in un linguaggio formale e non ambiguo, detto linguaggio di programmazione. In questa fase viene cioè prodotto il programma corrispondente all algoritmo. Si noti che il programma non è ancora in un formato direttamente eseguibile dal computer, ma le sue istruzioni, espresse in un linguaggio ancora molto simile ad una lingua naturale, devono essere trasformate in una successione di simboli binari.
Dal problema al programma (III) Infine bisogna chiedere alla macchina di aggregare i vari programmi, corrispondenti ai singoli algoritmi, in un unico programma tradurre (si dice compilare o interpretare) i programmi scritti nel linguaggio di programmazione in una successione di istruzioni espresse come successioni di 0 e 1, l unico alfabeto che è comprensibile al computer eseguirlo (cioè mandarlo in esecuzione)
Errori Sintattici Un errore sintattico è quando si costruiscono istruzioni che contravvengono alle regole formali di costruzione delle frasi del linguaggio di programmazione Ad esempio quando, in Pascal, si scrive : invece che := per indicare un istruzione di assegnazione oppure si scrive Wrote invece che Write. In tal caso il programma non può essere eseguito perché il compilatore non lo traduce in linguaggio macchina, permettendoci così di sapere che c è stato un errore.
Errori Logici (o algoritmici) Un errore logico (spesso di difficile individuazione) è quando si scrive una frase sintatticamente corretta, ma algoritmicamente sbagliata. Ad esempio se devo sommare 2 numeri e sbaglio operatore scrivendo il invece che il + In tal caso il programma viene eseguito perché il compilatore lo traduce in linguaggio macchina. Il programma quindi gira, ma il risultato sarà differente da quello corretto.
I Programmi Ogni programma è sicuramente esente da errori sintattici, ma deve anche essere ESENTE DA ERRORI logici, perché a volte anche un solo errore algoritmico potrebbe rendere il software inutilizzabile.
Bibliografia minima Un testo contenente la matematica necessaria per un informatico è: Graham, Knuth, Patashnik Concrete Mathematics a foundation for Computer Science Addison Wesley, 1994 (672 pagine) (trad. italiana Hoepli) Un buon testo di introduzione agli algoritmi e alle Strutture dati è: Cormen, Leiserson, Rivest, Stein "Introduzione agli Algoritmi e alle Strutture Dati McGraw-Hill, 2010 (3 a edizione) (1030 pagine) Un buon testo di introduzione all architettura di un computer è: D.A. Patterson e J.L. Hennessy, "Struttura e progetto dei calcolatori Zanichelli, 2010 (3 a edizione) (712 pagine)