






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
informazione - tecnologie ICT - macchina di von Newman - programmazione - linguaggio di programmazione - algoritmo - esecutore - metodo di Euclide - hardware - software - macchina di Turing - informazione e supporto - codice - alfabeto binario - codice binario - transistor - bit - ASCII - UNICODE - codificazione decimale
Tipologia: Appunti
1 / 12
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!







La parola informatica indica l’insieme delle discipline e delle tecniche che permettono la trattazione automatica delle informazioni
Informazioni sono entità che sono il prodotto dell’interesse dell’uomo a conoscere ciò che lo circonda , a comunicare le sue conoscenze, i suoi stati d’animo, le sue esperienze eccetera
Le tecnologie dell'informazione e della comunicazione ICT (Information and Communication Technology) sono l'insieme dei metodi e delle tecnologie che realizzano i sistemi di trasmissione , elaborazione e memorizzazione di informazioni
Informazione è tutto ciò che può essere rappresentato all’interno di un computer
numeri caratteri, parole e testi immagini suoni filmati comandi (istruzioni) e sequenze di comandi (programmi) che il calcolatore deve eseguire
Le modalità di rappresentazione dipendono anche dalle caratteristiche dell’elaboratore
Elaboratore Elettronico ( computer ): è lo strumento per la rappresentazione e l’elaborazione delle informazioni
Necessità di educare professionisti consapevoli in grado di cogliere limiti, potenzialità e criticità degli strumenti tecnologici
Scopo capire i principi che costituiscono le basi dell’informatica, ovvero i principi generali su cui si basano i sistemi di calcolo
Strumenti formali: data l’informazione espressa in una certa struttura è possibile elaborarla tramite delle regole e ottenere dei risultati (operazioni matematiche, sillogismi...)
Strumenti materiali: “materializzano” l’informazione rendendo possibile un’elaborazione veloce e precisa
abaco, pallottoliere: dispositivi di memorizzazione dati calcolatrici meccaniche: ricevono dati in input e meccanicamente producono il risultato di predeterminate operazioni matematiche in output
calcolatore/computer: può ricevere in input sia i dati che le operazioni (programmi), è un dispositivo programmabile
le tecnologie ICT hanno tre funzioni principali:
elaborare dati per ottenere informazioni significative memorizzare informazioni elaborate per poterle combinare con altre informazioni
organizzare e gestire le informazioni in una nuova forma in modo da renderle più comprensibili, accattivanti o utili
L’informatica è lo studio sistematico degli algoritmi che descrivono e trasformano l’informazione: la loro teoria, analisi, progetto, efficienza, realizzazione e applicazione [ACM –Association for Computing Machinery] L’informatica è la scienza della rappresentazione e dell’elaborazione dell’informazione
Macchina di von Newman (1940 circa): prevedere un unico formato per la codifica di dati e di operazioni sui dati, per far si che questi possano essere memorizzati in un unico dispositivo
Programmazione = l’ attività con cui si predispone l' elaboratore ad eseguire un particolare insieme di azioni su particolari informazioni (dati), allo scopo di risolvere un certo problema
I problemi che siamo interessati a risolvere con l’elaborato sono:
Somma di due numeri interi Dati a e b, risolvere l'equazione ax+b= Calcolare il massimo comun divisore fra due numeri dati Dato un’insieme di parole, metterle in ordine alfabetico Calcolare l'intersezione di due insiemi
calcolatore è un esecutore di programmi , ovvero di algoritmi scritti come sequenze di istruzioni che il calcolatore può capire
Proprietà fondamentali dell’algoritmo:
Eseguibilità : ogni azione deve essere eseguibile da parte dell’esecutore dell’algoritmo;
Non Ambiguità : ogni azione deve essere univocamente interpretabile dall’esecutore;
Finitezza : il numero totale di azioni da eseguire, per ogni insieme di dati di ingresso, è finito.
se almeno una delle 3 proprietà non è soddisfatta, la sequenza non è un algoritmo.
Altre proprietà desiderabili:
generalità : corretto funzionamento dell'algoritmo anche variando alcuni aspetti del problema (ad esempio, la dimensione dell'insieme dei dati, il tipo dei dati, ecc.)
determinismo : possibilità di prevedere esattamente prima dell'esecuzione la sequenza di azioni che verranno eseguite, per ogni insieme di dati
efficienza : tanto minore è il numero di azioni eseguite per la risoluzione del problema, tanto maggiore è l'efficienza
Se l'esecutore è un elaboratore elettronico:
conoscere l'insieme di istruzioni che è in grado di interpretare (set di istruzioni) conoscere quali tipi di informazioni (dati) è in grado di rappresentare scelti per esprimere l'algoritmo all'interno del sistema di elaborazione, cioè del Linguaggio di Programmazione
Quindi:
dato un problema, la sua soluzione può essere ottenuta mediante l’uso del calcolatore, compiendo i seguenti passi:
individuazione di un metodo risolutivo scomposizione del procedimento in insieme ordinato di azioni algoritmo rappresentazione dei dati e dell’algoritmo attraverso un formalismo comprensibile per l’elaboratore il linguaggio di programmazione
=> si ottiene così il programma
problema algoritmo programma
Algoritmo : descrizione della soluzione di un problema scritta in modo da poter essere eseguita da un esecutore
Programma : algoritmo scritto in modo da poter essere eseguito da un calcolatore (esecutore automatico)
Per scrivere un programma è necessario rappresentare istruzioni e dati in un formato tale che l’esecutore automatico sia capace di memorizzare e manipolare
Due algoritmi si dicono equivalenti quando:
hanno lo stesso dominio dei dati = dominio di ingresso hanno lo stesso dominio dei risultati = dominio di uscita in corrispondenza degli stessi valori nel dominio di ingresso producono gli stessi valori nel dominio di uscita
Quindi due algoritmi equivalenti: forniscono lo stesso risultato possono essere profondamente diversi possono avere differente efficienza
Calcolo del massimo comune divisore:
metodo di Euclide: detta mcd la funzione che calcola la soluzione del problema, la sua definizione data come segue:
mcd(m,n) = m (oppure n ) se m=n
mcd(m,n) = mcd(m-n, n) se m>n
mcd(m,n) = mcd(m, n-m) se m<n
Quindi l' Algoritmo B si può esprimere così:
Finché m è diverso da n ripeti le seguenti azioni: ‣ se m>n sostituisci a m il valore (m-n) altrimenti sostituisci a n il valore (n-m)
Il massimo comun divisore è n
Le tecnologie informatiche sono composte da due livelli che si integrano vicendevolmente:
Hardware : struttura fisica dei dispositivi informatici costituiti di norma da componenti elettronici che svolgono specifiche azione nel trattamento e nella trasmissione dell’informazione. Es: schermo, tastiera, mouse, cavi...
“La nostra missione è preservare, proteggere e promuovere la libertà di usare, studiare, copiare, modificare e ridistribuire il software per computer, e difendere i diritti degli utenti del software libero”
es. Wikipedia
Open Source : termine coniato nel 1997 per promuovere le licenze permissive nel mondo degli affari
L’open source è un modello di licenza software che prevede di rendere disponibile gratuitamente il codice sorgente agli utenti che possono modificare e ridistribuire il codice sotto certe condizioni
I prodotti open source sono spesso ottenuti dalla collaborazione di più entità
E’ possibile vendere il codice open source, ma poiché la licenza GPL rende possibile ridistribuirlo gratuitamente questo non genera business
Il mercato più florido è invece quello della: personalizzazione, consulenza e assistenza
Licenze multiple: lo stesso software viene licenziato sia come proprietario che come libero
Quindi la versione libera tipicamente dispone di meno funzionalità
Cosa significa calcolare?
Macchina di Turing 1936
Idea:
Calcolare come sequenza (anche ∞) di sostituzione di simboli Programma finito Ogni passo dipende da informazione finita Separazione Controllo e Memoria Identità Programma e Dati
Informazione e supporto
La sts informazione può essere scritta su supporti differenti ogni supporto ha le sue caratteristiche
informazione = entità logiche / diverso da supporto fisico = entità fisiche
informazione richiede un supporto fisico , ma non coincide con esso informazione si può creare e distruggere
Si ottiene informazione quando , dato un insieme di alternative possibili, la lettura del supporto ne elimina lacune e ne seleziona altre
Condizione necessaria perché il supporto possa portare informazione è che possa assumere configurazioni differenti ad ogni configurazione del supporto => associata una differente entità di informazione
codifica : operazione per cui l’ informazione viene scritta su un supporto fisico
decodifica : l’operazione con cui l’ informazione , precedentemente scritta su supporto fisico, viene letta
interpretare le differenti configurazioni del supporto in termini di informazione necessario conoscere il codice = regole concordate interpretare le diverse configurazioni in termini di informazione
codice definisce un’associazione tra l’insieme delle possibili configurazioni del supporto e l’insieme delle possibili entità di informazione a cui ci si vuole riferire
La definizione di un codice l’ insieme delle possibili configurazioni del
supporto e l’ insieme delle possibili entità di informazione a cui ci si vuole riferire
se il codice varia => anche l’informazione associata al particolare supporto fisico
Codice identificare: insieme delle configurazioni + insieme delle entità di informazione
Principio di composizionalità:
configurazioni elementari composte per formare la configurazione del supporto fisico l’informazione complessiva portata dal supporto = messaggio ottenuta dalla composizione delle entità di informazione elementari = simboli + configurazioni elementari
=> per interpretare un messaggio scritto su un supporto fisico quindi abbiamo bisogno:
Quanti oggetti si possono codificare con k bit? 1 bit permette 2 stati (0,1) quindi codifica 2 oggetti 2 bit permettono 4 stati (00,01,10,11) quindi codificano 4 oggetti 3 bit permettono 8 stati (000,001,...,111) quindi codificano 8 oggetti
k bit permettono 2k stati e quindi codificano 2k oggetti
Per codificare N oggetti mi servono: k = log2N (intero superiore)
—> costruire dispositivi che siano bistabili: in ogni istante assumano stabilmente uno stato scelto tra due possibili
=> per questioni di costo ed efficienza si utilizzano dispositivi elettronici basati su transistor
Transistor : componente elettronico che può essere usato come un interruttore operando come un dispositivo bistabile
- può essere prodotto economicamente
—> transistor hanno tre connettori: collettore, base e emettitore
bit = solo due stati, “0” oppure “1” Byte = 8 bit, quindi 28 = 256 stati KiloByte [KB] = 210 Byte = 1024 Byte ~ 103 Byte MegaByte [MB] = 220 Byte = 1'048'576 Byte ~ 106 Byte GigaByte [GB] = 230 Byte ~ 109 Byte TeraByte [TB] = 240 Byte ~ 1012 Byte PetaByte [PB] = 250 Byte ~ 1015 Byte ExaByte [EB] = 260 Byte ~ 1018 Byte
Nel sistema di misurazione internazionale i prefissi kilo mega giga tera —> sono per convenzione associati a potenze crescenti di 10, quindi 103, 106...
Ma —> caso binario —> multipli sono associati alle potenze di 2
—> problema: codifica binaria di documenti scritti in un linguaggio naturale come l’italiano o l’inglese
10 cifre decimali 0... circa 30 simboli di punteggiatura alcuni caratteri speciali associati a funzioni di controllo (can, esc, invio)
=> totale di circa 120 simboli, per cui sono necessari 7 bit (27 = 128)
ASCII (American Standard Code for Information Interchange) usa 7 bit per la codifica binaria di 120 simboli
27 = 128, esistono versioni di ASCII con un bit in più, ovvero 8 bit
8 bit non sono comunque sufficienti per rappresentare tutti i caratteri di tutte le lingue (greco, lingue scandinave, lingue orientali), per cui si stanno sviluppando codici più estesi per rappresentare anche i caratteri di altre lingue
UNICODE usa 16 bit
—> per facilitare il passaggio tra ASCII e UNICODE i primi 128 caratteri del codice UNICODE sono gli stessi del codice ASCII —> successivi corrispondono ad altri alfabeti.
I programmi sono scritti in linguaggio macchina , ovvero in un linguaggio che l’ elaboratore è in grado di interpretare
=> s olo in questo modo l’elaboratore può eseguire i programmi anche in questo caso si usa —> la codifica binaria e seguiamo lo schema precedente:
Quali e quante sono le istruzioni da codificare? —> codifica delle istruzioni
Quale è la lunghezza delle successioni di bit da utilizzare? —> schema presentato per i caratteri alfanumerici:
Quale è la corrispondenza tra istruzioni e successioni di bit?
quali e quante sono le istruzioni da codificare?
qual è la lunghezza delle successioni di bit da utilizzare? istruzioni
qual è la corrispondenza tra istruzioni e successioni di bit
Ad ogni istruzione viene associato un codice univoco detto opcode o
codice operativo binario = una sequenza binaria che identifica
univocamente l’ istruzione e che l’ esecutore deve decodificare per identificare quali operazioni effettuare
specificato dove trovare gli argomenti dove scrivere il risultato