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


FONDAMENTI DI INFORMATICA, Appunti di Fondamenti di informatica

riassunto di fondamenti di informatica, scritti in modo chiaro e ordinato.

Tipologia: Appunti

2024/2025

Caricato il 17/12/2025

giorgialupen2
giorgialupen2 🇮🇹

2 documenti

1 / 42

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
FONDAMENTI INFORMATICA
1 LEZIONE
Informatica:
-Trattare o elaborare in modo automatico l’informazione
-Soluzione dei problemi in maniera automatica / automatizzata
Il dato-> anche l’espressione Gatto Bianco è un altro dato
Il colore bianco dei gatti dipende gene dominante W che non permette agli altri colori di
manifestarsi. Il gatto bianco quindi è sempre e solamente uniforme come colore. Spesso i
gatti totalmente bianchi sono sordi, e soffrono più facilmente di tumore alla pelle.
La codifica del mondo naturale in simboli e la loro manipolazione in maniera automatica è
uno dei compiti principali dell’informatica.
STORIA:
Macchina di Anticitera (150-100 a.C.) Planetario, mosso da ruote dentate, che serviva
per calcolare il sorgere del sole, le fasi lunari, i movimenti dei cinque pianeti allora
conosciuti, gli equinozi, i mesi, i giorni della settimana e forse le date dei giochi olimpici.
Pascalina è uno strumento di calcolo precursore della moderna calcolatrice. Fu inventata
nel 1642 dal matematico e filosofo francese Blaise Pascal. Lo strumento consente di
addizionare e sottrarre numeri composti da un massimo di dodici cifre, operando
automaticamente i riporti.
CHARLES BABBAGE
Charles Babbage (1791-1871) fu un matematico, filosofo e scienziato britannico,
considerato uno dei pionieri dell'informatica. È noto per aver ideato il primo calcolatore
programmabile. Realizzò un prototipo imperfetto della sua prima macchina, la macchina
differenziale, mentre la seconda, la macchina analitica, rimase solo un progetto.
Modello dimostrativo di parte della Macchina Analitica di Charles Babbage:
Analytical Engine
Memoria espandibile
Unità aritmetica
Capacità di procedimento logico, in grado di interpretare un linguaggio di
programmazione.
Capacità di memoria < 1kB ?
Clock < 10 Hertz ?
-Ada Lovelace (1815-1852) tradusse in inglese la lezione di Babbage sulla Macchina
Analitica, originariamente trascritta in francese da Luigi Menabrea nel 1840 e pubblicata
nel 1842. La sua traduzione, arricchita da note, fu pubblicata nei Scientific Memoirs nel
1843 con la sigla AAL. In particolare, una delle sue note conteneva un algoritmo per
calcolare i numeri di Bernoulli, considerato uno dei primi esempi di programmazione.
Il motore analitico di Babbage, secondo Ada Lovelace, non si limitava a operare con
numeri, ma poteva essere utilizzato anche per altri ambiti, a condizione che le relazioni tra
gli oggetti di questi ambiti fossero espressibili tramite operazioni matematiche astratte.
Un esempio che Ada fa è la musica: se le relazioni dei suoni intonati nella composizione
musicale potessero essere tradotte in termini matematici, il motore analitico sarebbe stato
capace di comporre pezzi musicali complessi, proprio come fa con i numeri.
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a

Anteprima parziale del testo

Scarica FONDAMENTI DI INFORMATICA e più Appunti in PDF di Fondamenti di informatica solo su Docsity!

FONDAMENTI INFORMATICA

1 LEZIONE

Informatica:

- Trattare o elaborare in modo automatico l’informazione

- Soluzione dei problemi in maniera automatica / automatizzata

Il dato-> anche l’espressione Gatto Bianco è un altro dato Il colore bianco dei gatti dipende gene dominante W che non permette agli altri colori di manifestarsi. Il gatto bianco quindi è sempre e solamente uniforme come colore. Spesso i gatti totalmente bianchi sono sordi, e soffrono più facilmente di tumore alla pelle. La codifica del mondo naturale in simboli e la loro manipolazione in maniera automatica è uno dei compiti principali dell’informatica. STORIA: Macchina di Anticitera (150-100 a.C.) Planetario, mosso da ruote dentate, che serviva per calcolare il sorgere del sole, le fasi lunari, i movimenti dei cinque pianeti allora conosciuti, gli equinozi, i mesi, i giorni della settimana e forse le date dei giochi olimpici. Pascalina è uno strumento di calcolo precursore della moderna calcolatrice. Fu inventata nel 1642 dal matematico e filosofo francese Blaise Pascal. Lo strumento consente di addizionare e sottrarre numeri composti da un massimo di dodici cifre, operando automaticamente i riporti. CHARLES BABBAGE Charles Babbage (1791-1871) fu un matematico, filosofo e scienziato britannico, considerato uno dei pionieri dell'informatica. È noto per aver ideato il primo calcolatore programmabile. Realizzò un prototipo imperfetto della sua prima macchina, la macchina differenziale, mentre la seconda, la macchina analitica, rimase solo un progetto. Modello dimostrativo di parte della Macchina Analitica di Charles Babbage: Analytical Engine ● Memoria espandibile ● Unità aritmetica ● Capacità di procedimento logico, in grado di interpretare un linguaggio di programmazione. ● Capacità di memoria < 1kB? ● Clock < 10 Hertz? -Ada Lovelace (1815-1852) tradusse in inglese la lezione di Babbage sulla Macchina Analitica, originariamente trascritta in francese da Luigi Menabrea nel 1840 e pubblicata nel 1842. La sua traduzione, arricchita da note, fu pubblicata nei Scientific Memoirs nel 1843 con la sigla AAL. In particolare, una delle sue note conteneva un algoritmo per calcolare i numeri di Bernoulli, considerato uno dei primi esempi di programmazione. Il motore analitico di Babbage, secondo Ada Lovelace, non si limitava a operare con numeri, ma poteva essere utilizzato anche per altri ambiti, a condizione che le relazioni tra gli oggetti di questi ambiti fossero espressibili tramite operazioni matematiche astratte. Un esempio che Ada fa è la musica: se le relazioni dei suoni intonati nella composizione musicale potessero essere tradotte in termini matematici, il motore analitico sarebbe stato capace di comporre pezzi musicali complessi, proprio come fa con i numeri.

In sostanza, Ada Lovelace suggerisce che il motore analitico avrebbe potuto essere applicato non solo ai numeri, ma anche a qualsiasi campo che potesse essere descritto da regole matematiche, come la musica, la letteratura, o altre forme di arte e scienza. L'Algebra di Boole è un sistema matematico che si occupa di operazioni logiche, utilizzato principalmente nell'informatica e nell'elettronica. In questa algebra, le proposizioni logiche possono assumere solo due valori: 0 (falso) o 1 (vero). Le operazioni fondamentali in Algebra di Boole sono:

  • Somma logica (AND, ^): Restituisce 1 (vero) solo se entrambe le proposizioni coinvolte sono vere.
  • Prodotto logico (OR, v): Restituisce 1 (vero) se almeno una delle proposizioni è vera.
  • Negazione (NOT, ¬): Inverte il valore di una proposizione; se è 1 (vero), diventa 0 (falso), e viceversa. Queste operazioni sono alla base della logica digitale e sono utilizzate per costruire circuiti logici e per il trattamento delle informazioni nei computer. I due teoremi di incompletezza di Gödel sono risultati fondamentali nella logica matematica, che riguardano i limiti di qualsiasi sistema formale che possa descrivere l’aritmetica:
    1. In ogni teoria matematica che contenga l'aritmetica, esiste una formula che non può essere né provata né confutata, a meno che il sistema non sia incoerente.
    2. Nessun sistema che sia abbastanza potente da includere l'aritmetica e coerente, può dimostrare la propria coerenza. Questi teoremi rivelano i limiti fondamentali dei sistemi matematici. Gödel ha dimostrato che nessun sistema che contenga l'aritmetica può essere sia completo che coerente al tempo stesso. C'è sempre qualcosa che il sistema non può provare o smentire, e non può neppure provare la sua stessa coerenza se è davvero coerente. La Tesi di Church-Turing afferma che se un problema matematico è calcolabile da un essere umano, allora esiste un metodo meccanico (o algoritmo) per risolverlo. Questa tesi è ampiamente accettata, ma non è dimostrabile. La Macchina di Turing è un modello teorico di calcolatore inventato da Alan Turing, che serve per descrivere i processi di calcolo in modo formale. È composta da:
  • Alfabeto finito di simboli, che include anche il simbolo "blank" (vuoto).
  • Un nastro di lunghezza infinita suddiviso in celle, ognuna delle quali contiene un simbolo dell'alfabeto.
  • Una testina che:
  • Legge il simbolo di una cella alla volta (cella corrente).
  • Scrive un simbolo sulla cella.
  • Si sposta a destra o a sinistra lungo il nastro.
  • Un insieme finito di stati: uno stato iniziale e uno o più stati finali.
  • Una tabella delle azioni: una lista che descrive cosa fare in base allo stato corrente e al simbolo letto. Ogni riga della tabella contiene:
  • Lo stato corrente.
  • Il simbolo letto dalla testina.

IL TEST DI TURING (O IMITATION GAME) è un esperimento in cui un valutatore umano interagisce in forma scritta con due interlocutori: una macchina e un essere umano. Lo scopo del test non è valutare la correttezza delle risposte, ma vedere quanto le risposte della macchina possano sembrare simili a quelle di un umano. Se la macchina riesce a ingannare il valutatore, facendogli credere di essere umana, ha superato il test. STORIA SULLA TECNOLOGIA

  • (^) La Z3 (1936-1951), ideata da Konrad Zuse (1910-1995), è stato il primo elaboratore digitale elettromeccanico, programmabile e automatico. Utilizzava relè elettromagnetici per il calcolo e un nastro perforato come dispositivo di memoria.
  • (^) Colossus (1943-1945), progettato da Thomas Harold Flowers (1905-1998), è stato il primo elaboratore digitale elettronico, programmabile e automatico. Utilizzava un nastro perforato come dispositivo di memoria.
  • (^) L'ENIAC (1943-1945), progettato da John Mauchly e John Presper Eckert, è stato il primo computer digitale elettronico, di grandi dimensioni e per uso generale al mondo. Viene anche definito un integratore numerico elettronico.
  • (^) L'EDVAC (1946-1949) è stato un computer elettronico universale (general-purpose) che utilizzava aritmetica binaria invece di quella decimale. Era caratterizzato da un unico dispositivo di memoria per dati e istruzioni. VON NEUMANN L'architettura di von Neumann prevede sistemi universali (general-purpose) con un sistema unico di memoria per dati e istruzioni. Utilizza aritmetica binaria per semplificare la gestione nei circuiti elettronici. Inoltre, separa i dispositivi di memoria da quelli di elaborazione e introduce il bus, un canale di comunicazione tra la CPU, i sottosistemi (memoria, I/O) e la CPU stessa. Il collo di bottiglia (bottleneck) di von Neumann si verifica quando le CPU elaborano dati molto più velocemente di quanto il bus possa trasferirli, limitando così la velocità complessiva del sistema.

2 LEZIONE

CODIFICA, RAPPRESENTAZIONE, MEMORIA

  • Il dato è espresso con simboli La rappresentazione del dato "cinque" può avvenire in diversi alfabeti o sistemi di numerazione: -^5 : cifra araba, il sistema numerico più comune. - V: cifra romana, usata nell'antica Roma. - ε: cifra greca, usata nell'alfabeto greco per rappresentare il numero cinque. - ۵ : cifra araba/persiana, usata nei paesi di lingua persiana e araba. - 五 : cifra cinese, utilizzata nella scrittura cinese. -^111110 :^ codifica unaria, dove il numero è rappresentato da una sequenza di 1, con uno 0 che separa i numeri (in alternativa, può essere rappresentato come 000001). -^101 :^ codifica binaria, un sistema numerico basato su 0 e 1. Spiegazione: Questi diversi simboli rappresentano lo stesso valore numerico "5" ma in diversi sistemi di scrittura o codifica, ognuno con il suo contesto culturale o tecnico. La codifica binaria e unaria sono esempi di rappresentazioni utilizzate nei calcolatori per esprimere numeri in formato digitale. IL SISTEMA BINARIO Il sistema binario è un sistema numerico che utilizza solo due simboli: 0 e 1, chiamati bit (da "Bi(nary Digi)t", cioè "cifra binaria"). Questi due simboli rappresentano l'alfabeto del sistema binario, e possono essere espressi in vari modi:
  • Cifre arabe: 1 e 0.
  • Si/no (Y/N).
  • Vero/falso (T/F).
  • Vuoto/pieno. Spiegazione: Il sistema binario è alla base del funzionamento dei computer, che usano 0 e 1 per rappresentare e manipolare dati. Questi bit possono essere interpretati in vari contesti (ad esempio, "sì" o "no", "vero" o "falso"), ma alla fine, in un calcolatore, sono sempre utilizzati per effettuare operazioni numeriche o logiche. Il sistema binario è ideale per essere rappresentato su dispositivi bistabili, che possono assumere due stati distinti. Questi dispositivi sono in grado di distinguere tra due condizioni, che possono essere utilizzate per rappresentare i simboli 0 e 1. Ecco alcuni esempi di come il sistema binario può essere rappresentato su vari dispositivi: - Nastro o scheda perforata: la presenza o assenza di fori rappresenta i bit. - Presenza/assenza di elettricità in un circuito: 0 per l'assenza di elettricità e 1 per la sua presenza. - Valvola termoionica: il flusso di corrente (1) o la sua assenza (0) rappresentano i bit. - Transistor: un transistor può essere acceso (1) o spento (0). - Presenza/assenza di carica elettrica: una carica elettrica può rappresentare 1, mentre l'assenza di carica rappresenta 0. - Polarizzazione di sostanza magnetizzabile: la polarizzazione può essere "su" (1) o "giù" (0).

- Codice standard americano: È stato sviluppato per facilitare lo scambio di informazioni tra diversi dispositivi elettronici, come computer e stampanti, usando un set di caratteri comune. - Pubblicazione: ASCII è stato pubblicato nel 1968 dall'American National Standards Institute (ANSI). - Base 8 bit (7+1): ASCII originariamente utilizzava 7 bit per rappresentare ogni carattere, ma è stato comunemente implementato su 8 bit (7 bit per i dati e 1 bit di parità per il controllo degli errori). - Base reale 7 bit (2^7): In realtà, ASCII utilizza 7 bit per rappresentare 128 simboli (da 0 a 127), come lettere, numeri, punteggiatura e simboli di controllo. Ciò significa che il sistema può rappresentare un totale di 128 possibili caratteri. In sintesi, l'ASCII è un sistema di codifica fondamentale che permette la comunicazione di testo tra dispositivi elettronici usando una rappresentazione numerica dei caratteri basata su 7 bit, con una gamma di 128 simboli. BetaCode è un sistema di codifica che permette di rappresentare il greco polifonico (cioè il greco antico con accenti, spiriti e altre segni diacritici) utilizzando solo caratteri ASCII. Questo sistema non è solo un tentativo di "romanizzare" l'alfabeto greco, ma serve a rappresentare in modo accurato testi greci, mantenendo anche la formattazione e le forme grafiche più complesse. - Inventato: BetaCode è stato creato da^ David W. Packard^ alla fine degli anni 1970. - Adottato dal Thesaurus Linguae Graecae: Nel 1981, è stato utilizzato dal Thesaurus Linguae Graecae, un progetto che raccoglie testi greci antichi. - Adottato dal Perseus Project: È stato adottato anche dal Perseus Project, che digitalizza e rende disponibili risorse storiche e linguistiche. In pratica, BetaCode è una soluzione che permette di digitare correttamente il greco antico su computer, utilizzando solo caratteri standard ASCII, utile per la ricerca e la conservazione dei testi antichi. FONT Un font è un insieme di glifi (simboli grafici) che rappresentano caratteri specifici, come lettere, numeri o simboli, all'interno di una casella di codifica. Oggi il sistema più avanzato è Unicode, che ha migliaia di caselle per rappresentare caratteri diversi e sistemi di scrittura Un font è una mappa di glifi che corrispondono alle caselle di un sistema di codifica (come Unicode), ma non esistono font universali per coprire tutti i caratteri Unicode, e le caselle private vengono implementate in modo personalizzato per specifiche necessità. 3 LEZIONE Text encoding & markup Il testo non è solo una sequenza di caratteri ma una codifica simbolica per esprimere qualcosa. Il testo prima di essere studiato con l’aiuto delle macchine, deve essere codificato in “machine readable”, ovvero deve essere leggibile per mezzo delle macchine. infatti

quando si lavora con le macchine, bisogna preoccuparsi che ciò che inseriamo sia leggibile per le macchine. Il testo deve avere una struttura logica e fisica, quindi devo preoccuparmi anche che quest’ultimo sia leggibile e comprensibile per la macchina con cui stiamo lavorando. ANNOTAZIONE / MARKUP DEL TESTO / MARCATURA Si tratta di uno strumento che noi usiamo da sempre. chiamiamo “ANNOTAZIONE” qualsiasi tipo di informazioni aggiuntive che inseriamo nel testo che sappiamo che possono essere in grado di aiutarmi a comprendere di più il testo. Es: la sottolineatura= graficamente sta rendendo un’informazione e la sto evidenziando come un qualcosa di più importante: l’informazione che sto annotando mi aiuta a comprendere di più il testo che sto analizzando. Un altro esempio è l’annotazione ai margini del testo: aggiungere informazioni / collegamenti che possono aiutarmi a comprendere con più facilità ciò che sto analizzando. La marcatura di un testo, nel senso più generale possibile, è un modo per fornire informazioni sulla struttura di un testo, per identificare le sua parti logiche e strutturali e infine per fornire indicazioni su suoi ulteriori elaborazioni. CHICAGO MANUAL OF STYLE Sono dei modi standard per rendere più possibile uniforme la marcatura dei testi, per far sì che la comunicazione sia più semplice e più veloce. Anche quando la finalità è una comunicazione tra due umani, nel tempo si è creato un linguaggio per comprendersi più facilmente. Iniziarono quindi a formalizzare i sistemi intuitivi, che non sono universali ma ogni casa editrice ha il proprio linguaggio. Plain Text and formatted text Nel testo piano vengono forniti alla macchina delle informazioni che ritroveremo nel testo formattato, ad esempio mettendo il grassetto o aggiungendo link (collegamento ipertestuale). Marcatori: porzioni di testo finalizzato per la macchina. Esempio:

  1. Testo normale Dante Alighieri, o Alighiero, battezzato Durante di Alighiero…
  2. Testo marcato con macro, istruzioni per la resa grafica [da qui] Dante Alighieri[a qui rendere: grassetto], o [da qui]Alighiero [a qui rendere: grassetto], battezzato [da qui] Durante di Alighiero[a qui: rendere grassetto]...
  3. Testo formattato in maniera automatica Dante Alighieri, o Alighiero, battezzato Durante di Alighiero...

La struttura ad albero/ gerarchico astratto è uno strumento molto importante ed è tipico di come strutturiamo il testo tradizionalmente. È una struttura alla base delle prime codifiche su base elettroniche. Uno dei primi tentativi per ottenere una marcatura si chiama : SGML In generale abbiamo dei codici di controllo all’interno di un testo che fa sì che un documento venga formattato da un computer. Dagli anni 70 viene portata avanti l’idea di costruire un sistema in grado di marcare qualsiasi testo in formato elettronico. Quindi formare un documento che qualsiasi altro computer sia in grado di comprenderlo.

  1. Il concetto generico di codifica Storicamente, i manoscritti elettronici contenevano codici di controllo o macro che facevano sì che il documento fosse formattato in un modo particolare (codificazione specifica). Al contrario, la codifica generica, iniziata alla fine degli anni '60, utilizza tag descrittivi (ad esempio, 'titolo' piuttosto che 'formato-17). Molti attribuiscono l'inizio del movimento di codifica generica a una presentazione fatta da William Tunnicliffe, presidente del comitato di composizione della Graphic Communications Association (GCA), durante una riunione presso la Canadian Government Printing Office nel settembre 1967: il suo tema - la separazione del contenuto informativo dei documenti dal loro formato. Sempre alla fine degli anni '60, un book designer di New York di nome Stanley Rice propose l'idea di un catalogo universale di tag parametrizzati per la 'struttura editoriale'. Norman Scharpf, direttore del GCA, ha riconosciuto l'importanza di queste tendenze e ha istituito un progetto generico di codifica nel comitato di composizione.

Il comitato ha sviluppato il concetto 'GenCode(R), riconoscendo che erano necessari codici generici diversi per tipi di documenti diversi e che i documenti più piccoli potevano essere incorporati come elementi di quelli più grandi. Il progetto si è evoluto nel Comitato GenCode, , che in seguito ha svolto un ruolo determinante nello sviluppo dello standard SGML.

  1. GML e SGML: linguaggi per la codifica generica Nel 1969, Charles Goldfarb era a capo di un progetto di ricerca IBM sui sistemi integrati d'informazione degli uffici legali. Insieme a Edward Mosher e Raymond Lorie ha inventato il Generalized Markup Languages (GML) come mezzo per consentire ai sottosistemi di modifica del testo, formattazione e recupero delle informazioni di condividere i documenti. GML (che, non a caso, comprende le iniziali dei suoi tre inventori) si basava sulle idee generiche di codifica di Rice e Tunnicliffe. Invece di un semplice schema di marcatura, GML ha introdotto il concetto di un tipo di documento formalmente definito con una struttura esplicita di elementi nidificati. La maggior parte del GML è stata implementata nei sistemi di pubblicazione a livello industriale da IBM e altri, ottenendo una notevole accettazione da parte dell'industria. La stessa IBM, considerata il secondo editore al mondo, ha adottato GML e ora produce con esso oltre il 90% dei suoi documenti. Dopo il completamento di GML, Goldfarb ha continuato la sua ricerca sulle strutture dei documenti, creando concetti aggiuntivi, come brevi riferimenti, processi di collegamento e tipi di documenti concorrenti, che non facevano parte di GML ma sarebbero stati sviluppati in seguito nel l'ambito di SGML.
  2. Sviluppo di SGML come norma internazionale Nel 1978, l'American National Standard Institute (ANSI) comitato per il trattamento delle informazioni ha istituito il Computer Languages for the Processing of Text comitato, presieduto da Charles Card, di Univac, con Norman Scharpf come membro. Goldfarb è stato invitato a far parte del comitato e, infine, a condurre un progetto per uno standard di linguaggio di descrizione testuale basato su GML. Il comitato GCA GenCode ha sostenuto lo sforzo e ha fornito un nucleo di persone dedicate per il compito di sviluppare il progetto linguistico di base di Goldfarb per SGML in uno standard. La prima stesura della norma SGML è stata pubblicata nel 1980. Nel 1983, il GCA ha potuto raccomandare la sesta bozza di lavoro come standard del settore (GCA 101-1983). I principali utilizzatori sono stati il Internal Revenue Service (IRS) e il Dipartimento della Difesa degli Stati Uniti.

5 LEZIONE

ALGORITMI, LINGUAGGI, SOFTWARE E OS

Algoritmo: è una sequenza di istruzioni per realizzare un trattamento dell’informazione, he vengono seguiti per risolvere un problema o svolgere un compito. In sintesi, un algoritmo è una sequenza di operazioni che richiede un esecutore (umano o macchina) per essere realizzato e completato con successo. Un algoritmo è un insieme di istruzioni che un esecutore segue per elaborare dei dati in input, eseguire operazioni su di essi e restituire dei dati in output (input/output o I/O). In altre parole, l'esecutore riceve i dati, li elabora seguendo l'algoritmo e produce il risultato finale.

  • (^) deve essere scritto in un linguaggio comprensibile all’esecutore, senza ambiguità. Un algoritmo può richiedere l'esecuzione di altri algoritmi, che possono essere forniti o già esistenti, come parte del suo processo per risolvere un problema più complesso. In questo modo, un algoritmo può "combinare" altri algoritmi per ottenere il risultato desiderato.
  • (^) deve prevedere un numero finito di istruzioni
  • (^) Deve essere deterministico, eseguito dallo stesso input deve dare lo stesso output.
  • (^) può essere parametrico, ovvero essere applicato non solo ad un dato specifico ma ad una classe intera di dati Un linguaggio di programmazione è un linguaggio formale utilizzato per scrivere algoritmi destinati a essere eseguiti su un calcolatore. Linguaggio formale ≠ Linguaggio naturale: I linguaggi di programmazione sono molto diversi dai linguaggi naturali (come l'italiano o l'inglese), in quanto seguono regole precise e sintassi rigorosa che devono essere rispettate per essere compresi e eseguiti dal computer. Invece, i linguaggi naturali sono più flessibili e ambigui. Uso: Un linguaggio di programmazione viene utilizzato per scrivere algoritmi, che sono poi eseguiti dal computer per svolgere compiti specifici, come calcoli, operazioni su dati o interazione con altri software. Un programma o software è un algoritmo scritto in un determinato linguaggio di programmazione, rappresentato sotto forma di testo. In pratica, un programma consiste in una serie di istruzioni (l'algoritmo) che sono scritte usando un linguaggio che il computer può capire e eseguire. Queste istruzioni vengono poi tradotte in un formato che il computer può eseguire per svolgere un compito specifico. Stesso algoritmo implementato in due linguaggi => due software diversi L'ambiguità del linguaggio naturale si riferisce alla possibilità che una parola o una frase possa essere interpretata in modi diversi a causa di vari fattori. Ecco i principali tipi di ambiguità:
  1. omografi: prèsidi/presìdi | prìncipi/princìpi
  2. omofoni: anno/hanno | a letto, al letto, all'etto, alletto, ha l'etto
  3. omonimi: miglio
  4. enantiosemia: ospite | affittare | pauroso | feriale
  1. Semantica: la stessa parola indica due concetti diversi, anche opposti, polisemia (significati diversi, ma stesso ambito, es.: albero come pianta e come parte di nave) e omonimia (coincidenza puramente formale, miglio)
  2. Sintattica: varie interpretazioni per la sintassi di una frase: “Giorgio vide l’uomo dentro il parco con il telescopio”
  3. Lessicale: la stessa parola può rappresentare categorie lessicali diversi: leggere (v | a), pesca (n | v), telefonino (n | v cong.pres. 3 pl.)
  4. Pragmantica, quando una frase può avere varie funzioni, delle quali una può essere percepita come più importante in un dato contesto: “Il teatro è sulla destra” I LINGUAGGI I linguaggi di programmazione si dividono in linguaggi di alto livello e linguaggi di basso livello, a seconda della loro astrazione dal funzionamento interno del computer. 1. Linguaggi di alto livello: Sono linguaggi più vicini al linguaggio umano e più facili da usare. Permettono agli sviluppatori di scrivere codice che è più comprensibile e leggibile. Esempi includono Basic, Pascal, C, C++, Java, LISP, PHP, Python, ecc. Questi linguaggi astraggono i dettagli complessi dell'hardware e sono più facili da scrivere e mantenere. 2. Linguaggio assemblatore (Assembly): È un linguaggio di basso livello che è molto più vicino al linguaggio macchina, ma ancora comprensibile per gli esseri umani. Permette di scrivere istruzioni che sono direttamente tradotte in codice macchina, ma usa simboli e mnemotecniche anziché numeri binari puri. 3. Linguaggio macchina (basso livello): È il linguaggio che il computer "capisce" direttamente, composto da sequenze di 0 e 1 (bit), come 010101000111. Ogni comando o operazione è rappresentato da una sequenza di numeri binari che il processore esegue. In sintesi, i linguaggi di alto livello sono più facili da usare e astraggono i dettagli complessi, mentre i linguaggi di basso livello, come l'assembly e il linguaggio macchina, sono più vicini all'hardware e richiedono una maggiore conoscenza del funzionamento interno del computer. INTERPRETE- COMPILATORE- ASSEMBLATORE SISTEMA OPERATICO (OS) Un Sistema Operativo (OS) è un software che gestisce l'hardware di un computer e fornisce servizi per i programmi applicativi. I principali componenti di un sistema operativo includono:
  • Kernel (nocciolo/gheriglio): È la parte centrale del sistema operativo, che gestisce direttamente la CPU e coordina l'esecuzione di tutte le operazioni. Il kernel è responsabile della gestione delle risorse hardware e assicura che le operazioni siano eseguite in modo sicuro ed efficiente.
  • Gestore memoria: Si occupa di allocare e liberare la memoria RAM per i processi in esecuzione, assicurandosi che ogni programma abbia lo spazio necessario senza interferire con altri.

- 1991 : Linus Torvalds creò il kernel Linux (con il significato di "Linux is not Unix"), che divenne una parte fondamentale dei moderni sistemi operativi Unix-like, basandosi su principi simili ma con un approccio open-source. In sintesi, Unix è nato come sistema operativo sviluppato da AT&T, evolvendo nel tempo attraverso vari sviluppi e iniziative open-source come il GNU Project, culminando nella creazione del kernel Linux da parte di Linus Torvalds. 5 LEZIONE RETI E INTERNET TIPI DI RETE PAN: Personal Area Network LAN: Local Area Network MAN: Metropolitan Area Network WAN: Wide Area Network GAN: Global Area Network VPN Una VPN (Virtual Private Network) è una rete privata che utilizza una rete pubblica, come Internet, per connettere i suoi nodi. Spesso utilizza la crittografia per garantire connessioni sicure. Viene utilizzata, ad esempio, per accedere a risorse riservate all'interno di un'organizzazione e, recentemente, è molto usata per il lavoro agile (remote working). TIPI DI RETE: MEZZO DI CONNESSIONE Cablata ● Unshilded Twisted Pair + RJ-45 (1 Gbps) ● Cavo coassiale (2 Gbps) ● Fibra ottica (10Gbps) Senza fili ● Infrared Data Association ● Bluetooth ● Wireless Fidelity (WiFi) BLUETOOTH Il nome Bluetooth deriva dal re Harald "Bluetooth" Gormsson, che unì la Danimarca e la Norvegia nel 958 e aveva un dente morto di colore blu scuro, da cui il soprannome. Nel 1996 , i leader di Intel, Ericsson e Nokia si incontrarono per sviluppare una tecnologia radio a corto raggio per connettere vari dispositivi. Durante questo incontro, Jim Kardash di Intel suggerì "Bluetooth" come nome provvisorio, ispirandosi al re Harald, noto per unire la Scandinavia, proprio come la tecnologia mirava a unire i settori PC e telefonia mobile con una connessione wireless. Inizialmente, il nome era solo un segnaposto, in attesa di un nome più definitivo. IL 5G Il 5G è la quinta generazione di reti per telefonia e dati, attualmente in rapida diffusione. Utilizza onde radio per la trasmissione dei dati, come le generazioni precedenti. Le

velocità delle reti 5G variano da circa 50 Mbit/s a oltre 1 Gbit/s. La versione più veloce, basata su onde millimetriche (mmWave), ha raggiunto una velocità massima di 1,8 Gbit/s sulla rete 5G di AT&T a luglio 2019. TECNOLOGIE SATELLITARI Starlink è una costellazione di Internet satellitare gestita da SpaceX, che fornisce copertura a 40 paesi. Dopo il 2023, mira anche a offrire un servizio di telefonia mobile globale. SpaceX ha iniziato il lancio dei satelliti Starlink nel 2019. A partire da settembre 2022 , Starlink conta oltre 3.000 satelliti in orbita terrestre bassa (LEO). L'obiettivo è distribuire circa 12.000 satelliti, con una possibile estensione fino a 42.000. I satelliti comunicano con ricetrasmettitori terrestri designati. Questi eventi segnarono le tappe fondamentali che hanno portato alla creazione di internet, a partire dalle teorie sul packet switching fino alla realizzazione dei primi collegamenti tra computer distanti.

  • Nel 1961 , Leonard Kleinrock del MIT pubblicò il primo articolo sulla teoria del packet switching, che descrive come i dati possono essere divisi in pacchetti e inviati separatamente attraverso una rete per poi essere ricomposti alla destinazione.
  • Nel 1962 , Joseph C.R. Licklider del MIT introdusse il concetto di "Galactic Network", un'idea visionaria di una rete globale di computer interconnessi, che sarebbe diventata la base per lo sviluppo di internet.
  • Nel 1962 , Licklider assunse la direzione del programma di sviluppo computer presso la Defense Advanced Research Projects Agency (DARPA), contribuendo a promuovere la creazione di una rete di computer per scopi di ricerca. Nel 1965 , avvenne la prima comunicazione tra due computer attraverso una linea telefonica a bassa velocità, collegando il TX-2 in Massachusetts (MIT) e il Q-32 in California (UCLA). Questo fu un passo fondamentale verso la creazione di reti di comunicazione tra computer. La prima e-mail ci fu a fine degli anni 60 WEB Nel settembre-ottobre 1990, sono stati sviluppati i seguenti elementi fondamentali per il World Wide Web (WWW): - HTML (HyperText Markup Language): Il linguaggio di markup utilizzato per formattare e strutturare i contenuti del web. - URI (Uniform Resource Identifier): Un tipo di "indirizzo" unico usato per identificare ogni risorsa sul web, comunemente noto come URL. - HTTP (Hypertext Transfer Protocol): Il protocollo che permette il recupero delle risorse collegate su tutto il web.
  • (^) WorldWideWeb.app: primo browser/editor
  • (^) httpd: primo web server Nel 1991 , altri studiosi non appartenenti al CERN furono invitati a unirsi alla rete, aprendo la possibilità di un coinvolgimento globale. Tim Berners-Lee (TBL) dichiarò: "Se la tecnologia fosse stata proprietaria e sotto il mio totale controllo, probabilmente non

la raccolta di dati personali consente pubblicità mirate e controllo sulle informazioni. Questi problemi minano i valori originali del web. Il web è passato da uno strumento per il bene pubblico a uno dominato da forze capitalistiche, portando alla monopolizzazione. La governance, incapace di tenere il passo con l'innovazione, ha creato un divario tra i progressi tecnologici e la supervisione efficace. Il futuro dipende dalla nostra capacità di riformare il sistema, abbattendo i silos di dati, promuovendo la collaborazione e creando un mercato diversificato che favorisca la creatività. Serve un ambiente in cui voci e prospettive diverse alimentino empatia e comprensione, superando contenuti polarizzanti. Per trasformare il sistema attuale, bisogna affrontare i problemi esistenti e supportare coloro che lavorano per costruire un nuovo sistema. Sta emergendo un nuovo paradigma che mette l'intenzione individuale al centro dei modelli aziendali, restituendo il controllo sui nostri dati e creando un web più umano, allineato alla visione originale di Tim Berners-Lee. Innovatori da vari settori stanno collaborando per sviluppare tecnologie che rafforzano tutti. Piattaforme come Bluesky, Mastodon e GitHub promuovono la collaborazione e la formazione di gruppi, mentre i podcast contribuiscono alla diffusione delle conoscenze. Questo nuovo paradigma offre l'opportunità di creare un futuro digitale che privilegi il benessere, l'equità e l'autonomia umana. Il momento di agire è ora. CAMBIAMENTO FONDAMENTALE Il “Contratto per il Web” sottolinea la necessità di una collaborazione tra diverse parti interessate per riformare il web e guidare lo sviluppo delle tecnologie emergenti. Innovazioni di mercato e legislazioni lungimiranti dei governi possono facilitare questo cambiamento. I cittadini devono essere coinvolti, chiedendo standard più alti e maggiore responsabilità nelle esperienze online. Una parte della soluzione è il Solid Protocol, che fornisce a ogni individuo il controllo sui propri dati tramite un "archivio dati online personale" (POD). Questo approccio, già adottato in Fiandre, restituisce il valore ai dati personali e consente agli individui di decidere come vengono gestiti, utilizzati e condivisi i loro dati. Questo è un esempio del movimento emergente che mira a sostituire il sistema obsoleto. CHIAMATA ALL’AZIONE Per realizzare questo movimento emergente, è necessario il supporto di chi guida la riforma, come ricercatori, inventori e sostenitori. Bisogna promuovere e amplificare esempi positivi e cambiare la mentalità collettiva globale. La Web Foundation, co-fondata da Tim Berners-Lee, continuerà a supportare e accelerare questo cambiamento. Tuttavia, è urgente che anche altri sostengano la leadership coraggiosa che sta emergendo, collettivizzino le soluzioni e trasformino il web, attualmente dominato dal profitto, in uno strumento che risponda alle esigenze dell'umanità. Solo così l'ecosistema online potrà raggiungere il suo pieno potenziale, favorendo creatività, collaborazione e comprensione.

6 LEZIONE

WEB SEMANTICO

Il Web Semantico è un framework che consente di condividere e riutilizzare i dati tra diverse applicazioni, aziende e comunità. È un progetto collaborativo guidato dal W3C (World Wide Web Consortium), che coinvolge ricercatori e partner industriali. L'idea di base è che i dati sul web possano essere compresi e processati dalle macchine, non solo dagli esseri umani. Ciò permette alle macchine di interpretare e utilizzare i dati in modo più intelligente, facilitando l'automazione e migliorando la capacità di cercare, elaborare e combinare informazioni. Il Web Semantico si basa sul Resource Description Framework (RDF), che fornisce una struttura standard per rappresentare i dati e le loro relazioni. Questo framework consente di rendere i dati comprensibili anche da programmi informatici, facilitando operazioni come la ricerca automatica di informazioni, il collegamento di dati diversi e il loro riutilizzo in contesti diversi. In sintesi, il Web Semantico mira a rendere il web più "intelligente" e interconnesso, dove le macchine possano comprendere e utilizzare i dati in modo autonomo, migliorando l'efficienza e l'accessibilità delle informazioni. L'immagine classica dell'ipertesto rappresenta il web come un insieme di nodi collegati da link. Questo concetto veniva spesso utilizzato per spiegare cosa fosse l'ipertesto, mostrando come le informazioni siano connesse tra loro tramite collegamenti, proprio come nel funzionamento del web. Per un computer, il web appare come un mondo piatto e privo di significato, privo di comprensione semantica o contesto, poiché interpreta solo dati senza comprendere il loro vero significato. È un peccato, perché i documenti sul web descrivono oggetti reali e concetti astratti, stabilendo relazioni significative tra di essi. Aggiungere semantica al web significa due cose principali: rendere i documenti leggibili e comprensibili dalle macchine e permettere la creazione di collegamenti che esprimano relazioni significative tra le informazioni. Solo quando il web avrà questa semantica avanzata, potremo sfruttare appieno la capacità dei computer di elaborare e utilizzare le informazioni in modo più efficiente rispetto alla semplice lettura umana. Significa, inoltre, che le macchine non solo possono elaborare le informazioni, ma anche compiere azioni reali. Ad esempio, un programma potrebbe cercare una casa online e gestire automaticamente il trasferimento di proprietà a un nuovo proprietario. In questo scenario, il catasto garantisce che i dati sul titolo di proprietà siano accurati e corrispondano alla realtà.