Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Introduzione all'Informatica: Concetti Fondamentali e Algoritmi - Appunti, Appunti di Elementi di Informatica

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

2017/2018

Caricato il 13/02/2018

Marghe_R
Marghe_R 🇮🇹

4 documenti

1 / 12

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
INFORMATICA DI BASE
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
lmati
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...)
pf3
pf4
pf5
pf8
pf9
pfa

Anteprima parziale del testo

Scarica Introduzione all'Informatica: Concetti Fondamentali e Algoritmi - Appunti e più Appunti in PDF di Elementi di Informatica solo su Docsity!

INFORMATICA DI BASE

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

  • Universalità una sola macchina, programmabile, per tutti i problemi

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

  • concentrare molti transistor in una piccola superficie
  • comandare la commutazione tra stati molto velocemente

—> 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

  • Stabilire i simboli da codificare: 26 lettere dell’alfabeto, ovvero 52 distinguendo maiuscole e minuscole

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