Il 0% ha trovato utile questo documento (0 voti)
9 visualizzazioni15 pagine

INFORMATICA

gfuyhihiuiyhih
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato DOCX, PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
9 visualizzazioni15 pagine

INFORMATICA

gfuyhihiuiyhih
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato DOCX, PDF, TXT o leggi online su Scribd
Sei sulla pagina 1/ 15

Etimologia

1. Il termine “informatica” deriva dal francese “informatique”. È ottenuto dalla


contrazione tra “informatiòn” e “automatique” ed è stato coniato negli anni ‘60 da
Pilippe Dreyfus (Francia). Viene usato per indicare la disciplina tecnico-scientifica
che si occupa della progettazione e costruzione di macchine in grado di trattare (o
elaborare) in modo automatico (quindi senza l’intervento dell’uomo) le
informazioni.
2. È la scienza che riguarda la rappresentazione e l’elaborazione dell’informazione.
Studia le caratteristiche dell’informazione e i modi di usarla, immagazzinarla,
trasportarla e manipolarla in modo automatico.
3. Le due aree principali sono:
- i calcolatori elettronici e i sistemi che li utilizzano (i computer);
- i metodi per la soluzione di problemi e la gestione delle informazioni.

Information & communication technology


In alternativa al termine “informatica” viene utilizzato il termine “tecnologia
dell’informazione” (Information Technology o IT). La convergenza tra la tecnologia
dell’informazione e le telecomunicazioni ha dato vita ad una disciplina che prende il
nome di Information & Communication Technology (ICT).

Dati, informazioni e conoscenza


1. Dati: insieme di simboli tracciati su un supporto fisico, che rappresentano una
proprietà di un oggetto nel mondo reale, ma che non contengono alcun riferimento
alla proprietà a cui si riferiscono. Questi rappresentano la materia prima del
trattamento dell’informazione. Possono essere classificati in dati semplici (numeri,
caratteri, ecc.) e dati complessi (che sono un
insieme di dati semplici:
film, suoni, immagini,
ecc.).
2. Informazioni: dati messi
in relazione con la
proprietà a cui essi si
riferiscono.
3. Conoscenza: regole che
permettono di trarre
vantaggio dalle informazioni.

Gli elaboratori (o calcolatori) elettronici


Questi svolgono un lavoro che per l’uomo è naturale, ma lo fanno rapidamente,
riescono a gestire enormi quantità di dati, e in alcuni casi permettono di superare i
vincoli temporali e spaziali.
A differenza degli elettrodomestici, sono programmabili e possono essere adattati a
risolvere molti tipi di problemi (a patto che la soluzione possa tradursi in un numero
finito di operazioni).

Hardware e software
Un calcolatore di solito è suddiviso in:
1. Hardware: il termine hardware indica la struttura fisica dei dispositivi, costituita da
componenti elettronici ed elettromeccanici che svolgono specifiche funzioni nel
trattamento e nella trasmissione delle informazioni;
2. Software: il termine indica il livello logico (in contrapposizione con quello fisico
dell’hardware), cioè l’insieme delle istruzioni che consentono all’hardware di
svolgere i propri compiti.

Il computer
È una macchina che elabora le informazioni attraverso una sequenza di tanti calcoli.
È un elaboratore/calcolatore elettronico digitale.
1. Elaboratore: è una macchina in grado di rappresentare ed elaborare dati in base ad
una serie di istruzioni (formulate e memorizzate in modo da poter essere eseguite
automaticamente).
2. Elettronico: indica che il computer utilizza componenti elettronici.
3. Digitale: indica che il computer elabora e memorizza informazioni rappresentate
mediante due simboli: 0 e 1 (con queste due cifre, usate in combinazioni diverse, si
possono rappresentare tutti i dati: parole, numeri, immagini, filmati ecc.).
Architettura di un calcolatore: Von Neumann
Lui era un matematico e il suo obiettivo era quello di creare una macchina che lo
aiutasse a effettuare i calcoli (equazioni difficili, integrali). Quindi inventò una
macchina con questo scopo (1945). Il modello che crea è chiamato “architettura di
Von Neumann”, che è formato da 4 sottosistemi: interfaccia, memorizzazione,
elaborazione e connessione/comunicazione. Il suo obiettivo era la realizzazione di un
calcolatore universale (general purpose). Il modello di Von Neumann è un modello
teorico, ma nella pratica questo diventa un modello fisico dove i 4 sottosistemi
assumono 4 terminologie specifiche:
1. Memoria centrale;
2. Unità centrale di elaborazione (CPU);
3. Interfacce di ingresso e uscita (o delle periferiche);
4. Bus.

La memoria centrale
Memorizza e fornisce l’accesso a dati e programmi (per “centrale” si intende
l’importante ruolo che essa svolge). Consiste in un insieme di unità elementari di
memorizzazione, dette locazioni o celle (o anche word)(ciascuna cella è individuata da
un indirizzo). La tecnologia utilizzata per la memoria centrale è quella dei dispositivi a
semiconduttori, che la fanno apparire come una matrice di bit (simboli 0 e 1) (ogni bit
è presente come stato (alto o basso) di tensione). È anche detta memoria ad accesso
casuale o Random Access Memory (RAM), perché qualsiasi cella può essere
letta/scritta in un tempo mediamente costante.
Le caratteristiche fondamentali della memoria centrale sono:
1. Accesso diretto all’informazioni (è immediato: non bisogna passare per altri
sistemi);
2. Velocità elevata;
3. Volatilità: quando il computer viene spento, i dati e i programmi presenti nella
memoria centrale vengono cancellati (i tipi di memorie chiamate “persistenti”
mantengono i dati anche senza l’alimentazione elettrica es. la memoria secondaria
come l’hard disk o la pendrive).

Unità centrale di elaborazione (CPU)


Esegue istruzioni per l’elaborazione dei dati e svolge anche funzioni di controllo
(quindi effettua i calcoli). È detta anche il processore. Le istruzioni di un programma
corrispondono a operazioni alimentari di elaborazione (operazioni aritmetiche,
relazionali, su caratteri e valori di verità, altre operazioni numeriche).

Interfacce di ingresso e uscita (o delle periferiche)


Che sono componenti di collegamento tra le periferiche del calcolatore. Le periferiche
sono i dispositivi che consentono all’elaboratore di scambiare informazioni con il
mondo esterno. Vengono considerate appartenenti alla macchina di Von Neumann
solo l’interfaccia di collegamento verso le periferiche, mentre le periferiche sono
considerate componenti separate.

Il bus
Trasferisce dati e informazioni di controllo tra le componenti suddette. È paragonabile
ad un’autostrada a tre corsie la cui particolarità è che il casello non si apre in qualsiasi
momento, ma ad orari precisi, per evitare lo scontro di informazioni (questo significa
che le operazioni si succedono in modo sincrono, rispetto alla cadenza imposta da un
orologio di sistema: clock). Ogni corsia ha una sua funzione specifica: una dedicata al
controllo, una agli indirizzi e una ai dati. È fisicamente realizzato mediante un insieme
di connettori elettrici.

Memorizzazione
Un’unità di memoria fornisce due sole operazioni: memorizzazione di un valore
(operazioni di scrittura) e accesso al valore memorizzato (operazioni di lettura).
Le memorie sono dispositivi per “lo stoccaggio” (conservare, memorizzare) delle
informazioni.
In ogni elaboratore vi sono generalmente tre tipi di memorie:
1. I registri: contengono informazioni necessarie all’elaborazione della singola
istruzione;
2. La memoria centrale: contiene i dati e istruzioni attualmente elaborati dal
processore;
3. Le memorie di massa: contengono dati e programmi che non sono oggetto di
elaborazione immediata.

Le caratteristiche di una memoria


I parametri fondamentali che caratterizzano una memoria sono:
1. Modalità di accesso;
2. Permanenza o volatilità dei dati;
3. Capacità (la quantità di dati che possono essere memorizzati);
4. Velocità (la velocità necessaria per accedere a una locazione di memoria, la cella,
durante un’operazione di lettura o scrittura. Viene espressa in nanosecondi,
millisecondi, secondi).

Modalità di accesso
1. Accesso sequenziale: prima di leggere una cella è necessario rileggere tutte quelle
che la precedono;
2. Accesso diretto: dato l’indirizzo di una cella, essa può essere ceduta in modo
immediato;
3. Accesso misto: le celle sono organizzate in blocchi, ogni blocco è costituito da un
certo numero di celle, si ha accesso diretto ai blocchi e accesso sequenziale alle
celle all’interno di un blocco. Es. il disco magnetico (hard disk) ha un accesso misto
(possibile domanda).

Gerarchie di memoria
In base ai parametri di capacità e velocità di accesso, le
memorie possono essere collocate a diversi livelli di una
gerarchia.

Le Memorie Secondarie (o di Massa)


Il calcolatore è dotato di dispositivi di memorizzazione, chiamati memorie secondarie
(o di massa). La loro funzione principale è quella di garantire la persistenza dei dati.
Possono essere:
1. Fisse (es. hard disk interni);
2. Rimovibili (es. pendrive USB).
Nel modello di Von, le memorie di massa sono incluse tra le periferiche di ingresso e
uscita.
Pro e contro delle memorie di massa
1. Pro: capacità più elevate e costo inferiore;
2. Contro: tempi di accesso più lunghi e rispetto alla memoria centrale.

Approfondimento: ROM
La RAM (Random Access Memory, memoria a lettura casuale) consente di scegliere
una qualsiasi cella di memoria per una operazione di lettura e scrittura. In genere, gli
elaboratori hanno anche una o più zone di memoria sulle quali non è possibile
scrivere: ROM (Read Only Memory, memoria a sola lettura). Il contenuto è preservato
da guasti o scritture operate da programmi scorretti. Il contenuto della ROM è
persistente. Le ROM vengono inizializzate dal costruttore del calcolatore con dati e
programmi che servono a far funzionare il sistema. Le ROM hanno alcune
caratteristiche dell’hardware (non possono venire modificate durante l’esecuzione) e
altre del software (possono essere programmate). Il software contenuto nelle ROM
prende il nome di firmware, “a cavallo” fra hardware e software.
L'Unità di Elaborazione: CPU
La sua funzione è quella di eseguire i programmi contenuti nella memoria centrale
prelevando, decodificando ed eseguendo una dopo l'altra le istruzioni che li
costituiscono. Contiene gli elementi circuitali che regolano il funzionamento
dell'elaboratore. Principali elementi circuitali:
1. Orologio di sistema (Clock);
2. Unità aritmetico-logica (ALU);
3. Registri (R);
4. Unità di controllo (CU).
Orologio di sistema: Clock
La CPU è un dispositivo sincrono che viene regolato da un "orologio" (o clock), il quale
sincronizza le operazioni rispetto ad una data frequenza: le attività della CPU hanno
inizio in corrispondenza di tempi ben precisi stabiliti del clock (impulsi di clock). Quindi
stabilisce quante istruzioni al secondo possono essere eseguite dalla CPU.
1. Una CPU attuale lavora a N GHz. Segue un ritmo di N miliardi di impulsi al secondo.
Ad esempio: una CPU che lavora 3 GHz riceve 3 miliardi di impulsi al secondo.
2. La frequenza di clock determina la velocità di elaborazione del computer. Più alta è
la frequenza di clock, maggiore è la velocità di elaborazione.
3. La velocità e la potenza di un computer dipendono anche dalla larghezza del bus:
quantità di "dati" che il processore è in grado di ricevere ed elaborare
simultaneamente (dimensione dei registri: tipicamente 32 o 64 bit).

Unità aritmetico-logica: ALU


La ALU (Arithmetic Logic Unit), detta anche Unità Aritmetica Logica, si occupa di
eseguire operazioni aritmetiche e logiche su 2 operandi. Oltre al risultato
dell’operazione stessa, la ALU può produrre ulteriori informazioni (segnali di stato).

Registri
Sono dispositivi di memorizzazione che consentono un accesso molto veloce ai dati
contenuti. Hanno dimensioni prefissate. Alcuni registri hanno funzioni specifiche:
1. Il registro PC (Program Counter): che individua tramite indirizzo barra link la
prossima istruzione da seguire (qui succede una cosa diversa: non visualizziamo
direttamente l’istruzione, ma il link che ci porta all’istruzione);
2. Il registro IR (Instruction Register): che contiene l’attuale istruzione da eseguire.
Lo stato della CPU è rappresentato dalle informazioni memorizzate negli opportuni
registri:
1. Dati da elaborare: contenuti nei registri dati (DR);
2. Istruzione da eseguire: contenuta nel registro IR;
3. Indirizzo in memoria della prossima istruzione da eseguire -> contenuto nel
registro PC;
4. Anomalie/eventi verificatisi durante l'elaborazione -> contenuti nei registri di Stato
o flag.

Unità di controllo: CU
Il coordinamento tra le varie parti del calcolatore è svolto dall’unità di controllo (CU).
Questa è una componente dell’unità centrale di elaborazione. Ogni componente del
calcolatore segue solo le azioni che gli vengono richieste dall’unità di controllo. Il
controllo consiste nel coordinamento dell’esecuzione temporale delle operazioni.
Istruzioni di base della CPU:
1. Eseguite dalla ALU: somma (da cui sottrazione), scorrimento (shift)(tramite le
operazioni di somma e di shift è possibile ricavare moltiplicazione e divisione),
operazioni logiche (riguardano solo 2 valori: 0 e 1) e operazioni di confronto.
2. Operazioni di accesso alla memoria (non eseguite dalla ALU): trasferimento di un
dato da un’allocazione di memoria ad un’altra e trasferimento dalla memoria al
registro della CPU o dal registro della CPU alla memoria.

Dati e istruzioni in memoria centrale


I dati e le istruzioni di un programma sono codificati in forma binaria, cioè mediante
sequenze finite di bit. Un’istruzione codificata si compone di due parti:
1. Codice operativo (CO) che specifica l’istruzione da eseguire. In ogni architettura è
definito un certo insieme di istruzioni (set di istruzioni) con gli associati CO;
2. Uno o più operandi che contengono le informazioni necessarie a reperire i dati sui
quali l’istruzione deve operare.
L’istruzione è una sequenza di azioni da fare.
È fatta da una sequenza di 0 e 1 (linguaggio macchina).
Per facilitare la programmazione è stato definito il linguaggio Assembly. Il programma
scritto in assembly è convertito automaticamente in linguaggio macchina per mezzo
del programma traduttore, detto Assembler.

Come si eseguono i programmi?


Un programma è una sequenza di istruzioni da eseguire per ottenere la soluzione ad
una data classe di problemi. Il processore esegue ciascuna istruzione mediante la
seguente sequenza di operazioni, detta ciclo di istruzione o ciclo macchina:
1. Estrazione di un’istruzione: fase di fetch;
2. Interpretazione di un’istruzione: fase di decode;
3. Esecuzione dell’istruzione: fase di execute.
La CPU esegue solo istruzioni codificate in linguaggio macchina, mediante questo
ciclo:
1. Prendi l’istruzione corrente dalla memoria centrale (individuata dal contenuto del
PC). Salvala nell’IR (Instruction Register) e contemporaneamente incrementa il PC
in modo che contenga l’indirizzo dell’istruzione successiva (fetch);
2. Determina il tipo di istruzione da eseguire (decode): se l’istruzione usa dati
presenti in memoria, determinane la posizione; carica tali dati nei registri della
CPU.
3. Esegui l’istruzione (execute).
4. Torna al punto 1 ed inizia ad elaborare l’istruzione successiva.

Obiettivo dei computer


Quindi gli elaboratori sono strumenti per risolvere (o aiutare a risolvere) problemi
basati sulle informazioni/dati. Ma come avviene ciò?
1. Abbiamo bisogno di codificare e memorizzare opportunamente dati e informazioni;
2. Abbiamo bisogno di impartire le giuste istruzioni per risolvere correttamente i
problemi.
(per i computer si parla di codifica e non di traduzione perché nel passaggio da un
linguaggio all’altro c’è una traduzione rigida).

Che lingua parla l’elaboratore?


Per rendere dati ed informazioni comprensibili da un elaboratore, le informazioni e dati
devono essere codificati mediante un linguaggio opportuno.

Il linguaggio
Il linguaggio è formato da:
1. Alfabeto: collezione di simboli grafici, aventi di solito un ordine ben preciso, che
servono a rappresentare le parole di una lingua;
2. Vocabolario (o lessico): insieme delle parole ammissibili di una lingua;
3. Grammatica: insieme di regole utili alla corretta costruzione di frasi, sintagmi e
parole;
4. Semantica: studia il significato delle parole (semantica lessicale), degli insiemi
delle parole, delle frasi (semantica frasale) e dei testi.
(possibile domanda: cosa caratterizza un linguaggio?: risposta: questi 4 elementi)

La funzione dei linguaggi


I linguaggi sono strumenti per:
1. Rappresentare le informazioni (concetti, pensieri, emozioni, etc., vengono
formalizzati attraverso i linguaggi per poter essere memorizzati, trasferiti ed
elaborati);
2. Memorizzare le informazioni (la scrittura);
3. Trasferire le informazioni (la comunicazione);
4. Elaborare le informazioni (le deduzioni nella logica).
I linguaggi naturali: l’ambiguità
Per comunicare tra loro gli uomini hanno sviluppato i linguaggi naturali (italiano,
inglese, francese). Una caratteristica negativa di tali linguaggi è la loro inerente
ambiguità: una qualsiasi frase formulata è potenzialmente polisemica e il significato
che viene dato alla frase da chi riceve il messaggio può essere diverso da quello
datogli dal mittente. L’ambiguità dei linguaggi naturali rappresenta un grosso
problema. Risulta quindi necessaria la definizione di un linguaggio più formale, che
permetta di:
1. Individuare un alfabeto, ovvero un elenco finito di simboli;
2. Definire un insieme di regole, che specificano come i simboli dell’alfabeto possono
essere combinati tra loro per creare frasi ben formate all’interno del linguaggio
stesso (grammatica);
3. Attribuire un significato non ambiguo alle frasi del linguaggio (semantica).

Rappresentazione dell’informazione nei calcolatori


Consideriamo un alfabeto ridotto, che contiene solo due simboli: “0” e “1”;
Un bit (contrazione di binary digit) è un simbolo scelto sull’alfabeto {0, 1};
Nei calcolatori ogni elemento (numeri, testo, audio, video, istruzioni, etc) viene
rappresentato (codificato) esclusivamente con sequenze di bit;
I dati e le istruzioni vengono codificati con sequenze di bit.

Codifica binaria
Il computer ha un linguaggio binario. Usiamo
solo due simboli: 0, 1 (bit).
(Es. 5 bit: 5 volte o ‘0’ o ‘1’: es. 10110)
Es.: l’interruttore che ha due sole possibilità:
acceso (ON, 1) o spento (OFF, 0).

(con 2 bit sono in grado di rappresentare 4 stati, con 3 bit posso rappresentare 8
stati…)

Codifica dei caratteri


Ogni singolo carattere viene codificato con una combinazione di 8 bit.
Una sequenza di 8 bit si chiama bite. Es.: 01000001 -> A; 01000010 -> B; 01000011 -
> C; etc.
(Possibile domanda: quanti bit ci sono in questa frase? Es. frase “oggi piove”: 10
caratteri: quindi 80 bit)(sarebbe 10x8) oppure frase “domani piove”: 12 caratteri: 96
bit).
L’American Standard Code for Information Interchange “ASCII” è un codice per la
codifica dei caratteri.

Codifica dei numeri


Il nostro sistema di numerazione utilizza una notazione posizionale ed è in base 10.
L’alfabeto utilizzato è l’insieme dei simboli {0, 1, 2, …, 9}.
Essendo posizionale, il valore di una “sequenza” di
simboli viene calcolata assegnando dei “pesi” ad
ogni simbolo a seconda della sua posizione. Es.:
3251 (3migliaia, 2centinaia, 5decine, 1unità).
Sistemi di numerazione più diffusi

Da binario a decimale: tecnica

Da decimale e binario: tecnica


Spiegazione (pdf n4):
51:2= 25, che scrivo in basso, visto
che il risultato sarebbe 25,5 ho il resto,
che scrivo ancora più in basso.
25:2= 12 (con resto di uno perché
sarebbe 12,5)
12:2=6
6:2=3
3:2=1 (col resto di uno perchè sarebbe 1,5)
1:1=0

Come impartire le giuste istruzioni ad un computer per risolvere i problemi?


Per risolvere un problema la prima cosa da fare è creare un modello di
rappresentazione della realtà. Il modello dipende dal tipo di problema (non sono tutti
uguali). Per i computer il modello è sempre matematico (quindi non è fisico). Quindi i
passaggi per poter risolvere un problema sono:
1. Scegliere un'astrazione definendo un insieme di dati rilevanti che caratterizzano la
realtà;
2. Scegliere una rappresentazione dei dati;
3. Individuare il giusto procedimento per risolve il problema;
4. Se il problema è complesso lo si può risolvere attraverso una scomposizione del
problema in problemi più semplici.

L’algoritmo
È il procedimento che mi permette di risolvere qualsiasi tipo di problema. Quindi è una
sequenza di istruzioni che consentono di risolvere un problema. È importante che ogni
istruzione: sia precisa (e non ambigua); che deve poter essere eseguita in un tempo
finito (alcune istruzioni quando non sono scritte bene possono non finire mai); che una
o più istruzioni non dovrebbero essere ripetute all'infinito assicurando quindi che il
procedimento termini; e che dopo aver eseguito tutte le istruzioni vengano ottenuti i
risultati.
Gli algoritmi non servono solo a risolvere problemi, ma anche a fare la somma di
numeri, a trasmettere dati in internet, fare ricerche nel web, fare processi economici
ecc.
Un algoritmo deve essere eseguito da qualcuno. Nel caso dei computer viene eseguito
dal computer stesso (con il linguaggio binario). Colui che esegue l'algoritmo viene
chiamato esecutore. L'esecutore può essere anche automatico.

Tipi di logaritmi
1. Gli algoritmi possono essere di due tipi: di tipo deterministico e di tipo
probabilistico. Un algoritmo si dice deterministico quando ad un ingresso
corrisponde sempre la stessa uscita (a un imput corrisponde sempre lo stesso
output). Classico esempio è la somma di numeri. Un
algoritmo si dice probabilistico quando ad uno stesso
ingresso non corrisponde sempre la stessa uscita.
Classico esempio è il lancio dei dadi.
2. Inoltre un algoritmo può essere efficace ed
efficiente. Un algoritmo è efficace quando risolve un
problema; è efficiente quando risolve il problema
utilizzando il minor numero di risorse.

Come si scrive un algoritmo?


Esistono due modalità formali: pseudocodice e
diagramma di flusso.
1. Pseudocodice: è una modalità testuale. Significa che
è simile a un codice. Il codice è una traduzione
rigida. Esempi di pseudocodice: mettere le foto.
2. Diagramma di flusso: è una modalità grafica. È un
diagramma che rappresenta un flusso (flusso: scorre il ragionamento logico).
Questo è composto da: blocchi elementari e archi orientati. I blocchi elementari
descrivono azioni e decisioni. Gli archi orientati collegano i vari blocchi e
descrivono la sequenza di svolgimento delle azioni. I blocchi sono caratterizzati da
alcuni simboli: sono scritti in una formula poligonale. Il collegamento avviene
attraverso frecce che indicano un verso. I blocchi elementari sono di 4 tipologie:
blocco di inizio e fine; blocco di connessione: il quale connette altri blocchi; blocco
di azione generica e di I/O (imput e output): in cui io interagisco con l'esterno;
blocco di decisione binaria (detto anche "decisionale" o "a due vie"): nel quale
avviene una decisione tra due opzioni: se andare a destra o a sinistra (a forma di
rombo).
Strutture di controllo (Logiche)
Un qualsiasi algoritmo può essere espresso usando solo le seguenti tre strutture
logiche di base: sequenza logica, selezione logica (o alternativa) e interazione logica (o
ripetizione). Per quanto riguarda la selezione logica, ne esistono due tipi: quella
semplice (la risposta può essere di due tipi: si o no), qui le
istruzioni avvengono solo da un lato del flusso (se é "sì" le
azioni avvengono, se è "no" le azioni
non avvengono); quella a due vie: in cui
o si va a destra o si va a sinistra io devo
sempre eseguire delle azioni. Poi per
quanto riguarda l’interazione logica, ne
esistono due tipi: ciclo a condizione
iniziale o ciclo a condizione finale.

Esercizio 1: da pseudocodice a diagramma di flusso


Algoritmo per cercare la chiave giusta in un mazzo di chiavi al fine di aprire un
lucchetto
Inizio: cercare una chiave.
1. Seleziona una chiave non marcata dal mazzo e segnala con un pennarello.
2. Prova ad aprire il lucchetto con la chiave appena marcata.
3. Se funziona, termina la ricerca.
4. Se ci sono altre chiavi non marcate, vai al punto 1.
5. Non ci sono chiavi che aprono il lucchetto.
Fine: cercare una chiave.
Cos’è un programma?
È la realizzazione/implementazione di un algoritmo espressa in un linguaggio di
programmazione specifico. Deve essere scritto in maniera chiara e leggibile. Va scritto
in maniera allineata: indentazione: è una modalità di scrittura di un
algoritmo/programma che ci aiuta nella lettura dello stesso. Bisogna usare nomi
significativi e coerenti per le variabili (don’t repeat yourself). I nomi di variabili e
funzioni devono avere delimitatori di parola. Sono due le opzioni più comuni:
1. camelCase: Prima lettera di ogni parola è in maiuscolo (di solito tranne la prima
parola); ad esempio: trovaMaxNellaLista(A);
2. underscore: Underscore tra le parole (_), come ad esempio:
trova_max_nella_lista(A).

Problema ⮕ Modellazione del problema ⮕ Algoritmo ⮕ Programma.


Es: dati tre numeri a, b e c, calcolare il maggiore.
Confronto il primo e il secondo, il più grande lo confronto con il terzo.

Di cosa si occupa il programmatore?


Il programmatore si occupa di:
1. Progettare un algoritmo efficace per la risoluzione di un problema dato;
2. Tradurre questo algoritmo in istruzioni eseguibili da un computer mediante un
linguaggio di programmazione.

Come viene scritto un programma?


La programmazione consiste nella scrittura di un testo, detto programma (o codice)
sorgente, che descrive in termini di istruzioni note alla macchina la soluzione per un
dato problema. La programmazione consiste nel trovare la strada “migliore” che
conduce alla soluzione del problema in oggetto.
(Possibile domanda: che cos’è un commento? È un istruzione non eseguita dal
computer).

Il linguaggio di programmazione
Nel mondo esistono tantissimi linguaggi. Nel 2017 quello più utilizzato era chiamato
Java. Oggi è il Python. Ogni linguaggio di programmazione dispone di un insieme di
parole chiave (keyword es. printf), ed è caratterizzato da due componenti
complementari:
• Sintassi: insieme delle regole che specificano come comporre istruzioni ben formate;
• Semantica: specifica il significato di ogni istruzione ben formata.

Classificazione dei linguaggi


• Linguaggi di alto livello (vicini all’utente):
1. V generazione: linguaggi di descrizione dei problemi orientati alla risoluzione
automatica;
2. IV generazione: linguaggi per specifici ambiti applicativi (ad es. MATLAB);
3. III generazione: linguaggi imperativi e procedurali di uso generale.
• Linguaggi di basso livello (vicini all’hardware):
1. II generazione: linguaggi assemblativi (uso di codici mnemonici per le istruzioni);
2. I generazione: linguaggi macchina (sequenze di bit). Il linguaggio binario è di I
generazione.

Il traduttore che mi permette di passare dal terzo livello al primo livello si chiama
compiler. I linguaggi di terza generazione sono molto più ampi rispetto a quelli delle
generazioni precedenti.

Software
Il termine software si riferisce ad un insieme di programmi (es. word).
Un pacchetto (o suite) software rappresenta un gruppo di programmi che risolvono
uno specifico problema o effettuano uno specifico lavoro (es. microsoft office).
La maggior parte del software può essere classificato in due categorie principali:
1. Software di Sistema, progettato per controllare il funzionamento di un sistema di
elaborazione (computer system) e talvolta per estenderne le capacità di calcolo;
2. Software Applicativo, progettato per risolvere uno specifico problema o per
occuparsi di uno specifico compito.

Le comunicazioni
Le comunicazioni coinvolgono diversi dispositivi che comunicano gli uni con gli altri.
Due oggetti/persone per poter comunicare devono conoscere il linguaggio del mezzo
con cui avviene la comunicazione. Necessitano anche di strumenti (es. telefono,
telegrafo ecc) che hanno un loro linguaggio.

Come comunichiamo oggi?


Telefoni: la cui funzione è quella di scambiare la voce tra due persone, ma anche dati,
che avviene grazie al “modem” (mo = modulazione; dem= demodulazione).

Com’è fatta una rete per scambiarsi i dati?


Il cavo utilizzato nella rete telefonica viene chiamato “doppino telefonico” (sono due
cavi intrecciati). Oltre a questo tipo di cavo esistono altri sistemi tra cui: sistema via
cavo, cavo dsl, cavo adsl e fibra ottica (che è lo strumento fisico con cui le
informazioni viaggiano più velocemente).

Le reti wireless
Un sistema wireless trasporti i dati mediante segnali radio (quindi senza il bisogno di
fili), quindi sfruttano le radiazioni elettromagnetiche. La radiazione è un’onda di
frequenza particolare misurata in Hz, MHz o GHz. I dispositivi Ethernet wireless
operano a frequenze intorno ai 2,4-2,5 GHz o 5 GHz. I tre sistemi wireless ampiamente
usati sono: Bluetooth (pensato per le trasmissioni a brevi distanze); RFID (piccoli
sistemi di trasmissione e ricezione che trasferiscono l’identificazione come flusso di
bit); e GPS (importante sistema wireless a senso unico. I satelliti GPS inviano dati
precisi e ricevitori secondo le loro posizioni).

Rete di Calcolatori-Reti Locali/geografiche


Una rete locale: LAN (Local Area Network) connette dispositivi hardware che si trovano
fisicamente vicini, nello stesso edificio o nella stessa università. Per le LAN, il
proprietario delle macchine è anche il proprietario dei mezzi di comunicazione: non
occorre acquistare servizi forniti da terzi, come la compagnia telefonica. Il modello più
diffuso di LAN è chiamato Ethernet che utilizza uno bus (spazio) fisico condiviso.
La rete della città di Salerno è una rete MAN.
La rete di tutto il mondo è un rete WAN.
Internet
La rete Internet è una rete WAN perché connette tutto il mondo, però ha delle
caratteristiche particolari.

La storia di Internet
Internet nasce negli anni 60 allo scopo di collegare computer situati a grandi distanze
geografiche. Nel 1969, il Dipartimento della Difesa commissionò ARPANET, con lo
scopo di promuovere la ricerca per un piano di rete nazionale militare; il primo
collegamento fu stabilito tra due computer dell’Università della California (UCLA) e
dello Stanford Research Institute. ARPANET fu progettata sin dall'inizio per resistere
bene in caso di difficoltà e per evitare problemi di traffico. Non è una rete gerarchica,
per cui la strada per collegare due punti non è sempre la stessa, ma viene decisa man
mano, in base a quella che è più conveniente. Chi decide la strada da percorrere è un
computer che si chiama router.
Internet è gestita da un gruppo di volontari, conosciuto come ISOC (Internet Society).
Secondo il rapporto annuale dell’Unione internazionale delle telecomunicazioni (Uit),
istituzione dell’Onu, nel 2021, sarebbero circa 4,9 miliardi le persone utilizzano il Web.

I pilastri di Internet
I tre pilastri su ci si poggia la rete Internet sono: nomi e indirizzi, percorsi e accordi.
Gli indirizzi che consentono l'identificazione di reti e computer (l'equivalente di una
rubrica
telefonica). Bisogna essere in grado di trovare percorsi tra calcolatori che non sono
connessi direttamente. Bisogna inoltre essere d'accordo sul modo in cui le
informazioni sono formattate e si muovono (gli accordi riguardano: i formati dei dati,
chi comunica per primo, possibili risposte, come vengono trattati gli errori…). Internet
è gestita mediante protocolli. Un protocollo è l’insieme di regole per interagire con
un'altra parte.

Internet: indirizzamento
1. Ogni computer deve avere un indirizzo che lo identifichi in modo univoco tra tutti
gli altri presenti su Internet. Tale numero, detto indirizzo IP, può essere di 32 o 128
bit. Normalmente un'autorità centrale assegna un blocco di indirizzi IP consecutivi
all'amministratore, che li distribuisce ai singoli dispositivi. Uno schema globale e
gerarchico di indirizzamento identifica univocamente ogni utente ovunque
localizzato nel mondo: l’email. Es. “[email protected]” identifica l’utente Mario
Casillo con un account su un calcolatore il cui indirizzo di rete è rappresentato da
ciò che sta a destra di at, @; il calcolatore è situato nell’Università di Salerno
(unisa), in Italia (it).
2. Questo schema di indirizzamento viene chiamato DNS (Domain Name System).
Questo associa l’indirizzo logico a quello fisico.Negli USA, l’ultima parte non
identifica lo stato, ma il tipo di sito: commerciale (.com), universitario (.edu),
governativo (.gov), militare (.mil), organizzazioni no profit (.org).
3. Nella rete Internet due computer si parlano/si scambiano informazioni attraverso
un protocollo che si chiama TCP/IP (Transmissione Contro Protocol/Internet
Protocol).

Internet: percorsi
Deve esserci un meccanismo per trovare un percorso per ogni pacchetto, dall'origine
alla destinazione. Se ne occupano i router, che si scambiano continuamente
informazioni su quale dispositivo è connesso all'altro e le usano per inviare ciascun
pacchetto in arrivo al router più vicino alla destinazione finale.
Internet: gli accordi
Bisogna inoltre essere d'accordo sul modo in cui le informazioni sono formattate e si
muovono (gli accordi riguardano: i formati dei dati, chi comunica per primo, possibili
risposte, come vengono trattati gli errori…).

World Wide Web


Internet è la rete. Sulla rete si possono fare vari servizi: mandare mail, scambiare file,
e il servizio www che prende una pagina che sta sul computer, la copia e la mette a
video tramite dei browser (Microsoft, Internet Explorer, Google Chrome).

L’URL
Uniform Resource Locator (URL) identifica una risorsa indicando l’indirizzo presso cui
reperirla. Gli URL consistono di 3 parti (divise dello /): il nome del protocollo da
utilizzare per l’accesso alla risorsa (es. http, ftp, mailto, …); il nome del computer dove
noi troviamo la pagina (si può usare sia l’IP address che il nome logico); il percorso ed
il nome della risorsa (detto pathname).
Esempio: http://webs.students.dsc.unibo.it/calendario.html
ftp://cs.unibo.it/pub/techreports/2000_01.ps.gz
Dove ftp:// è il protocollo
cs.unibo.it/pub/techreports è il percorso
2000_01.ps.gz è la risorsa

Esistono due modalità di ricerca di un argomento: o con il Web Search Engine (sono i
motori di ricerca es. google) o con il Subject Tree (es. yahoo, galaxy einet).
Web Search Engine
I motori di ricerca si basano su database di pagine indicizzate.
Ogni pagina viene archiviata con alcune parole chiavi associate.
Questa ricerca avviene attraverso due tipologie:
1. Full text indexing: tutte le parole presenti nella pagina vengono considerate parole
chiave.
2. Selective text indexing: solo le parole ritenute più importanti vengono considerate
parole chiave.
Le pagine vengono visitate dai motori di ricerca tramite strumenti detti spider.
Comunque il programma spider non riesce a visualizzare tutte le pagine che esistono
nel mondo perché solitamente queste appartengono al dark web.

Quindi quando un utente si connette a un sito web:


1. Il browser analizza l’URL.
2. Chiede al DNS server l’indirizzo IP corrispondente al dominio contenuto nell’URL.
3. Effettua una connessione al server corrispondente all’IP ricevuto e invia una
richiesta per il file indicato nell’URL.
4. Il server risponde inviando il file richiesto.
5. Il browser interpreta (linguaggio HTML) il file ricevuto, visualizzandolo secondo le
specifiche in esso contenute.

Linguaggio HTML (Hyper Text Markup Language)


È il linguaggio con cui viene scritta una pagina web.
Hyper text: che cosa è un ipertesto? È un sistema di organizzazione delle informazioni
in una struttura reticolare, costituito da un insieme di unità informative (nodi) e da un
insieme di collegamenti (link) che da un nodo permettono di passare ad altri nodi.
Markup Language: significa “marcare”. L’uso più comune consiste nella modifica
della formattazione del testo, cioè marcando alcune parti di esso come grassetto o
corsivo, cambiando le dimensioni delle lettere o dei margini, per menzionare solo
alcuni esempi.

Regole per scrivere una pagina web


Prima di inserire il testo bisogna definire qual’è il marcatore (tag). Come fare? Scrivo:
<marcatore> (es. per il grassetto è <b>, per il corsivo è <i>). Quando poi voglio che
il computer ritorni a scrivere in modo normale scrivo: </marcatore> (es. </b>, </i>).
Per dare un’attributo ad un marcatore (es. il colore) scrivo boh. Esistono anche tag
singoli, come <br> (andare a capo) o <hr> (inserire una riga).

Com’è fatta una pagina web


Schema: <HTML> <HEAD> </HEAD> <BODY> </BODY> </HTML>
Quindi la pagina web è costituita da due sezioni:
1. <HEAD> dove c’è la descrizione delle caratteristiche del documento. Questa parte
contiene: il titolo <TITLE> del documento (quello che comparirà nella barra del
titolo della scheda del browser); e i metadata <META> che contengono
informazioni sull’autore del documento, editor usato, una descrizione del
contenuto, le parole chiave descrittive del documento, ecc. La parte <HEAD> noi
non la vediamo.
2. <BODY> dove c’è il documento vero e proprio. La parte <BODY> noi la vediamo.

Headers
<H1> Titolo 1 </H1> ... <H6> Titolo 6 </H6>
Permettono di indicare quali parti di testo vengono usate come titoli.
H1, ..., H6 sono usati anche per controllare le dimensioni dei caratteri: H1 corrisponde
a caratteri grandi, mentre H6 a caratteri piccoli.

Aggiungere i commenti
<!-- testo del commento -->
Non viene visualizzato dal browser e contiene informazioni di varia natura (ad
esempio, per spiegare parti di codice).
(possibile domanda: che cos’è un commento in un linguaggio di programmazione?
Sono le note che noi scriviamo per capire il senso del programma, ma che non
vengono eseguite dal computer).

Come scrivere il documento


1. Creare e aprire un "nuovo documento di testo" (blocco note).
2. Scrivere il documento.
3. Salvare il lavoro assegnando al file l’estensione «.html» (es. "sito.html");
l’estensione fa capire al sistema il “tipo di file”.
4. Per visualizzare il risultato, chiudere il file e aprirlo con doppio clic. Il file verrà
aperto con il browser predefinito, perché il sistema operativo sa che i file .html
sono interpretabili dal browser.
5. Per modificare il documento, aprire il file con il Blocco note (fare click sul con il
tasto destro del mouse, scegliere l’opzione Apri con e poi selezionare Blocco note),
salvare le modifiche e quindi aggiornare la pagina del browser, tenendo aperte
entrambe le finestre.

Potrebbero piacerti anche