


























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
Appunti per lo svolgimento dell’esame di informatica Anno 2023/2024 Appunti schematizzati accuratamente e dettagliati , con eventuali sottolineature per evidenziare i concetti su cui maggiormente focalizzare l’attenzione.
Tipologia: Appunti
1 / 34
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!



























È una macchina che riceve dati in ingresso, li memorizza, li elabora sulla base di una lista di istruzioni, calcola i risultati, li memorizza e li fornisce in uscita. È in grado di:
- Compiere operazioni matematiche ad altissima velocità - Registrare enormi quantità di informazioni in spazi ridottissimi - Trasmettere informazioni a grandi distanze e con enorme velocità - Governare dispositivi meccanici che compiono operazioni di precisione (Robot) - Eseguire programmi che svolgono compiti molteplici
Blaise Pascal secolo XVII –-> La pascalina, macchina per compiere addizioni e sottrazioni. Leibniz perfezionò la pascalina, costruendo un apparecchio in grado di eseguire anche le moltiplicazioni. La Pascalina, come la macchina di Leibniz erano calcolatrici automatiche, ma meccaniche, e quindi non elettroniche, non si potevano definire macchine programmabili.
La memorizzazione interna del programma caratterizzò la macchina di von Neumann, dove figurava l'architettura adottata nei moderni calcolatori; questa venne definita negli anni '40 da un gruppo di lavoro in cui partecipava il matematico statunitense (di origine ungherese) John von Neumann. La macchina di von Neumann è strutturata da:
Sono leggi empiriche che descrivono lo sviluppo della microelettronica, a partire dall’inizio degli anni Settanta, con una progressione sostanzialmente esponenziale, perciò straordinaria.
Fu elaborata nel 1964 da Gordon Moore, il co-fondatore di Intel, oggi colosso nel mercato dei microprocessori. Secondo questa legge —> la potenza dei calcolatori raddoppia circa ogni 2 anni. Tale legge delinea una crescita rapidissima, sempre più accelerata che è stata finora confermata —> i calcolatori di oggi sono 1.000 volte più potenti di quelli disponibili fino a 20 anni fa e circa 1.000.000 di volte più potenti di quelli disponibili 40 anni fa.
L’altra faccia dello sviluppo tecnologico nel settore dei microprocessori è la seconda legge di Moore, secondo la quale —> il costo dello sviluppo di un circuito integrato raddoppia ad ogni nuova generazione di microprocessori. Questo spiega perché pochissime imprese sono in grado di progettare nuovi microprocessori per il microcalcolatore —> infatti non più di 3-4 imprese dominano il mercato dei microprocessori, una di esse (la Intel) ne copre circa il 90%.
La possibilità di realizzare architetture virtuali ha determinato, negli ultimi anni, la rinnovata tendenza verso la centralizzazione. Mentre gli anni ‘90 avevano visto lo snellimento delle apparecchiature hardware sostituendo i macro-calcolatori con i micro- calcolatori, i primi anni 2000 sono caratterizzati dal ritorno dei macro-calcolatori nei centri di calcolo più avanzati.
La fornitura di servizi cloud-computing è concentrata in poche imprese, che però offrono un’ampia gamma di funzioni ai propri clienti, grazie a grandi infrastrutture di calcolo distribuite. Il concetto di nuvola (cloud) viene quindi ad assumere anche un significato più specifico, che mantiene l’idea dell’irrilevanza dello spazio fisico, ma denota i servizi informatici offerti da un particolare soggetto e l’infrastruttura con la quale quei servizi vengono resi.
Le caratteristiche principali del moderno calcolatore sono 4:
Un computer (o calcolatore elettronico) è un dispositivo in grado di eseguire automaticamente sequenze di operazioni aritmetiche o logiche. La capacità dei computer di eseguire set di operazioni generalizzate, chiamate programmi, consente loro di svolgere un'ampia gamma di attività. La maggior parte dei computer moderni basa il suo funzionamento sull' architettura di von Neumann , descritta nel 1945 da von Neumann, sulla scorta di quanto teorizzato dalla macchina di Turing. Un computer basato su questa architettura è detto anche modello di von Neumann o computer a programma memorizzato.
I primi computer erano in grado di svolgere una sola funzione: erano costruiti fisicamente per quello, e il “programma” che doveva svolgerla era integrato direttamente nella costruzione del sistema. Il risultato era che ogni computer aveva una destinazione specifica: se era stato costruito per fare somme e sottrazioni non poteva essere utilizzato per gestire i dati di una rubrica o scrivere dei testi. I computer attuali, invece, vanno oltre questo limite e offrono una versatilità applicativa che consente di utilizzarli ormai in ogni aspetto della nostra vita, dal lavoro al divertimento, e questo grazie al fatto che l'architettura è suddivisa in due parti –-> l' hardware e il software, che interagiscono fra di loro. Quindi tutti i componenti del computer rientrano in una di queste due categorie:
Esistono numerosi tipi di porte, alcuni delle quali sono state rimpiazzate da altre nel corso degli anni; tuttavia se analizziamo le porte presenti sul case di un PC, le principali sono:
La tastiera è uno dei dispositivi di input primari di un computer ed è destinata all'inserimento manuale di dati, numerici o alfanumerici, nella memoria del computer e al controllo del computer stesso. È simile a quella delle macchine per scrivere elettriche, ma con alcuni tasti aggiuntivi. La tastiera può essere incorporata nell'unità centrale del computer, come nei computer portatili, o essere una periferica esterna come nei comuni desktop o workstation. Può anche essere virtuale, apparendo direttamente sullo schermo del dispositivo, soluzione adottata prevalentemente su dispositivi touchscreen come smartphone e tablet.
Il mouse è un dispositivo di puntamento che rileva un movimento relativo a una superficie piana, cioè lo spostamento di un puntatore grafico sullo schermo per controllare e gestire l'interfaccia utente grafica. Il mouse venne ideato da Douglas Engelbart del Stanford Research Institute che lo brevettò nel 1967. In questa famiglia rientrano:
In un computer è la memoria coinvolta nelle operazioni di esecuzione delle istruzioni di programma. È indicata come memoria principale o memoria primaria per differenziarla dalla memoria secondaria o memoria di massa. Questa memoria viene realizzata con tecnologie a semiconduttore nella forma di circuiti integrati a base di silicio. Sono disponibili vari tipi di memorie primarie, a seconda della funzione svolta e delle loro caratteristiche peculiari:
La cosiddetta memoria di massa costituisce l'archivio permanente dei dati leggibili e scrivibili dal computer. Di fatto, la caratteristica principale della memoria di massa è la non volatilità, ovvero la possibilità di memorizzare in modo permanente i dati. Questi vengono memorizzati nei dispositivi di memoria di massa sotto forma di file, e possono essere file di programma (che possono essere eseguiti nel computer) o file di dati (che contengono informazioni come testi, immagini ecc.).
I supporti per le memorie di massa comprendono numerose tipologie e tecnologie che negli ultimi decenni hanno avuto una notevole evoluzione per garantire l'archiviazione di quantità sempre maggiori di dati. I principali sono:
La stampa 3D è stata inventata da Chuck Hull nel 1984, ma è negli ultimi anni che ha iniziato ad affermarsi su larga scala, soprattutto in ambito industriale. Le stampanti 3D partono dal modello digitale di un oggetto e lo riproducono strato dopo strato mediante tecniche additive utilizzando materiali di vario tipo a seconda delle tecnologie utilizzate. I metodi più diffusi nella realizzazione di stampe 3D sono:
Lo scanner è stato introdotto nel 1957 da un team guidato da Russell Kirsch presso l'Ufficio Nazionale degli Stati Uniti d'America (ora Istituto Nazionale di Standard e Tecnologie). Lo scanner svolge una funzione esattamente opposta a quella della stampante nel senso che consente di acquisire in modalità ottica documenti stampati, fotografie o diapositive, di interpretarle come un insieme di pixel e ricostruirne la copia fotografica sotto forma di immagine digitale.
Questa immagine può quindi essere salvata come un file nel computer e successivamente rielaborata con programmi di fotoritocco o, nel caso di una scansione di un testo, convertita in un documento di testo tramite un programma di riconoscimento ottico dei caratteri.
La categoria delle periferiche comprende anche altri componenti che spesso sono ormai parte integrante della scheda madre di computer e altri dispositivi simili. Le schede di espansione sono schede elettroniche non comprese nella dotazione standard di un computer e che, una volta installate, ne espandono le funzionalità. Anche se i progressi degli ultimi decenni sulla miniaturizzazione dei componenti hanno consentito di integrare molte di queste periferiche direttamente nella scheda madre, esiste sempre la possibilità, soprattutto nei computer desktop che hanno più spazio a disposizione, di poter aggiungere o potenziare le funzionalità del sistema.
I computer possono essere classificati in diversi modi. La classificazione più pratica è quella per dimensione e capacità di calcolo:
Correzioni da apportare al primo algoritmo Input —> Un elenco ordinato di abbonati al telefono; il nome dell’abbonato da cercare Output —> Il numero di telefono dell’abbonato cercato Algoritmo —> Si procederà che:
dell’elenco, si ripeta l’operazione che:
Algoritmo —> Si procederà che:
dell’elenco, si ripeta l’operazione che:
numero di telefono accanto all’ultimo nome letto;
- Se l’ultimo nome letto è diverso dal nome da cercare, si produca in output la
scritta “il nome cercato non compare nell’elenco”
eqquenziale. sione ma di flusso)
Ricerca binaria (versione ricorsiva) —> si esegue l’algoritmo nuovamente all’interno dell’algoritmo stesso Input: Un nome Y dell’abbonato cercato; una lista ordinata X di nomi di abbonati, ciascuno affiancato dal relativo numero di telefono Output: Il numero di telefono dell’abbonato cercato Algoritmo: Si procederà che:
Input: Un numero da esaminare; Output: L’indicazione che si tratta di un numero primo o l’indicazione del più piccolo divisore intero del numero in esame; Algoritmo: Si procederà che:
Agli albori dell'informatica, la scelta dei programmatori era molto limitata. Chi volesse governare un calcolatore doveva utilizzare direttamente il linguaggio macchina —> Di conseguenza, i programmi dovevano consistere delle sole istruzioni atomiche proprie al calcolatore impiegato (cioè quelli a disposizione dell'hardware di quel calcolatore). Queste istruzioni prescrivono semplici operazioni concernenti numeri binari per poter trasferire (copiare) nella unità centrale un numero registrato in una certa cella di memoria, per poi poter sommare due numeri, confrontarli, ecc.
JavaScript è un linguaggio di programmazione che gli sviluppatori utilizzano per realizzare pagine Web interattive. Le funzioni di JavaScript possono migliorare l'esperienza dell’utente nel sito Web: dall'aggiornamento dei feed dei social media fino alla visualizzazione di animazioni e mappe interattive. JavaScript è generalmente classificato come un linguaggio di scripting o un linguaggio interpretato. Il codice JavaScript viene interpretato, cioè tradotto, direttamente nel codice del linguaggio macchina sottostante da un motore JavaScript.
INTERPRETAZIONE DEL SOFTWARE
Con l’interpretazione, il programma sorgente è tradotto in un linguaggio macchina, istruzione per istruzione, con immediata, e contestuale, esecuzione di ogni istruzione. A differenza della compilazione, l’interpretazione non da luogo ad una versione permanente in linguaggio macchina —> per rieseguire il software bisogna interpretarlo nuovamente. In linea di massima, qualunque linguaggio di programmazione potrebbe essere tanto interpretato quanto compilato; tuttavia le due tecniche comportano vantaggi e svantaggi.
programma compilato rispetto al programma interpretato.
modifica del programma —> è possibile modificare il programma interpretato ed eseguirlo immediatamente, così da verificare l'effetto delle modifiche apportate, mentre la modifica del programma compilato richiede la correzione del programma sorgente e una nuova compilazione. pt t La compilazione del softwareLa compilazione del software
Sotto il profilo della funzione, si possono distinguere tipologie di software come:
Secondo il modello tradizionale, il calcolatore è un "utile idiota", il fedele esecutore di un algoritmo concepito dall'uomo, ed espresso in un programma informatico. Questo riceve in input il programma che esprime l'algoritmo, accompagnato dai relativi dati, esegue l'elaborazione, consegna i risultati, e resta quindi in attesa di un nuovo input. Il calcolatore si limita quindi a elaborare i dati secondo il programma (dopo aver tradotto dati e programmi nel suo linguaggio macchina), e a consegnare il risultato dell'elaborazione. Oggi chi si accinge a sviluppare un programma informatico non è più quello che, provvede da solo a tutte le proprie necessità, costruendo tutto quello di cui ha bisogno. Ormai il mondo dell'informatica è un mondo popolato, dove coesistono numerosi prodotti software in grado di rispondere a gran parte delle esigenze, e dove, molti problemi si possono risolvere solo grazie alla cooperazione e coordinazione dei sistemi informatici esistenti, usando strumenti già disponibili. Lo sviluppo di un sistema software consiste nella creazione di un ambiente nel quale i diversi oggetti (possibilmente aggregati in oggetti di maggior dimensione) possano interagire, e poi nella definizione di ciascun oggetto, specificandone l'interfaccia verso l'esterno (i messaggi che emette e accetta) e i programmi e dati che contiene. Se pensiamo alla creazione di un videogioco, il programmatore, oltre a creare il paesaggio del videogioco, ha specificato le diverse classi di personaggi che vi partecipano, ciascuna delle quali è caratterizzata da regole di comportamento in funzione dei messaggi che può ricevere da altri oggetti (es. i colpi ricevuti, i premi vinti), e ognuna è dotata di certi attributi (es. il numero di colpi a disposizione, o il livello di potenza).
La formazione di Internet si è compiuta nell'arco di pochissimi anni. Internet ha infatti determinato l'accelerazione delle dinamiche economiche e sociali, ma ha innanzitutto applicato questa accelerazione a sè stessa: ogni tecnologia, conoscenza o esperienza inerente alla rete si è immediatamente diffusa attraverso la rete, diventando subito la base per nuove conoscenze ed esperienze, anche queste suscettibili di immediata diffusione, e quindi di fornire la premessa per ulteriori progressi. ARPANET, fu una rete di computer studiata e realizzata nel 1969 dalla DARPA, l'agenzia del Dipartimento della Difesa degli Stati Uniti, responsabile dello sviluppo di nuove tecnologie ad uso militare, di cui anche gli universitari potevano fare uso. Da questa rete, creata per collegare due università americane e utilizzata solo in seguito a scopi militari, si originò a partire dal 1983 l'attuale rete Internet. ARPANet adottava la tecnica della commutazione a pacchetti, un nuovo modo di utilizzare le linee di comunicazione, che rappresentava un fondamentale progresso rispetto alle tecnologie adottate in precedenza (es. collegamenti telefonici o via radio). L'ordinaria rete telefonica utilizzava invece la tecnica della commutazione di linea —> una linea telefonica rimaneva a disposizione della sola comunicazione tra i due telefoni collegati, per tutta la durata della chiamata. In questo modo le capacità della linea erano sfruttate poco, per i soli dati inviati nel corso della chiamata (le parole pronunciate dalle due persone, o i dati inviati tramite un modem sulla linea telefonica).
ARPANet adottava la tecnologia della commutazione a pacchetti, ma era ancora una singola rete. Lo sviluppo di Internet richiedeva che si sviluppasse un modello di "architettura di rete aperta", cioè di una meta-architettura, che consentisse il collegamento tra reti diverse, ciascuna delle quali potesse rimanere autonoma nelle proprie scelte organizzative e tecnologiche. Questa indifferenza rispetto ai contenuti trasmessi costituisce la neutralità della rete (network neutrality), che rappresenta innanzitutto un'importante garanzia di innovazione decentrata: la rete può essere usata per qualsiasi nuova soluzione tecnologica o nuovo modello economico, e la sua organizzazione non impone vincoli agli utenti. La neutralità della rete ha inoltre implicazioni sociali e politiche: comporta l'assenza di discriminazioni rispetto al contenuto del messaggio trasmesso e rispetto alla natura del mittente.