Estratto del documento

Appunti informatica per moda, arte, design

“Il computer non è una macchina intelligente che aiuta le persone stupide, anzi, è una macchina stupida che funziona solo nelle mani delle persone intelligenti”, Umberto Eco.

Il computer inizialmente era una scrivania dell’ufficio, poi è diventata una scrivania dell’ufficio di casa, poi è diventato un oggetto che si poteva portare in giro e spostare, poi è diventato il tablet e poi lo smartphone, cioè un potentissimo computer portatile.

Fondamenti di informatica e hardware

Parte hardware

Informatica = il trattamento automatico dell’informazione. La parola deriva dal francese e sta per “informazione automatica”, quindi l’idea di progettare e costruire delle macchine per portare in modo automatico l’informazione.

Il computer è la macchina di calcolo e ogni operazione che si fa con la propria periferica è un’azione di calcolo. La definizione francese, puntando sulla parola “informazione”, punta sul fatto che ha a che fare con un’informazione: all’informazione noi diamo una forma, e la forma che diamo dipende sia dalla macchina sia dal programmatore.

Benefici rispetto all’elaborazione umana

  • Si riducono i tempi di elaborazione: comporre una pagina di quotidiano con i caratteri mobili, ad esempio, richiedeva moltissimo tempo.
  • Si aumenta l’affidabilità.
  • Si evitano elaborazioni noiose: se ci sono elaborazioni di routine si può dare l’ordine alla macchina di farle.
  • Si possono diffondere delle elaborazioni anche difficili: sharing tra macchine diverse, si può anche istruire un’altra macchina (app/software che si esporta da una macchina a un’altra e in grado di svolgere le stesse operazioni).

Dato, informazione e conoscenza

Il dato non è l’informazione, mentre l’informazione si può definire come un insieme di dati con una serie di caratteristiche logico-sintattiche che li tengono insieme.

  • Dato = insieme di simboli che rappresenta una proprietà di un oggetto, una sorta di descrizione sintetica di alcune proprietà. Noi potremmo definire “dato” la parola “bottiglia”, che si potrebbe inserire anche nel linguaggio macchina. In informatica, però, la parola “bottiglia” sarebbe un insieme di simboli che ne descrive la proprietà.
  • Informazione = dato messo in relazione con la proprietà cui si riferisce.
  • Conoscenza = regole che consentono di trarre vantaggio dall’informazione, di risolvere problemi. La conoscenza non è solo un insieme di informazioni: il dizionario è un insieme di informazioni, ma non è conoscenza. La conoscenza è la capacità di amministrare questo patrimonio di informazioni che permettano di costruire dei percorsi e dei pensieri che abbiano un senso compiuto.

Quando la risoluzione dei problemi è basata sull’informazione, parliamo di elaborazione (o trattamento) di informazione per risolvere problemi nel mondo reale. Trattamento dei dati significa trovare dei percorsi tra le informazioni che ci permettano di risolvere dei problemi.

La codifica e la rappresentazione dell’informazione

Codificare l’informazione significa renderla presente alla macchina, in modo che la macchina la possa capire. A un certo punto dell’evoluzione dei sistemi di calcolo elettronico, quindi, è venuta l’idea di codificare le informazioni con un alfabeto binario: 2 soli simboli, 0 e 1. Quando un’informazione è digitale, passa attraverso un circuito ed è trasmessa dall’elettricità da pacchetti di elettroni: più elettroni generano un segnale che è facile trasmettere come acceso (1) e spento (0) piuttosto che lavorare con il sistema decimale o alfabetico.

0 e 1 sono stati definiti “bit” = binary digit. È impiegato nei calcolatori mediante dispositivi bistabili. Un byte è una sequenza di 8 bit (unità di misura della capacità di memoria).

  • 10 byte = 1.024 byte ≈ 1.000 byte
  • 1 KB (kilobyte) = 210 byte ≈ 1.000.000 byte
  • 1 MB (megabyte) = 220 byte ≈ 1.000.000.000 byte
  • 1 GB (gigabyte) = 230 byte ≈ 1.000.000.000 byte
  • 1 TB (terabyte) = 240 byte

Elaborazione dell’informazione

Elaborazione/Trattamento dell’informazione:

  • Creazione: l’informazione viene creata.
  • Modifica: l’informazione può essere modificata (eventualmente anche eliminata).
  • Confronto: l’informazione può essere confrontata.
  • Conservazione: l’informazione può essere conservata (cioè comunicata a distanza nel tempo).
  • Trasmissione: l’informazione può essere trasmessa (cioè comunicata a distanza nello spazio).

Schema di un’elaborazione:

  • L’informazione deve essere codificata, quindi abbiamo bisogno che i simboli vengano raccolti su un supporto fisico che deve essere tale per cui si possa effettuare una trasformazione fisica (ovvero una generazione di nuove sequenze di simboli, come una traduzione, ad esempio da numeri ad alfabeto).
  • Dopo la trasformazione, le nuove sequenze di simboli devono essere decodificate.
  • Input dell’informazione: definiamo input un’informazione in ingresso all’elaborazione.
  • Output dell’informazione: definiamo output l’informazione che viene prodotta dall’elaborazione/dal computer.
  • Algoritmo: le istruzioni per realizzare la trasformazione fisica si chiamano algoritmo. Tra un input e un output, quindi, deve esserci un algoritmo; l’algoritmo dà delle istruzioni per realizzare la trasformazione fisica, ma non è il software. Il software si basa sugli algoritmi.
  • Linguaggi di programmazione: sono dei linguaggi formali che descrivono gli algoritmi a un calcolatore.
  • Programma: algoritmo reso operativo, quindi descritto in un linguaggio di programmazione in modo che io abbia costruito un programma o un software (quelle che noi oggi chiamiamo app). Il programma è ciò che supporta l’algoritmo.
  • Programmatore: persona che costruisce il programma (è chi fa la ricetta). Lo stesso programmatore può anche inserire dei dati.

Storia dei sistemi di elaborazione

  • Conto su dita delle mani: elaborazione digitale in senso proprio del digitare
  • Abaco (2000 a.C.)
  • Regolo calcolatore (William Oughtred, XVII secolo): per azioni più complesse si usa il regolo
  • Pascalina (Pascal, XVII secolo): macchina di calcolo
  • Stepped Reckoner (Leibniz, XVII secolo)
  • Analytical Engine (Babbage, XIX secolo)
  • Calcolatori basati su relè elettromagnetici (Konrad Zuse, anni ‘30)
  • Colossus (Tommy Flowers, anni ‘40): primo computer elettronico programmabile mai creato, utilizzato durante la Seconda Guerra Mondiale
  • ENIAC - EDVAC (Mauchly ed Eckert, anni ‘40)
  • Calcolatori basati su transistor (anni ‘50)
  • Calcolatori basati su circuiti integrati (microchip, microprocessori), anni ‘60: erano appannaggio di pochissime realtà e istituti di ricerca che potevano permetterselo
  • Minicomputer
  • Personal computer (dagli anni ‘80 - ‘90)
  • Smartphone, etc.

L’architettura di John von Neumann

Per descrivere un calcolatore, è bene rifarsi allo schema generale che è l’architettura di John von Neumann:

  • Codifica binaria per dati e istruzioni (perché è più semplice di quella decimale).
  • Dispositivo di memorizzazione (memoria) che serve per codificare dati e istruzioni, costituita da celle identificate da un indirizzo numerico: c’è un indirizzo numerico che il computer conosce che permette di andare in varie partizioni della memoria dove si codificano i dati e le istruzioni.
  • Dispositivo di elaborazione (processore, Central Processing Unit, CPU) per eseguire le istruzioni, operando trasformazioni sui dati: devono essere inserite delle istruzioni, vengono trasformate ed eseguite tramite la CPU, il vero operatore del computer.
  • Interfaccia: gestisce l’interazione con l’ambiente esterno mediante periferiche (input o output = dispositivi I/O). Le periferiche sono lo schermo, che permette di visualizzare ciò che la macchina sta facendo, qualcosa che si pone verso l’esterno; anche la tastiera, o l’uscita video, le uscite audio.
  • Bus (dal latino “omnibus” = per tutti): gestisce lo scambio di informazioni tra gli altri sottosistemi, canale di comunicazione che permette a periferiche e componenti di un sistema elettronico di interfacciarsi tra loro scambiandosi informazioni o dati di sistema attraverso la trasmissione e la ricezione di segnali (è ciò che spesso rallenta i moderni sistemi).

La memoria centrale è quella che viene collegata costantemente con la CPU e con le periferiche, ma c’è anche una memoria di massa. La memoria RAM, invece, è la memoria a rapido svolgimento che serve a immagazzinare le informazioni che si stanno elaborando in quel momento quando si ha un programma aperto. La CPU è costituita da una ALU (unità aritmetico-logica) e da un’unità di controllo.

Schema dell’architettura System bus, evoluzione di quella di von Neumann

Esiste anche un altro tipo di schematizzazione, in cui compare anche la bus, cioè il sistema di controllo e comunicazione tra le varie parti. Si ha allora la CPU (memoria di massa) e il sistema di bus, che è costituito da diverse possibilità di interazione, dove c’è un sistema di controllo, uno di indirizzo e uno di archiviazione dei dati. Esempio di bus o collegamento parallelo (nastri blu) tra due schede elettroniche.

L’architettura di Von Neumann è una tipologia di architettura hardware per computer digitali programmabili a programma memorizzato la quale condivide i dati del programma e le istruzioni del programma nello stesso spazio di memoria. È diverso da un altro tipo di architettura (Architettura Harvard) che era stata progettata ad Harvard, dove i dati del programma e le istruzioni del programma erano invece memorizzati in spazi di memoria distinti. È molto più rapido memorizzarli nello stesso spazio di memoria, poiché si velocizzano le operazioni. L’importanza dell’architettura di Von Neumann è notevole, ed è quella su cui è basata la maggior parte dei moderni computer programmabili. Tra chi ha concepito questa architettura vi sono Eckert e Mauchly che hanno progettato anche l’ENIAC (primo computer elettronico general purpose e primo computer elettronico che si basa sul sistema di Turing). I computer basati sull’architettura di Von Neumann si dicono “modelli di von Neumann” o “stored-program computer” (computer che ha un unico luogo di store, di stoccaggio dei dati).

La CPU (Central Processing Unit)

  • ALU = Arithmetic Logic Unit: unità aritmetico logica, dispositivo di elaborazione dei dati che è montata insieme ai registri, che sono le unità di memorizzazione temporanea.
  • CU = Control Unit: unità di controllo che controlla le connessioni dei registri in ingresso ed in uscita alla ALU.

Questa parte è a sua volta divisa in due parti:

  • PC = Program Counter: registro contenente l’indirizzo dell’istruzione corrente.
  • IR = Instruction Register: registro contenente l’istruzione corrente.

Linguaggio macchina

Tutto questo si basa sulla definizione di un linguaggio macchina, con delle istruzioni codificate in binario che sono di tipo:

  • Istruzioni aritmetico-logiche (come la somma di due numeri, confronto tra due numeri): prevedono l’indicazione dei dati su cui operare.
  • Istruzioni di trasferimento dati (ad esempio da RAM a CPU, da CPU a RAM, input, output..): prevedono indicazione dei dati su cui operare.
  • Istruzioni di controllo: modificano il flusso di esecuzione (che altrimenti avverrebbero tutti in sequenza) delle altre istruzioni in base ad eventi esterni (ad es. clic del mouse) o a risultati precedenti.

Le memorie

  • Memoria centrale:
    • Serve di supporto alla CPU.
    • Contiene i programmi in esecuzione e i relativi dati.
    • Deve garantire un’elevata velocità di esecuzione.
    • Ha una ridotta capacità (nel senso di contenitore): deve contenere poco, non è suo scopo contenere tanto.
    • È una memoria volatile: allo spegnimento del computer, tutto ciò che era dentro sparisce (il contenuto viene cancellato allo spegnimento del calcolatore).

La memoria centrale è fatta da tante celle adiacenti, ognuna caratterizzata da un sistema di identificazione univoco (un indirizzo di memoria), in cui, facendo riferimento a questo indirizzo, si possono leggere o scrivere dati e istruzioni. Nella memoria centrale comprendiamo anche la RAM (Random Access Memory).

  • Memoria di massa (memoria secondaria):
    • Ha una ridotta velocità, perché è un archivio.
    • Ha un’elevata capacità.
    • Deve garantire la persistenza: anche quando è scollegata alla corrente deve rimanere funzionante.
    • È economica: il costo è valutato per byte.

Per quanto riguarda le memorie di massa, ne possiamo vedere diverse:

  • Memoria fissa: è quella presente all’interno del computer.
  • Supporti rimovibili, letti e scritti da drive: quelle più rimovibili sono le memorie esterne.
  • Disco rigido (Hard Disk): una volta la memoria fissa era costituita da un disco rigido mentre adesso non sono più memorie magnetiche (ovvero non gira nessun disco).
  • Dischi ottici: CD, DVD, BD.
  • Memorie flash (elettriche, non magnetiche): memory card, drive USB, drive a stato solido.

Le periferiche

  • Tastiera
  • Schermo
  • Dispositivi di puntamento
  • Stampante
  • Scanner
  • Fotocamera digitale
  • Videocamera digitale
  • Scheda audio

Il software

Metafora algoritmi - ricette

La ricetta sta all’algoritmo come il cuoco sta al computer, gli ingredienti sono l’input e il piatto completato è l’output.

  • Nella ricetta: deve esistere qualcuno (cuoco) che esegua la ricetta. Negli algoritmi: deve esistere un esecutore (calcolatore) che esegua l’algoritmo.
  • Nella ricetta: le istruzioni devono essere eseguite in ordine per partire dagli ingredienti ed ottenere il piatto.
  • Negli algoritmi: le istruzioni devono essere eseguite in ordine per partire dai dati di input ed ottenere i dati di output.
  • Nella ricetta: il cuoco deve conoscere la lingua italiana, altrimenti serve un traduttore.
  • Negli algoritmi: il calcolatore deve conoscere il linguaggio dell’algoritmo, altrimenti serve un traduttore.
  • Nella ricetta: il cuoco non può preparare “cotolette di arigusta” se non sa preparare la “balsamella”.
  • Negli algoritmi: l’algoritmo deve prevedere solo istruzioni elementari per il calcolatore.
  • Nella ricetta: la ricetta per “balsamella” è riportata nel capitolo “salse”.
  • Negli algoritmi: specificato un algoritmo, può essere richiamato per l’esecuzione di algoritmi più complessi.
  • Nella ricetta: cuoco in difficoltà con istruzioni ambigue (“condite gli spaghetti” dopo “cuocerli”).
  • Negli algoritmi: il linguaggio dell’algoritmo non può essere ambiguo, l’ordine di esecuzione è importante.
  • Nella ricetta: istruzioni non infinite.
  • Negli algoritmi: istruzioni non infinite.
  • Nella ricetta: tempo non infinito.
  • Negli algoritmi: tempo non infinito.
  • Nella ricetta: eseguendo più volte la stessa ricetta si ottiene lo stesso piatto.
  • Negli algoritmi: l’algoritmo deve essere deterministico: eseguito più volte sugli stessi dati di input genera sempre lo stesso output.
  • Nella ricetta: se una ricetta è per 4 persone, raddoppiando le dosi degli ingredienti vale per 8 persone.
  • Negli algoritmi: algoritmo parametrico, cioè risolve una classe di problemi (al variare dei dati di input).

Traduttori

I traduttori sono i linguaggi di programmazione: il traduttore serve per passare da un linguaggio di programmazione di alto livello (Pascal, Basic, C..) al linguaggio macchina. Dal punto di vista più astratto possibile, la macchina è costituita dal traduttore e dal calcolatore.

Si hanno quindi due fasi:

  • Fase di compilazione (compilatore): la macchina accetta in ingresso il programma (programma sorgente) e produce in uscita la rappresentazione dell’intero programma in linguaggio macchina (programma oggetto).
  • Fase di interpretazione (interprete): accetta in ingresso l’intero programma, traduce e fa eseguire direttamente ogni istruzione del programma sorgente. Si ha quindi bisogno di traduzione da linguaggio di programmazione al linguaggio macchina, o viceversa.

Software: opera dell’ingegno

I software possono essere distinti come:

  • SW proprietario: può essere usato acquistandolo oppure ottenendo l’autorizzazione all’uso (cioè ottenendo la licenza).
  • SW shareware: viene distribuito gratuitamente e può essere usato gratuitamente per un periodo di prova. Poi si paga la registrazione e si può quindi utilizzarlo e ricevere aggiornamenti.
  • SW freeware: può essere liberamente usato, copiato e distribuito.
  • SW libero e SW open source: può essere usato, copiato e distribuito gratis, ma rispettando alcune regole.

Software di base

Distinguiamo due tipi di software: i software di base e il software applicativo. Il software di base è il Sistema Operativo (OS = Operating System): è un insieme di programmi che forniscono all’utente intermediazione nell’utilizzo dell'hardware e dei servizi di sistema.

Anteprima
Vedrai una selezione di 10 pagine su 45
Appunti esame Informatica Pag. 1 Appunti esame Informatica Pag. 2
Anteprima di 10 pagg. su 45.
Scarica il documento per vederlo tutto.
Appunti esame Informatica Pag. 6
Anteprima di 10 pagg. su 45.
Scarica il documento per vederlo tutto.
Appunti esame Informatica Pag. 11
Anteprima di 10 pagg. su 45.
Scarica il documento per vederlo tutto.
Appunti esame Informatica Pag. 16
Anteprima di 10 pagg. su 45.
Scarica il documento per vederlo tutto.
Appunti esame Informatica Pag. 21
Anteprima di 10 pagg. su 45.
Scarica il documento per vederlo tutto.
Appunti esame Informatica Pag. 26
Anteprima di 10 pagg. su 45.
Scarica il documento per vederlo tutto.
Appunti esame Informatica Pag. 31
Anteprima di 10 pagg. su 45.
Scarica il documento per vederlo tutto.
Appunti esame Informatica Pag. 36
Anteprima di 10 pagg. su 45.
Scarica il documento per vederlo tutto.
Appunti esame Informatica Pag. 41
1 su 45
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher aeea11 di informazioni apprese con la frequenza delle lezioni di Fondamenti di informatica umanistica e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Bergamo o del prof Poldi Gianluca.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community