Scarica Fondamenti informatica e più Appunti in PDF di Fondamenti di informatica solo su Docsity! Fondamenti di informatica Il termine informatica deriva dalla concentrazione dei termini: - informazione - Automatica Alla base dell’informatica c’è il concetto di trattamento automatico dell’informazione: Che cos’è l’informazione? Che cosa sono i dati? I DATI I dati sono rappresentazioni originarie, cioè non interpretate, di un fenomeno, evento, o fatto. Empi di dati: - Misure della temperatura in una stanza - Misure della posizione di una persona in una città effettuata con GPS - Il numero di abitanti in un’area geografica - Il numero di partecipanti in una chat su fb INFORMAZIONE L’informazione è il risultato della interpretazione di dati, che li rende significativi per il destinatario: l’informazione consente di prendere decisioni. Informazione: - insieme di dati - Interpretati - Comprensibili per il destinatario —> gli consentono di prendere decisioni DATI E INFORMAZIONE L'Informazione riguarda il mondo in cui un sistema acquisisce conoscenza dal mondo esterno attraverso l’interpretazione di dati. Pensiero computazionale Algoritmi Obiettivi • Offrire un quadro delle potenzialità educative del pensiero computazionale. • Come formulare problemi. • Come progettare soluzioni in termini di algoritmi. Materiali • Articolisupensierocomputazionale(disponibilisuAulaWeb): – Giorgio Olimpo (2017). Dal mestiere dell’informatico al pensiero computazionale. Italian Journal of Educational Technology, 25(2), 15-26. doi:10.17471/2499-4324/918 – Jeannette Wing (2006), Computational Thinking, Communications of the ACM, trad. Italiana in Antonio Camerlengo, Il Pensiero Computazionale, Flaccovio Editore, Palermo, 2017. • Unsitointeressanteperl’insegnamentodell’informaticaabambinia partire da 4 anni: https://code.org/ • Corsionline,video,tutorialealtriarticolisonodisponibilisuinternet ad esempio consultando Google Scholar, Youtube e i siti di corsi online (ad es Coursera). Algoritmo • Un algoritmo per la risoluzione di un problema è una sequenza di passi discreti – di lunghezza finita – deterministici —> dopo ogni passo si sa precisamente qual è il prossimo – ripetibili che producono la soluzione del problema. Esempio: le istruzioni di montaggio di un mobile Ikea, una ricetta (non con qb perchè non è deterministico). • Altri semplici esempi di algoritmo: – Calcolare la media di 10 voti – Calcolare la lunghezza dell’ipotenusa di un triangolo rettangolo – Risolvere un’equazione di secondo grado Algoritmi: esempi • Trasmissione dati in Internet: – Come si gestisce in pratica il flusso dei dati nella rete internet? • Ricerca sul WEB: – Come fa Google a trovare informazioni sul web? • Processi economici: – Come si gestiscono le aste on-line su Ebay? – Come si effettua la compravendita di azioni su Internet? • Organizzazione di risorse e servizi: – Come si gestisce il traffico aereo o gli orari dei treni sulla rete ferroviaria? – Come si interpretano i dati di esami clinici? – Come si gestiscono le playlist di canzoni su iTunes o Spotify? – Come si gestiscono attività e dati nei social media (Instagram, Facebook...)? • i passi costituenti devono essere interpretabili in modo diretto e univoco dall'esecutore, sia esso umano o artificiale (non ambiguità); • l'algoritmo deve essere composto da un numero finito di passi e richiedere una quantità finita di dati in ingresso (finitezza) • l'esecuzione deve avere termine dopo un tempo finito (terminazione); • l'esecuzione deve portare a un risultato univoco (effettività). Algoritmi: discussione su proprietà «rompere le uova» può essere considerato un passo elementare di un «algoritmo per una ricetta di cucina»; ma non potrebbe esserlo anche «aggiungere sale quanto basta», dato che l'espressione «quanto basta» è ambigua, e non indica con precisione quali passaggi servano per determinare la quantità necessaria. Un passo come «preparare un pentolino di crema pasticcera» non può considerarsi come un passo elementare (immediatamente eseguibile) perché va ulteriormente scomposto in sotto- operazioni (accendere il fuoco, regolare la fiamma, mettere il pentolino sul fornello, ecc.): inoltre contiene ambiguità in quanto non specifica quanto grande debba essere il pentolino, quanto deve essere riempito di crema e così via. «continuare a mescolare a fuoco vivo fino a quando il composto non assume colore bruno» è un'istruzione accettabile di tipo iterativo, che comporta un numero finito di operazioni (le rimestate) sebbene tale numero non sia conoscibile a priori, perché dipendente da ciò che è chiamato input (il grado di umidità della farina nel composto, il vigore della fiamma, ecc.). All'istruzione non elementare di preparazione della crema potrebbe essere associato un opportuno rimando a un'altra sezione del ricettario, che fornisca un sotto-algoritmo apposito per questa specifica operazione. Questo suggerisce che gli algoritmi possano essere modulari, ovvero orientati a risolvere specifici sotto-problemi, e gerarchicamente organizzati («divide et impera»). Una ricetta che preveda la cottura a microonde non può essere preparata da un esecutore sprovvisto dell'apposito elettrodomestico; questo rimanda al problema della realizzabilità degli algoritmi, ovvero della loro compatibilità con le risorse materiali e temporali a disposizione. Possono esistere più algoritmi validi per risolvere uno stesso problema, ognuno con un diverso grado di efficienza. Algoritmi: generalità Algoritmo: procedimento di risoluzione di un «problema». «problema»: caratterizzato da dati di ingresso (input) su cui l'algoritmo opera per giungere alla soluzione. Esempio di «problema»: calcolo del massimo comune divisore fra due numeri; i dati di ingresso, variabili di volta in volta, sono i due numeri in questione. Questo potrebbe apparire come una «famiglia di problemi»: il problema di calcolare il massimo comune divisore fra 10 e 15, il problema di calcolarlo fra 40 e 60, fra 35 e 95, ecc. Con la parola «problema» indichiamo l'intera famiglia e con «istanza» ciascuno dei quesiti specifici ottenuti fissando due particolari valori. Data questa premessa, un algoritmo risolve un problema se per qualunque istanza del problema esso produce in un tempo finito la soluzione desiderata, ovvero un certo risultato o dato in uscita (output). Algoritmi: generalità Se per risolvere un problema esiste un procedimento infallibile, descrivibile in modo non ambiguo e che conduce sempre all'obiettivo desiderato in un tempo finito, allora questo compito può essere affidato a un computer: Occorre tradurre l'algoritmo in un linguaggio comprensibile al calcolatore: linguaggio di programmazione. Il computer o calcolatore elettronico o sistema di elaborazione delle informazioni Per introdurre la struttura del computer, utilizziamo una analogia con “il modello di processione umana”, introdotta nell’ambito delle scienze cognitive da Card, Moran e Newell nel 1983. Slide —> modello approssimato di come funziona l’essere umano (i sensi non sono solo 5 ma molti di piu). I sensi rilevano l’info dal mondo esterno (es raggi di luce) e restano memorizzati a breve termine degli occhi o altre parti. Dopo di che vengono elaborati dal processore percetttivo che ti permettono di distinguere e riconoscere le cose presenti nella memoria a lungo ermine. Il processore cognitivo —> parte che pianifica che cosa fare quindi alzarmi fare passi ecc e costruisce algoritmi per risolvere i problemi e che hanno il compito i fare seguire questa cose tramite il processore motorio. Questo processo diventa un ciclo, perchè man mano che si compiono azion i sensi percepiscono sempre piu info che vanno a modificare gli algoritmi. Ia memoria di lavoro —> memoria che dimentica dopo pochi secondi e serve per svolgere glia l’ho del processore cognitivo Memoria. A lungo termine —> cose che conosco e che sono impresse nella memoria. Un emozione forte permette di innescare un processo immediato d’ala memoria a breve termine a quella lungo termine. Attenzione —> il or essere cognitivo funziona al massimo quando siamo attenti. Copiare slide Computer/ calcolatore elettronico/ sistema di elaborazione delle informazioni Applichiamo il modello di processore umano a una “macchina” che elabora informazioni: essa saà dotata di dispositivi. - per ricevere dai (dispositivi di input) tastiera mouse - Per elaborare i dati acquisit dai dispositivi inpu, utilizzando capacità matematiche, logiche e per memorizzare i dati utili sia a breve che a lungo termine - Per presentare i risultati delle elaborazioni (informazioni) all’utente (dispositivo d output) display, video, stampante ecc Che cos’è un computer? A prescindere dalle dimensioni e dal luogo in cui si trova, puo essere definito come un elaboratore elettronico digitale Elaboratore —> in grado di immagazzinare ed elaborare dati in base ad una serie di istruzioni (alto) per ricavare info Elettronico —> utilizza componenti elettronici Digitale —> elabora dati e info convertendoli in segnali digitali basati sul sistema binario. Computer tipologie Supercomputer —> elevatissima capacità di elaborazione; calcolo parallelo (fa più cose contemporaneamente); singole applicazioni Mainframe —> grandi aziende Minicomputer Personal computer Network computer —> terminali con capacita di calcolo e spesso anche di immagazzinamento dati (no ardisc). Terminali —> nessuna potenza di calcolo, sfruttano quello di un server a cui si collegano. Smartphone, tablet Dispositivi indossabili Pervasive, ubiquitous, disappearing computers (microonde, lavatrice) Struttura di un computer CPU → unità centrale di elaborazione Memoria primaria → memoria a breve termine, se spegni il computer cancelli tutto Memoria secondaria → paragonata alla memoria a lungo termine Disposoitivi I/O → corrispondono ai nostri sensi Bus → La CPU → slide