

















Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Descrivo in poche pagine la storia dell'informatica
Tipologia: Sintesi del corso
1 / 25
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!


















Bisogna aspettare fino al XVII secolo d.c. per avere la prima vera innovazione rispetto all'abaco. A 19 anni Blaise Pascal, per aiutare suo padre nella soluzione di problemi di calcolo, inventa la pascalina. La pascalina è il primo grande passo avanti: la logica dell'operazione è controllata della macchina, ma poteva effettuare "solo" addizioni e sottrazioni. Il problema vero è che la logica che governa le operazioni è "cablata" nella macchina calcolatrice, non introdotta dall'esterno così come dall'esterno venivano introdotti i numeri con cui fare il calcolo. La soluzione veramente definitiva del problema del calcolo era di costruire una macchina che potesse fare qualunque tipo di calcolo semplicemente comandandoglielo, non ricostruendola appositamente per quel tipo di calcolo, cioè una macchina PROGRAMMABILE introdotta da Charles Babbage intorno al 1840, è il primo esempio di macchina di calcolo programmabile. Un algoritmo è una sequenza di passi elementari che porta alla soluzione del problema. Il nome algoritmo richiama quello del padre dell'algebra e primo matematico Al- Khuwarizmi vissuto in Persia intorno al XI secolo d.c. Indica l'insieme delle operazioni necessarie a risolvere un problema. L'informatica è la scienza degli algoritmi Alan Turing: è considerato uno dei padri dell’informatica, moltissime sue idee/congetture sono attuali anche oggi. Inventa la macchina di Turing e il test di Turing. Il modello di Turing è un modello astratto e puramente teorico di calcolatore: è un "esperimento mentale" , non una macchina effettivamente costruibile. È universale perché può calcolare tutto ciò che è scritto nei suoi programmi. Alla base del funzionamento c'è la stessa idea che sta alla base della macchina analitica, cioè l'idea di una macchina programmabile. John von Neumann è il primo a descrivere un computer effettivamente costruibile. L'informatica è l'insieme dei processi e delle tecnologie che consentono la creazione, la raccolta, l’elaborazione, l'immagazzinamento e la diffusione dell'informazione. Massimo numero rappresentabile è il numero più grande esprimibile con un dato numero di cifre. La codifica dei caratteri deve avere due caratteristiche fondamentali : essere standardizzata e garantire la copertura di tutti i caratteri utilizzati nel mondo Le categorie principali del software sono sistemi operativi e programmi Rappresentazione delle informazioni : Possono elaborare vari tipi di informazioni: testi , immagini , suoni. Tutti gli altri tipi di informazioni devono essere convertiti in qualche modo in forma di numeri. Segnali analogici : insieme continuo di valori, trasmettono molte informazioni.Vantaggi del digitale : semplice , non ambiguo. Un segnale digitale è binario , cioè un segnale discreto e basato su due valori Bit: binary digit; un bit può assumere solo due valori (0,1) 2 bit= 4 informazioni 6 bit sono abbastanza per 61 informazioni
8 bit formano un byte. il byte viene utilizzato - insieme al bit come.unità di misura per esprimere la capacità della memoria , la potenza di un calcolatore , la velocità di trasmissione di una linea Numerale 111² = 1 in posizione 2 , 1 in posizione1 e 1 in posizione 0 12² + 12¹+1*2ⁿ = 4+2+1 = 7 Il sistema di numerazione binario ( base 2) utilizza una notazione posizionale basata su 2 cifre (0 e 1) e sulle potenze di 2. Il numero 1001 può essere rappresentato esplicitamente come 1001²= 1×2³ +0x2 ²+ 0x 2¹+ 1x2ⁿ= 9¹ⁿ Conversione da base 2 a base 10: è sufficiente moltiplicare ogni bit per il suo peso e sommare. È sufficiente moltiplicare ogni bit per il suo peso e sommare. Conversione base 10> base 2 : consideriamo ad esempio il numerale 42 in base 10 e cerchiamo la rappresentazione corrisponde in base 2. Esercizio: conversione base 2> 10
Due parametri importanti per la qualità delle immagini digitali che sono risoluzione e profondità del colore. La risoluzione indica la precisione con cui viene effettuata la suddivisione di un’immagine pixel. La profondità del colore è il numero di bit o byte utilizzati per rappresentare ciascun pixel. La dimensione dell’immagine è il numero di bit o byte che servono per memorizzarla. Dimensione = risoluzione x profondità del colore. Esempio : 640 pixel in larghezza , 480 pixel in lunghezza , 256 colore. Le immagini soprattutto quando sono in Truecolor, occupano molta memoria. Esistono tecniche di compressione delle immagini che consentono di ridurre la dimensione dello spazio occupato. Per esempio, una tecnica consiste nel codificare aree dello stesso colore in modo “abbreviato”
Occorre discretizzare anche l’ampiezza di ogni campione, per poterla esprimere con un numero binario. Esercizi:
l’istruzione e preleva gli operandi specificati Execute(esegui): esegue l’istruzione utilizzando la componente opportuna,memorizza i risultati e ricomincia. L’esecuzione (passo execute) comporta l’invio di comandi opportuni all’unità relativa che li deve effettivamente eseguire:
DIMENSIONE DEI REGISTRI: indica quanti dati vengono elaborati ad ogni ciclo di clock e determina la velocità del processore, dato che influenza la frequenza di scambio di informazioni tra CPU e RAM; la dimensione attuale può essere di 32 bit o 64 bit e si parla quindi di processori con architettura a 32 o 64 bit. Per conoscere la velocità di un microprocessore occorre quindi tenere conto sia della frequenza di clock sia della quantità di dati elaborabili ad ogni clock, cioè della dimensione dei registri. I registri: Sono piccole unità di memoria (32 64 bit) con tempi di accesso molto rapidi, più bassi rispetto alla RAM. Ospitano in modo organizzato tutte le informazioni necessarie per eseguire l’istruzione corrente. Sono in numero limitato (10, 20, 64) e si dividono in registri speciali e generali. Sono le unità di memoria più piccole, ad accesso più veloce e più costose. La memoria secondaria rispetto alla RAM è: permanente, meno costosa, maggiori dimensioni e più lenta. La memoria secondaria è la più grande, la meno veloce e la meno costosa. La CPU può eseguire (ed elaborare) esclusivamente programmi (e dati) che risiedono in memoria principale (RAM) • I programmi ei dati risiedonoinmemoriasecondaria • Perciò devono essere copiati inmemoriaprincipale • Quandosi esegueunprogramma, il sistema operativo locopiadallamemoria secondaria (es.hard disk)e lo scrive dentro la RAM; l’operazionesi chiamaloading ocaricamento. È compostada: • supporti di memorizzazione componente fisico in cui vengono immagazzinati i dati Es.: DVD • dispositivi di memorizzazione leggono/scrivono dati dal/sul supporto di memorizzazione Es.: lettore DVD. Registrazione magnetica: la testina emette impulsi elettrici che invertono la polarità della superficie del supporto; 0 e 1 corrispondono a superficie magnetizzata e non- magnetizzata Registrazione ottica: il laser crea scanalature sulla superficie del disco; 0 e 1 corrispondono a superficie scanalata e non-scanalata Registrazione allo stato solido: si creano dei circuiti; 0 e 1 corrispondono a circuiti aperti e chiusi > le memorie ssd sono quelle ad accesso più veloce. Hard disk: disco fisso , è la memoria secondaria per eccellenza , memoria di tipo magnetico. La memoria magnetica: sfrutta il fenomeno fisico della polarità, sul supporto sono presenti particelle magnetiche , la testina di lettura/scrittura cambia / rileva la polarità delle particelle. La ricerca di un dato su un disco comporta un certo tempo che dipende da due fattori: Il primo fattore è il tempo di ricerca (SEEK) che indica quanto impiega la testina a posizionarsi sulla traccia desiderata Il secondo fattore è il tempo di latenza (ROTATION LATENCY) che indica quanto impiega il disco a ruotare fino al settore desiderato. La memoria ottica sfrutta la riflessione della luce laser. Sul supporto sono presenti delle minuscole scanalature (pit) cheformanozone chiare (luceriflessa)ezone scure (lucenonriflessa). Dispositivi di Input e di output. Si definiscono PERIFERICHE in quanto sono dispositivi esterni al computer Dispositivi di input: servono ad immettere programma e dati necessari all’elaborazione Dispositivi di output: servono a presentare i dati prodotti dall’elaborazione ricevendoli da CPU e RAM. Hardware del monitor: la superficie del monitor è divisa in pixel , monitor a cristalli liquidi e matrice attiva.
Si basa su 2 principi: 1) Non occorre mantenere sempre in memoria tutti i programmi in esecuzione 2) Le parti dei programmi meno usate si possono spostare sulla memoria secondaria. Swapping: quando un processo non è in esecuzione posso toglierlo temporaneamente dalla RAM e metterlo in memoria secondaria; quando ritorna in esecuzione lo riporto in RAM spostando eventualmente un altro processo. Le pagine vengono riportate in memoria quando servono nuovamente, eventualmente spostandone altre su disco.
Ognifile è memorizzato in blocchi adiacenti, tra loro contigui. Il recupero dell’intero file è facile perchè: Dato il primo dei blocchi si sa dove recuperareglialtri Si ha uno sprecodi memoriaquandounasequenzadi blocchi contigui non è grande abbastanza da ospitare il file Se il file aumenta di dimensioni si deve riallocare l’intero file. Allocazione sparsa: i blocchi che compongono il file sono sparsi per il disco. Abbiamo allocazione sparsa linkata o indexata. Nell’allocazione linkata il file descriptor contiene l’indirizzo del primo blocco, l’accesso ai file diventa sequenziale invece nell’allocazione indexata il file descriptor contiene l’elenco di tutti i blocchi. Durante l’attesa si dice che il processore è in uno stato inattivo (idle). Un processo è un programma in esecuzione. Sistemi multi-programmati: più programmi sembrano essere eseguiti contemporaneamente. •Un processopuòtrovarsiin uno dei tre stati: – inesecuzione, cioèèin esecuzione nella CPU (max un processo in esecuzione per ogni CPU) – inattesa, cioèattendecheun’operazionediI/O termini (o qualche altro evento esterno si verifichi) – pronto, cioèpuò andarein esecuzione,mala CPU è occupata ad eseguire un altro processo. Il s.o. ha il compitodi sceglierequaletrai processi pr onti (in stato Ready) mandare in esecuzione in mododa usarel’elaboratorein modo efficiente (no sprechi) ed efficace (per es. contempidi attesalimitati). In quali casi è opportuno fermare un processo e concedere il processore ad un altro processo? Se un processo non si ferma mai in attesa di input/output o di una risorsa o se più utenti vogliono usare il computer. Si parla di scheduling del processore quando il processore viene diviso equamente tra i processi dello stesso utente. Non si può mai verificare la transizione da wait a running e manco da ready a wait. La gestione delle periferiche comporta: • Aggiornamento costantesullo stato delle periferiche (libere / occupate) • Decisioni in merito all’assegnazionedelle periferiche (nello scheduling dei processi) • Controllodelle periferiche quando non occupate (es. quando il processo ne termina l’utilizzo) • Facility per l'utente che vuole usare le periferiche. La gestione avviene tramite i driver. Ogni driver è specifico di una periferica e di un sistema operativo perché ogni tipo di hardware ha un proprio linguaggio e una propria interfaccia. Il vantaggio di usare un driver è che il sistema operativo non deve sapere nulla di come è fatta la periferica con cui deve comunicare. Lo spooling è utilizzato dai driver delle periferiche per rendere virtualmente disponibili e condivisibili più periferiche di quante se ne hanno. Il Sistema operativo supporta i programmi applicativi:
L'HUB è un punto di snodo della rete, cioè un dispositivo fisico che collega più computer o altri dispositivi e crea una rete locale. La sua funzione è di ripetere i dati ricevuti da un computer a tutti gli altri collegati. Lo SWITCH è più semplice di un hub in quanto è in grado di indirizzare i dati solo al destinatario corretto. In questo modo riduce la congestione della rete. Un FIREWALL è un sistema di sicurezza di rete, che può essere realizzato come dispositivo hardware o programma software. Il firewall controlla il traffico di rete in entrata e in uscita come una barriera tra una rete interna e reti esterne bloccando accessi non autorizzati e minacce. Ma Internet non è una singola rete, è un insieme di reti esteso in tutto il mondo, è la rete delle reti. Quando si scrive Internet con la I maiuscola si intende proprio la specifica rete che collega tutte le reti. Ma quando si scrive internet con la i minuscola si intende la tecnologia dell'internetworking (creare rete) che si basa sui protocolli TCP/IP. La prima rete realmente costruita si chiamava Arpanet ed è la progenitrice di Internet:
Un’altra strategia alternativa alla commutazione di pacchetto è la “commutazione di circuito”. È la strategia applicata nella linea telefonica: Viene riservato un circuito di canali di comunicazione punto a punto su ogni connessione lungo tutto il cammino dal mittente al destinatario. Il vantaggio è che il circuito riservato consente sempre la comunicazione veloce, ma il circuito risulta occupato anche quando non si scambiano dati e all’aumentare delle comunicazioni si possono creare colli di bottiglia. La rete Internet, cioè il World Wide Web (per semplicità detta Web), è composta da miliardi di pagine distribuite sui server di tutto il mondo. Le pagine del Web hanno diversi livelli di accessibilità: Il Surface Web contiene tutte le pagine a cui accediamo liberamente (senza bisogno di credenziali) Il Deep Web contiene tutte le pagine a cui accediamo solo utilizzando le nostre credenziali. Il Dark Web contiene pagine a cui accediamo con browser speciali e conoscendo indirizzi specifici. Nel Surface Web possiamo: trovare tutte le informazioni che ci servono accedendo ad esempio a Wikipedia scaricare video e immagini da YouTube vedere le informazioni sui corsi di studio dell’Università di Torino vedere la pagina di accesso della nostra banca online trovare gli orari di treni e aerei visualizzare le mappe di ogni parte del mondo. In teoria, per trovare le pagine che soddisfano una query di un utente, un motore di ricerca dovrebbe leggere tutte le pagine del Web alla ricerca delle parole della query. In pratica, la ricerca viene resa molto più rapida utilizzando algoritmi che consentono: di trovare le pagine senza leggerle per intero di ordinare le pagine secondo la rilevanza rispetto alla nostra ricerca senza conoscere il significato del contenuto delle pagine. L’operazione di trovare le pagine si chiama matching e viene svolta da un algoritmo che seleziona tutte le pagine che contengono le parole della query. L’algoritmo di matching più utilizzato (quello di Google) si basa sull’indicizzazione delle pagine web. L’indicizzazione è un sistema usato nelle biblioteche fin dall’antichità e consiste nel creare liste di indici che sono associati al contenuto di ogni pagina (contenuto visibile o no). Il motore di ricerca gliele propone in ordine di rilevanza rispetto alla query usando un algoritmo di ranking. L’algoritmo di ranking più utilizzato (quello di Google) si basa sul principio dell’autorevolezza delle pagine web. Al di sotto del Surface Web si trova il Deep Web, la parte profonda della Rete. Nel Deep Web possiamo: accedere al nostro conto bancario online fare acquisti sui siti che vendono vari prodotti vedere le nostre analisi mediche accedere al libretto universitario iscriverci agli esami.
Gli indirizzi statici rimangono invece invariati e sono associati a particolari reti che devono essere raggiungibili. Essi garantiscono l'assegnazione di indirizzi IP coerenti ai siti web e agli indirizzi e-mail collegati, e questo è fondamentale per consentire agli altri dispositivi di trovarli regolarmente sul web. Per proteggere le informazioni personali e l’identità online, occorre nascondere l’indirizzo IP: utilizzando un server proxy; utilizzando una VPN (virtual private network). Gli indirizzi logici sono composti da due o più parti Separate da punti, ad es. www.unito.it •Specificano domini, sottodomini, sotto-sottodomini e così via, fino a identificare il singolo elaboratore collegato in rete. Gli ISP regionali sono collegati a ISP internazionali detti NBP (National Backbone Provider) che collegano le diverse reti nazionali. Nel loro insieme i gestori degli ISP regionali e NBP internazionali formano la dorsale di Internet, la sua struttura portante. Nel caso dell’Italia esiste una dorsale gestita dal consorzio GARR. •Il DNS è il servizio che gestisce la traduzione tra indirizzi logici e indirizzi IP •Un unico server DNS per l’intera Internet sarebbe ingestibile; quindi, esistono vari server DNS distribuiti sul territorio che realizzano il servizio.
–http (HyperText Transfer Protocol) –https che è lo stesso protocollo ma con utilizzo della crittografia nello scambio di dati –termina con i caratteri :/. La crittografia è molto usata nella comunicazione in rete, non solo con il protocollo http, per garantire la sicurezza. I messaggi in rete possono: - non arrivare a destinazione (interruzione della comunicazione) - essere osservati da chi non ne ha diritto durante il transito in rete (intercettazione)- essere inviati da indirizzi falsi (creazione)- essere cambiati duranti il transito (modifica). È un insieme di tecniche per trasformare il messaggio in modo che si leggibile sono dal destinatario. Si basa sulla cifratura delle informazioni e può essere simmetrica o asimmetrica. Le forme di crittografia usate prima dell'informatica erano:
costruire macchine in grado di pensare e quindi anche di manifestare tale capacità tramite l'uso del linguaggio umano. Alan Turing (1912-1954) intorno al 1935 getta le basi teoriche dell’informatica, descrivendo la cosiddetta “macchina di Turing”. Ben presto i ricercatori cominciano ad intuire le potenzialità del computer, e a progettare applicazioni in molti campi in cui esso potrebbe sostituire utilmente l’uomo, anche superandone le capacità in termini di efficienza e rapidità Quando si tratta di applicazioni che richiedono intelligenza, si parla di INTELLIGENZA ARTIFICIALE. L’intelligenza artificiale non è quindi un’invenzione recente, anche se solo oggi se ne sente parlare spesso e ovunque. La nascita dell’intelligenza artificiale coincide con quella dell’informatica e si basa sull’idea che il computer possa simulare il comportamento degli esseri umani, eseguire gli stessi compiti che eseguono gli esseri umani ad esempio con il linguaggio. L'espressione Artificial Intelligence fu coniata nel 1956 dal matematico americano John McCarthy. Secondo le parole di Marvin Minsky, uno dei "pionieri" della A.I., lo scopo di questa nuova disciplina sarebbe stato quello di "far fare alle macchine delle cose che richiederebbero l'intelligenza se fossero fatte dagli uomini”. Uno dei primi compiti intelligenti a cui si pensò di poter applicare il computer fu la traduzione da una lingua all’altra. Il problema della traduzione era urgente: Le differenze linguistiche cominciavano ad essere percepite come barriere allo sviluppo economico e scientifico, ma anche ai rapporti sociali La conoscenza di lingue straniere era allora retaggio di pochi. Una macchina in grado di tradurre dal russo all’inglese e viceversa sarebbe stata uno strumento strategico fondamentale per affrontare con successo la “guerra fredda”. Molti ricercatori (matematici, ingegneri, informatici ante litteram), tra cui Turing, erano convinti che in pochi anni sarebbero state costruite macchine in grado di tradurre perfettamente da una lingua all’altra come traduttori professionisti umani. Ma fecero l'errore di non consultare i linguisti e i traduttori che conoscevano bene il problema. Proprio Alan Turing aveva lavorato per i servizi segreti inglesi ed aveva coordinato lo sviluppo delle macchine per la decrittazione. La ricostruzione di una macchina per la decrittazione (denominata “bomba”) costruita da Turing e il suo team a Bletchley Park nel 1939. Nascono i primi sistemi di traduzione automatica, progenitori di Google Translate e di tutti quei sistemi che oggi ci consentono di ottenere una (solitamente corretta) traduzione da una lingua all’altra. Per verificare le prestazioni di una macchina propose un test, noto come “test di Turing”, che consente di capire se il comportamento
che la macchina esibisce può essere considerato intelligente. Il test si basa sulla capacità della macchina di utilizzare il linguaggio umano, mostrando di comprenderlo e di saperlo generare in modo adeguato. Il computer supera il test se fornisce risposte tali da indurre degli esseri umani a credere di avere a che fare con un altro parlante umano. Il linguaggio è stato spesso considerato da filosofi e scienziati come la caratteristica più tipica degli esseri umani e come il modo in cui essi manifestano intelligenza. Superare il test di Turing sembra non essere sufficiente per mostrare l’intelligenza di una macchina. La soglia per verificare l’”intelligenza” di una intelligenza artificiale si è spostata anche verso la creatività, le emozioni e la capacità di fare ironia, tutte cose che entrano pesantemente in gioco in tutta la comunicazione umana. Una quantità di libri e film hanno proposto entità artificiali dotate di capacità di linguaggio e ragionamento molto simili a quelle degli umani.Nel 1968, Stanley Kubrik, nel film “2001 ODISSEA NELLO SPAZIO”, immagina che nel 2001 lo sviluppo dell’intelligenza artificiale sia stato tale da poter costruire macchine pensanti e parlanti. HAL9000 è l’IA del film, macchina "incapace di commettere errore", capace di pensare e di comunicare in linguaggio umano, ma anche di tentare di distruggere gli esseri umani per evitare di essere spenta. In “INTERSTELLAR “l’intelligenza artificiale TARS, dall’aspetto poco umano, dialoga con i protagonisti facendo anche ironia, e li aiuta nel corso del loro viaggio attraverso lo spazio-tempo. Tra le applicazioni di intelligenza artificiale con cui entriamo più spesso in contatto ci sono quelle che riguardano il linguaggio umano. Sono le cosiddette «tecnologie del linguaggio» di cui si occupa quella parte dell’intelligenza artificiale che prende il nome di linguistica computazionale o NLP (natural language processing). Esse comportano forme di COMPRENSIONE DEL LINGUAGGIO UMANO che sono possibili da parte di una macchina solo se essa “conosce” le parole e le regole che governano il linguaggio ed il comportamento linguistico. Oggi disponiamo di computer che producono prestazioni linguistiche quasi della stessa qualità di quelle prodotte da un essere umano. Si tratta di compiti molto complessi che richiedono conoscenza linguistica ed extra linguistica. Le tecnologie della parola funzionano nello svolgimento di certi compiti, su certi tipi di testi e in certi contesti di applicazione. Al pari di un essere umano, per poter comunicare in linguaggio umano un sistema di NLP deve:
**- acquisire la conoscenza relativa al linguaggio