


































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
Fondamentali dell’informatica Esame del primo anno della triennale
Tipologia: Appunti
1 / 42
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!



































Informatica: ● Il termine informatica è stato introdotto nel 1957 da Karl Steinbuch “ Informatik ” ● Deriva dal francese “ informatique ” → è la contrazione dei termini: Informazione: può essere rappresentata in 2 modalità ● Deriva da informare, ossia dare forma ● Fa riferimento ad un concetto astratto che può coincidere con qualunque notizia o raccolto ● Affinchè un calcolatore riesca ad elaborare l'informazione è necessario trasformare quest’ultima da analogica in digitale binaria ⤷ processo di trasformazione definito: codifica Stessa Informazione può essere codificata in + rappresentazioni a seconda del contesto I “simboli” “XII”, “C” e “14” costituiscono tre codifiche diverse della stessa informazione numerica: _ nel sistema Romano _ nel sistema esadecimale _ nel sistema ottale Per interpretare le differenze codifiche dell'informazione è necessario conoscere il codice, ovvero la regola, che a ogni configurazione ammessa associata un’entità di informazione. _ Codice → insieme di parole in cui ogni parola è costituita da simboli. ⤷ I simboli utilizzati per costruire le parole vengono detti alfabeto. _ Alfabeto → costituito da soli due simboli, si parla di codifica binaria. ⤷ costituito dai simboli 0 e 1. L’unità fondamentale di rappresentazione dell’informazione è il bit.
Un sistema di numerazione è l’insieme di simboli (cifre) e di regole utilizzati per rappresentare qualunque numero.
1. I primi sistemi di numerazione furono di tipo non posizionale. → Perchè il valore del numero si ottiene sommando (o sottraendo) i valori numerici dei singoli simboli che costituiscono la scrittura del numero.
Esempio di sistema non posizionale = sistema di numerazione romano. I romani, infatti, usavano dei simboli per rappresentare alcuni numeri (I = 1, V = 5, X = 10, C = 100, M = 1000) e rappresentavano gli altri numeri come sequenze di questi simboli, che andavano sommati o sottratti. Svantaggi: _ Elevato numero di Simo è necessario per rappresentare numeri grandi; _ La difficoltà di eseguire delle operazioni di calcolo anche banali.
2. Sistemi posizionali → Assegnano i simboli utilizzati per comporre un numero, un "peso" diverso in base alla loro posizione (cifre uguali imposizioni diverse hanno peso diverso). I sistemi di numerazione posizionati si differenziano tra loro per il numero di cifre utilizzate o sia per il valore della base. 2.1 Sistema di numerazione decimale È stato introdotto per la prima volta nel VI secolo in India ⤷ si chiama decimale perché utilizza una notazione posizionale basata su 10 cifre (da zero a nove) e sulle potenze di 10. Esempio: il numero 5028 si può scrivere in forma polinomiale così: 5028 = 5𝑥10+ 0x + 2x + 8 = 5000 + 3 10 2 10 1 0 + 20 + 8 2.2 Sistema di numerazione binario _ Utilizza solo due cifre 0 e 1. _ Nel linguaggio informatico le cifre binarie vengono indicate con il termine bit , dalla contrazione delle due parole inglesi Binary digiT (cifra binaria). _ Come sistema decimale, le cifre del sistema binario zero e uno assumono un valore posizionale Esempio: 00111 può essere rappresentato: 00111 = 0x 2 + 0x + 1x + 1x + 1x = 7 4 2 3 2 2 2 1 2 0 2.3 Sistema di numerazione esadecimale Si distingue dal sistema decimale, per la presenza di sei cifre aggiuntive identificate dalla lettere maiuscole A, B, C, D, E, F Esempio: il numero esatto decimale 4F può essere rappresentato: (4𝐹) = 4x + Fx 16
1 16 0 ↓ Sapendo che F=15 otteniamo: 4x 16 + 15x = 64 + 15 = 1 16 0 (79) 10 2.4 Sistema di numerazione ottale Il sistema numerico ottale → sistema numerico posizionale in base 8, cioè che utilizza solo 8 simboli (tipicamente 0, 1, 2, 3, 4, 5, 6, 7). I numeri ottali (insieme ai numeri binari e esadecimali) vengono diffusamente utilizzati in svariati campi della scienza e della tecnica ed in particolare nell'ambito informatico (visto che una cifra ottale rappresenta esattamente tre cifre binarie). Generalmente, risulta scomodo trattare lunghe stringhe in bit: così si fa uso di sistemi numerici che consentano di esprimere in maniera più compatta le lunghe stringhe di 0 e 11.
_ La somma di due numeri binari viene eseguita sommando tra loro i bit partendo dai meno significativi, in ordine di peso crescente. _ Dati due cifre binarie, A e B, l’addizione segue la seguente regola: Esempio: Sottrazione _ Come per il sistema decimale si ha un prestito quando la sottrazione delle due cifre porta ad un risultato negativo. _ Dati due cifre binarie, A e B, la sottrazione segue la seguente regola: Esempio: Algoritmi, Linguaggi e Programmi
Il termine “ algoritmo ” prende la sua origine dal nome del matematico arabo Al-Khwarizmi: _ Una procedura per risolvere matematicamente un problema i. Un numero finito di passi, che spesso comprende ripetizioni di un’operazione. _ In generale: un metodo passo-passo per eseguire un dato compito. In informatica, con il termine algoritmo si intende: una sequenza ordinata e finita di passi, ripetibili e non ambigui, che se eseguita con determinati dati in ingresso (input), produce in uscita (output) un risultato ovvero la soluzione di una classe di problemi. Dati → Algoritmo → Risultato Un algoritmo di solito è formulato nel linguaggio di chi lo progetta.problemi di comprensione per l'esecutore delle operazioni descritte. Esempio: ricetta scritta (algoritmo) in italiano, cuoco cinese (esecutore) che non conosce l'italiano (traduzione). Un algoritmo, per essere tale, deve avere le seguenti proprietà: ● essere finito : la sequenza di istruzioni deve essere finita e portare ad un risultato; ● essere eseguibile : le istruzioni devono poter essere eseguite materialmente dall’esecutore; ● essere non ambiguo : le istruzioni devono essere espresse in modo tale da essere interpretate da tutti allo stesso modo; ● essere generale : deve essere valido non solo per un particolare problema, ma per una classe di problemi; ● essere deterministico : partendo dagli stessi dati iniziali deve portare sempre allo stesso risultato finale indipendentemente dall’esecutore; ● essere completo : deve contemplare tutti i casi che si possono verificare durante l’esecuzione. Gli algoritmi possono venire classificati in: ○ Algoritmi deterministici : se per ogni istruzione esiste, a parità di dati d'ingresso, un solo passo successivo; in pratica esiste uno e un solo possibile percorso dell’algoritmo e quindi a fronte degli stessi dati di partenza produrrà gli stessi risultati. ○ Algoritmi non deterministici : se contiene almeno un’istruzione che ammette più passi successivi che hanno la possibilità di essere scelti: l'algoritmo potrà produrre risultati diversi a partire da uno stesso insieme di dati compiendo percorsi diversi. ⤷ Tra gli algoritmi non deterministici troviamo quelli probabilistici nei quali almeno un’istruzione ammette più passi successivi, ognuno dei quali ha una certa probabilità di essere scelto. ➔ Un programma = descrizione di un algoritmo in una forma comprensibile (ed eseguibile) dall’elaborato (esecutore)
Per rappresentare (descrivere) un algoritmo non è possibile utilizzare linguaggi naturali in quanto questo può presentare ambiguità e causare false interpretazioni. È necessario utilizzare linguaggi sintetici e standardizzati in modo da consentire all'esecutore una interpretazione univoca dei passi da svolgere. Due modi per descrivere un algoritmo :_ Diagrammi a blocchi (flowchart) _ Pseudo-codice Diagrammi a blocchi o flowchart
⤷ strumenti per la comunicazione uomo-macchina. ➔ Consentono di esprimere e rappresentare i programmi comprensibili ed eseguibili da una macchina. ➔ Sono simili ai linguaggi naturali ma senza ambiguità. Come linguaggi naturali sono caratterizzati da: _ Lessico → insieme di simboli (alfabeto) e di parole (Dizionario) che possono essere usati per formare le frasi. _ Sintassi → Insieme di regole grammaticali, ovvero formali per la composizione di programmi nel linguaggio scelto _ Semantica → Significato delle frasi da attribuire alle frasi costruite nel linguaggio scelto Si dividono in: _ linguaggio macchina, _ linguaggio di basso livello, _ linguaggi di alto livello Linguaggio macchina È il linguaggio compreso dalla CPU. Essendo composto da istruzioni formate da sequenze di bit è difficile da usare. Un programma scritto in linguaggio macchina per un'architettura, non funziona in un'altra architettura Vantaggi = velocità di esecuzione Svantaggi = poco comprensibile per l’uomo Linguaggio di basso livello (assembly) Per evitare di scrivere i programmi direttamente in linguaggio macchina sono stati introdotti i linguaggi di basso livello (assemblee) che usano un linguaggio elementare per rappresentare istruzioni in linguaggio macchina. Un compilatore speciale noto come assemblatore viene utilizzato per convertire le istruzioni in linguaggio assemblee in codice macchina o codice oggetto. Linguaggio di alto livello Linguaggi più vicini ai linguaggi naturali. Richiedono un compilatore o un interprete in grado di tradurre le istruzioni in linguaggio macchina. Esempi. Fortran, C, Java; PHP… Il computer: un sistema in continua evoluzione
Pascal (1623-1662) ⤷ Matematico → inventò la prima macchina addizionatrice: La Pascalina ⤷ risolve somma e sottrazione Gottfried Wilhelm von leibniz (1646-1716) → inventò la calcolatrice meccanica, introduce il sistema binario ⤷ risolve moltiplicazione e divisione Joseph-Marie Jacquard (1752-1834) → inventore del telaio a schede Charles Babbage (1792-1817) → inventò la macchina analitica ⤷ macchina calcolatrice programmabile George Boole (1815-1864) → definì l’algebra di Boole John von Neumann (1903-1957) → primo computer programmabile con memoria (EDVAC) Alan Mathison Turing (1912-1954) → macchina di Turing
Prima generazione = Valvole termoioniche Tre avvenimenti principali di questo periodo: ● Nel 1944 , viene realizzato da Haward H. Aiken dell’Università statunitense di Harvard, in collaborazione con la IBM , il primo calcolatore aritmetico universale. ● Nel 1946 , presso la Pennsylvania University, viene ideato e realizzato da John Erckert e John Mauckly, l’ENIAC (Electronic Numerical Integrator And Computor), che può essere considerato il primo calcolatore elettronico della prima generazione. ● Nel 1952 nasce L’EDVAC ( Electronic Discrete Variable Automatic Computer ), scienziato ungherese John von Neumann , in grado di registrare in memoria non solo i dati da elaborare, ma anche le istruzioni da eseguire. Seconda generazione: il transistor Il transistor fu inventato nel 1948 dai Bell Labs e frutta ai suoi inventori del premio Nobel per la fisica. Nel 1957 nasce "modello 2002", prodotto dalla Siemens. Nel 1960 fu immesso nel mercato il PDP-1: il primo computer nel quale era possibile giocare. Terza generazione: il circuito integrato ❖ Inventato nel 1958 da Robert Noise, ha permesso di inserire dozzine di transistor su una singola piastrina di silicio e ↓ favorendo la costruzione di calcolatori + piccoli, + veloci e meno costosi. ❖ IBM 360 (1964): primo grande elaboratore basato sui circuiti integrati. ❖ Multiprogrammazione = innovazione molto importante introdotto con questo computer, possibilità di avere più programmi in memoria ❖ Nel 1965 due tecnici della AT&T cominciano a lavorare sulle basi di quello che in seguito sarà il sistema operativo UNIX Quarta generazione: il microprocessore ➢ Nel 1970 l'italiano Federico fa Jean viene assunto da Intel e progetta il primo microprocessore della storia (Inter 4004, 1971), progenitore di 8080 e della famiglia X86. ➢ Nel 1975 inizia anche l'avventura di quella che sarà in seguito la più grande software-house del mondo, la Microsoft. Quinta generazione: l’intelligenza artificiale e computer “invisibili”
⤷ A sei anni intratteneva gli ospiti di famiglia con la sua prodigiosa memoria, ripetendo all'istante intere pagine di elenco telefonico che era state mostrate solo per qualche istante o eseguendo rapidamente amente divisioni con due numeri da otto cifre. ↓ Si divertiva conversando in greco antico, arrivando a parte padroneggiare, intorno ai 10 anni, sei lingue Muore a Washington l'8 febbraio 1957. _ Con l'articolo, scritto insieme all'economista Oscar Marghe Stein, diede il via alla teoria dei giochi. _ Ideò modelli matematici per descrivere la meteorologia , che ancora oggi vengono utilizzati. _ Con lavoro molto strettamente con il Pentagono USA per la costruzione di bombe atomiche. _ Partecipò al progetto Manhattan per la costruzione della bomba atomica. _ Considerato come uno dei più grandi matematici della storia moderna. _ Ideò un modello dei moderni calcolatori.
L'idea alla base del modello di von Neumann nasce nel corso di un progetto di ricerca gestito dal DARPA Cosa c'è all'interno di un calcolatore? Un calcolatore è costituito da: _ Memoria = contiene sia programmi che dati _ Processore Ciascuna componente del modello: _ Ha una propria funzionalità. _ Interagisce con gli altri componenti e con l’esterno. _ È dotato di una struttura interna Le funzionalità principali di questo modello sono: _ Scambio di dati con l'esterno _ Memorizzazione _ Elaborazione _ Controllo Componenti fondamentali del modello di von Neumann: CPU, Memoria centrale, memoria secondaria, unità I/O e BUS
➔ CPU (central processing unit) ⇨ Svolge le elaborazioni e il trasferimento dei dati = cioè esegue i programmi. E’ divisa in tre parti: _ Unità di controllo (CU) governo e controllo alla CPU. _ Unità aritmetico-logica (ALU) = esegui i calcoli aritmetici e logici elementari. _ Registri = sono a celle di memoria veloce, utili per memorizzare i dati e istruzioni. ➔ CU ( Control Unit): il ciclo fetch-decode-execute⇨ Coordina tutte le azioni necessarie ad eseguire delle istruzioni. Cosa fa la CU:
_ ROM (Read only memory) = E non volatile ed è usata per memorizzare i programmi di sistema _ Chace = _ memoria da parte del processore _ + veloce Memoria seconda (o di massa) _ Memorizza grandi quantità di informazioni _ Accesso meno rapido rispetto alla memoria centrale _ Dischi, nastri, CD riscrivibili Dispositivi di ingresso-uscita (periferiche) _ Sono usate per far comunicare il calcolatore con l’esterno _ Tastiera, mouse, video, stampante Dispositivi input → permettono all’elaboratore di ricevere dati dall’esterno: tastiera, mouse, microfono… Dispositivi di output → permettono all’elaboratore di comunicare dati dall’esterno: stampante, casse, monitor Bus → Il canale fisico che permette in comunicazione le varie componenti del calcolatore Bus dei Dati ( Data Bus ) - adibito al trasferimento dei dati tra un'unità che trasmette e un'unità che riceve Bus degli Indirizzi ( Address Bus ) - è il bus sul quale viene indicato l'indirizzo dell'unità interessata all'operazione, esempio la cella di memoria Bus dei segnali di controllo ( Control Bus ) - è il bus sul quale sono inviati i comandi che la CPU impartisce alle altre componenti del sistema Hardwere: CPU e BUS Cos'è l'hardware di un personal computer?
● Una rete logica costituito da un insieme di circuiti elettronici elementari che consentono di eseguire le operazioni aritmetiche o logiche. ● Uno più registri accumulatori che vengono utilizzati per immagazzinare gli operandi dalle operazioni da eseguire. ● Un registro di stato che serve per memorizzare particolari informazioni relative alle condizioni verificate nel corso dell'ultima operazione eseguita. ❖ Unità di controllo (CU) → controlla e gestisce tutte le altre unità del calcolatore durante l’esecuzione di un programma, è formata da : _ Un decodificatore = in grado di interpretare il codice dell’istruzione _ Una rete di controllo = che genera una successione di comandi relativi all’istruzione considerata, in base all’uscita del decodificatore. ❖ Ciclo di esecuzione all'interno della CPU e nell’unità di controllo: _ Per eseguire un'istruzione, scritta in linguaggio macchina, la CPU esegue un insieme di operazioni. _ Elaborazione delle istruzioni di un programma consiste nell'esecuzione, da parte dell'unità di controllo, di una precisa successione di passi elementari detto ciclo di esecuzione delle istruzioni. I passi che la CU esegue sono:
⤷ Canale fisico che mette in comunicazione le varie componenti del calcolatore In ogni istante di tempo (intervallo di clock) il bus è dedicato a collegare due unità: una trasmette, l'altra riceve. Il bus trasporta dati,indirizzi e comandi. Componenti del bus (sottogruppi di line): _ Bus dati (data bus) _ Bus indirizzi (address bus) _ Bus di controllo (contro il bus) Bus dati → serve per trasmettere dati tra: _ Memoria centrale e registro dati della CPU, ↓ _ Periferiche e CPU (o memoria centrale). È bidirezionale ovvero consente il passaggio dati in più direzioni contemporaneamente. Bus indirizzi → _ Serve per trasmettere il contenuto del registro indirizzi alla memoria (o una periferica).
_ Si seleziona una cella per successive operazioni di lettura scrittura. _ E’ unidirezionale Bus di controllo → Serve per inviare comandi: _ verso la memoria (esempio: lettura o scrittura) _ verso una periferica (esempio: stampa) ➔ Problema di comunicazione su bus
sono presenti buffer che consentono di memorizzare temporaneamente l’informazione così da non essere limitati dal dispositivo più lento. L’hardware: la memoria centrale
● SRAM = non necessita di refresh, informazione memorizzata e conservata finché non viene modificata attraverso un'operazione di scrittura.
Le memorie di massa sono supporti che consentono di memorizzare i dati in modo permanente. "Di massa” → perché possono contenere quantità rilevanti di dati rispetto alla memoria centrale. Queste memorie sono caratterizzate da: Non volatilità I dati memorizzati non vengono persi allo spegnimento del calcolatore (perché memorizzati in forma magnetica ottica e non elettronica). Grande capacità di memorizzazione una unità di memoria secondaria a capacità maggiore (anche di diversi ordini di grandezza) rispetto alla memoria centrale. Bassi costi Il costo di una memoria secondaria è minore rispetto alla memoria centrale. La tecnologia utilizzata per la registrazione dei dati può essere: _ Tipo magnetico (hard disk, floppy, disk) _ Tipo ottico (CD, DVD) _ Stato solido (hard disk)
I sistemi magnetici sfruttano il fenomeno della polarità ⤷ due magneti si attraggono o respingono a seconda che i voli siano di segno opposto o uguale. Due degli utilizzi più diffusi di questa tecnologia sono gli hard disk o floppy disk ➔ Hard disk _ Introdotto da IBM nel 1956. _ E’ costituito da uno o più dischi (di vetro-ceramica o di alluminio) ↓ rivestiti da un sottile strato di materiale magnetico. Azioni principali: Scrittura = la testina emette impulsi elettrici che polarizzano in uno dei due modi possibili le particelle magnetiche presenti sul supporto. Lettura = le particelle magnetiche inducono sulla testina una corrente elettrica che è diversa a seconda della polarità della cella in lettura. I dati sono generalmente memorizzati su disco seguendo uno schema logico ma indefinito chiamato CHS (cilindro, testina, settore). A → Traccia B → Settore geometrico C → Traccia del settore D → Cluster
DVD → 1995 = Per memorizzare i film in formato digitale ⤷ Successivamente utilizzato per registrare dati e programmi per computer Tre principali campi dell'applicazione per il DVD: ● DVD-video : destinato a contenere il film, in sostituzione della videocassetta. ● DVD-audio : sostituito dal CD audio grazie a una maggiore fedeltà e capacità. ● DVD-ROM : destinato a sostituire il CD-ROM BLU-RAY-DISC → 2002 = Colore blu del laser utilizzato per leggerlo ⤷ Memorizzare i film in formato digitale ad alta definizione (HDTV)
⤷ Dispositivi di memorizzazione, grande sviluppo ultimi anni Utilizzano dispositivi con circuiti integrati per memorizzare i dati invece che supporti magnetici o ottici movimento. Dispositivo con memoria non volatile.molto più veloce di un’unità HDD Flash memory Dispositivi in grado di archiviare grande quantità di informazioni e file in un piccolo spazio. I tipi di flash memory + utilizzati sono: NOR : _ Più lento quando si desidera salvare o eliminare le informazioni memorizzate in esso. _ Consente la memorizzazione ad accesso casuale NAND: Più veloce del NOR, ma non utilizza una memoria ad accesso casuale.
↓ ⤷ significa “nuvola” nato per fornire una grande quantità di spazio Salvare i dati nel cloud → salvare i dati in server che sono sempre accessibili tramite connessione Internet, da qualsiasi dispositivo in qualsiasi momento.
L’hardware: le periferiche di Input Periferiche —> sono dispositivi preposti all'immissione dei dati del computer per la loro elaborazione e alla successiva emissione dei risultati. A seconda della loro funzione possiamo distinguere: ➢ Periferiche di input , utilizzate per l'inserimento dei dati. ➢ Periferiche di output , utilizzate per estrarre i dati elaborati.
L'immissione dei dati avviene principalmente tramite la digitazione sui dati della tastiera, oppure con il clic del mouse, un touchpad, un microfono per i comandi vocali o la webcam. Qwerty = schema più comune per tastiere alfanumeriche, utilizzato nella maggior parte delle tastiere per computer in ↓ macchina e per scrivere. Fu brevettato nel 1864 da Christopher Scholes e venduto alla Remington and Sons ⤷ 1873, cominciò a comparire sulle macchine da scrivere Il nome deriva dalla sequenza della lettera dei primi sei tasti della riga superiore della tastiera. E’ utilizzato anche nella maggior parte delle tastiere alfanumeriche italiane. E’ stato pensato: ➢ Le coppie di lettere maggiormente utilizzate sono separate, nel tentativo di evitare che il martelletto delle macchine per scrivere esistesse cessino e incontrassero, costringendo chi scriveva a sbloccarli manualmente. ➢ Tenta di dividere i tassi tra le tue mani, in modo tale che mentre una mano si posiziona, l'altra mano colpisca il tasto. ➢ Ha accelerato la scrittura rispetto ai metodi precedentemente usati. ➢ La tastiera italiana non è riuscita ad adattarsi pienamente la lingua italiana. ➢ Nelle tastiere con layout italiano mancano le vocali maiuscole accentate, ma non è neanche definito un metodo standard per inserirle. ➢ Per inserire Accentate in Windows è necessario digitare sul tastierino numerico il corrispondent e codice decimale nella codifica ISO-8859-1 mantenendo premuto alt. Tastiera → suddivisa in 3 zone: