COMPUTER
https://github.com/luigi-asprino/Basic-Inf
20/03/2023
Computer
Macchina per l’elaborazione di dati rappresentati da caratteri alfanumerici variamente codificati, che vengono
sottoposti a procedimenti aritmetici e logici, memorizzati in archivi e resi reperibili e trasmissibili.
Agente in grado di fare calcoli e produrre un output (risposta) a partire da un input (informazione iniziale).
Nel Settecento computer umani sono stati impiegati per:
- Calcolare coordinate di oggetti extraterrestri
- Creare tabelle di conversione verso il nuovo sistema metrico
Problema calcoli lunghi, errori facili: grado di affidabilità inferiore nei risultati.
Soluzione Charles Babbage sviluppa una “Macchina Differenziale” nel 1822: si tratta di un prototipo parziale. La macchina differenziale non
era programmabile e perciò era in grado di utilizzare solo un numero limitato di operazioni sull’input ricevuto.
Nel 1837 Babbage progetta una “Macchina Analitica”, programmabile tramite schede perforate (primo computer general purpose: macchina
che può risolvere un qualsiasi problema, se istruita a dovere).
ENIAC (Electronic Numerical Integrator and Computer) 1946 primo computer interamente digitale (“moderno”), sviluppato negli USA.
Processa le informazioni e le trasforma in un sistema binario: digitalizza le informazioni, perciò è completamente digitale.
- Completamente programmabile attraverso cavi e interruttori
“Bomba” di Turing
La Bomba (1940) di Turing (uno dei padri fondatori dell’intelligenza artificiale) è stata il principale strumento che ha permesso ad un gruppo di
persone, rinchiuse nella base militare segreta britannica di Bletchley Park, di decifrare le comunicazioni tedesceh che erano state cifrate dalla
macchina Enigma sviluppo delle tecniche di crittografia.
Programmare o istruire?
Scrivere un programma comunicare ad un computer (macchina, persona) elettronico, utilizzando un linguaggio
formale che, sia l’istruttore umano sia il computer stesso possano comprendere.
Pensiero computazionale approccio per risolvere un problema, sviluppare sistemi e capire il comportamento
umano che riprende i concetti fondamentali della computazione (=calcolo).
- Definisce i processi mentali coinvolti quando si formula un certo problema e la relativa soluzione, usado un
linguaggio che un computer (umano o macchina) può comprendere ed eseguire.
- Astrazione processo di rimozione dei dettagli trascurabili di una situazione in modo da semplificarla, per
focalizzare l’attenzione sulle sue caratteristiche principali
Obiettivi del pensiero computazionale:
- Dare nuovamente forma alle astrazioni che si usano in maniera inconscia
- Definire tali astrazioni usando un linguaggio appropiato per renderle comprensibili ad un computer
- Permettere alle persone di pensare come se fossero computer scientist
Pensiero computazionale settore che cerca di istruire le persone in modo da consentire loro di strutturare il modo
in cui formulano e risolvono i problemi.
Organizzare l’informazione
Descrizione dell’informazione presente secondo un’organizzazione generica e riutilizzabile in diversi contesti. Per
organizzare l’informazione si usano le strutture dati (“contenitori” in cui è possibile collocare e prelevare
informazioni secondo precisi metodi).
- Lista sequenza di elementi ordinati e potenzialmente ripetibili, che si possono contare (informazioni
inseribili in ogni spazio della lista)
- Pila una specie di lista (sequenza ordinata di elementi) che consente di aggiungere o rimuovere elementi
seguendo alcune regole specifiche, che seguono la strategia Last In First Out (LIFO: è possibile accedere solo
all’ultimo elemento della pila)
- Coda una specie di lista, in cui le aggiunte e le rimozioni seguono la regola First In First Out (FIFO)
- Insieme collezione di elementi non ordinati e non ripetibili, che si possono contare
- Dizionario collezione non ordinata di elementi definiti da coppie chiave-valore che si possono contare,
dove la chiave non è ripetibile
- Albero struttura dati composta da un insieme di nodi collegati tra loro da una relazione gerarchica
genitore-figlio
- Grafo un insieme di nodi di un rete collegati da archi (che possono essere orienati); sono usati per
descrivere in modo astratto molte situazioni reali (come tragitti, relazioni tra persone sui social, collegamenti
ipertestuali...); la relazione ha una direzione (archi orientati)