Slide su Ict in Azienda 2025, Lezione 1. Il Pdf, pensato per studenti universitari di Informatica, esplora i fondamenti dell'informatica, definendo dati, informazioni, algoritmi e linguaggi di programmazione, e approfondisce l'intelligenza artificiale, illustrando percettroni e reti neurali.
See more63 Pages


Unlock the full PDF for free
Sign up to get full access to the document and start transforming it with AI.
Un computer (nell'uso oggi più comune della parola) è una macchina che elabora automaticamente simboli/dati eseguendo un programma, quindi è programmabile! Col giusto programma quel dispositivo è in grado di comportarsi in maniera diversa. Simboli = caretteri, numeri immagini e caratteri digitali L'uso della parola "simboli" sottolinea il fatto che il computer lavora con rappresentazioni astratte (numeri, lettere, istruzioni, ecc.), indipendentemente dal loro significato.
Per comprendere bene che cosa sia un computer dobbiamo capire: - che cosa siano i dati - che cosa significhi elaborare dati - che cosa sia un programma e in che modo possa determinare come vengono elaborati i dati
Esempio: Boole George 8.5 Frege Gottlob 9 Gödel Kurt 5 Peano Giuseppe 7.5 Russell Bertrand 8 Boole, George, 8.5 e così via sono dati - si tratta di dati di due diversi tipi: Boole, George ecc. sono sequenze di caratteri (chiamate stringhe in informatica); 8.5, 9 ecc. rappresentano numeri - i dati non sono disposti a caso, ma secondo una struttura ben precisa (in questo caso una tabella di 5 righe e 3 colonne) Le stringhe = sequenze di caratteri (testo)
contiene delle informazioni? E che differenza c'è fra "dato" e "informazione"? - Un dato è una rappresentazione oggettiva e non interpretata della realtà, ciò che è immediatamente presente alla conoscenza.(Es: la temeratura di oggi è "4.0") - Un dato porta informazione quando significa qualcosa: i dati dell'esempio ci forniscono informazioni se si capisce che le tre colonne della tabella rappresentano rispettivamente i cognomi e i nomi di certi studenti e le note che hanno ricevuto in un determinato esame (informazione sarebbe "4 gradi a lugano") , dipende anche dalla struttura della tabella (se si chaima un dato cambia il significato)
n L'informazione risiede non solo nei dati elementari (Boole, George, 8.5 e così via) ma anche nella struttura che li organizza (nel nostro esempio è la struttura della tabella)
Infatti, se spostiamo dei dati elementari nella tabella, ad es.l'informazione contenuta nella tabella cambia!
n Dire se le seguenti sequenze di caratteri sono dei dati o delle informazioni: Ferrari 8 Nome: Luca, Cognome: Ferrari, Voto:8 Tecnologie dell'informazione Nicoletta Fornara Matricola Corso Voto 20210001 Linguistica 7 20210002 Tec.Digitali 9 Il tipo di dati è importante per la manippolazione dei dati. Non si sommano le stringhe - la diversità dei dati è data dalle operazioni in cui ci posso fare Su excel si hanno le stringe, i numeri (le valute) decimali/interi etc. Le date sono diverse dalle stringhe e dai numeri (per calcolarle posso aggiungere dei giorni) I dati muleani dati che possono risultare ad essere veri o falsi (sono importanti per i dati aziendali)
· Elaborare dati significa sottoporre i dati a determinate operazioni per ottenere un risultato desiderato: dati in ingresso > elaborazione dati in uscitaAd esempio: Boole George 8.5 Frege Gottlob Frege Gottlob 9 Peano Giuseppe Gödel Kurt 5 > elaborazione Peano Giuseppe 7.5 Gödel Kurt 7.6 uscita una tabella contenete hanno passato il test, chi Produce in gli studenti che non l'ha passato e la media dei risultati -> Produce un algoritmo
Nell'esempio precedente l'elaborazione prende in ingresso (input): una tabella contenente cognomi, nomi e note e produce in uscita (output): - la tabella dei cognomi e nomi degli studenti promossi - la tabella dei cognomi e nomi degli studenti respinti - il valore della nota media Per ottenere questo risultato occorre eseguire determinate operazioni in un preciso ordine Ciò che specifica le operazioni da eseguire e l'ordine in cui eseguirle è un algoritmo L'elaborazione si ottiene eseguendo un programma su determinati dati: si noti che l'esecuzione dello stesso programma su dati diversi porta in generale a risultati diversi Esempio: voglio scrivere un programma che mi calcoli il percorso piu' breve per andare all'uni. Bisogna scrivere in programma nella lingua di programmazione (la liungua artificiale non l'italiano) riducendo tutto a dei calcoli.
Per scrivere un programma Un programma è costituito da due componenti principali: 1. la prima componente specifica il tipo e la struttura dei dati (in ingresso, in uscita e intermedi) su cui il programma opera 2. la seconda componente specifica l'algoritmo, ovvero le operazioni da eseguire sui dati e l'ordine in cui tali operazioni vanno eseguite (le operazioni devono essere eseguibili da un computer) In un certo senso un programma assomiglia a una ricetta di cucina, che specifica: - gli ingredienti (i dati in ingresso) - il prodotto finale (i dati in uscita) - il procedimento di preparazione (l'algoritmo)
programma tipo e struttura dei dati Esame: una tabella costituita da righe di 3 elementi, i primi 2 contenenti una stringa ciascuno e il terzo contenente un numero Promossi: una tabella costituita da righe di 2 elementi, ciascuno contenente una stringa Respinti: una tabella costituita da righe di 2 elementi, ciascuno contenente una stringa NotaMedia: un numero con parte decimale N, S: due numeri con parte decimale (dati interni) algoritmo acquisisci dall'input la tabella Esame determina il numero di righe effettivamente presenti in Esame e memorizza il risultato in N per ciascuna riga di Esame: se il terzo elemento della riga è un numero ≥ 6, trasferisci i primi due elementi della riga in Promossi altrimenti trasferisci i primi due elementi della riga in Respinti calcola la somma S di tutti i numeri contenuti nella terza colonna di Esame, dividi S per N e memorizza il risultato in NotaMedia invia in output Promossi, Respinti e NotaMedia - Algoritmo = istruzioni del programma - "If", "then" - Come si è giunti a quel risultato? Questo ci aiuta a capire se utilizzarlo o meno -> Bisogna capire se il risultato che è stato calcolato é consone ai principi etici dell'azienda (com'è fatto qesto codice?) - Codice sorgente del programma = le istruzioni del programma scritte (ci soddisfano o no?)
Non è possibile far eseguire a un computer un programma scritto come nelle diapositive precedenti: infatti il computer non capisce l'italiano e naturalmente neanche l'inglese o un'altra lingua umana
n Perché un computer possa eseguirlo, un programma dev'essere scritto in una lingua artificiale particolare, che il computer sia in grado di "comprendere" Russell Bertrand Russell Bertrand 8 Boole GeorgePer scrivere programmi si utilizzano lingue artificiali chiamate linguaggi di programmazione
n Esistono molti linguaggi di programmazioni diversi (C, C++, Java, JavaScript, Python, ... ) I programmatori esperti scelgono il linguaggio di programmazione in base al tipo di problema affrontato e, soprattutto, al contesto in cui il programma sarà utilizzato Vedremo più avanti come un computer possa "comprendere" linguaggi diversi HTML non è un linguaggio di programmazione (perchè si possono scrivere le pagine web salvo che dentro di esse ci si mette dei programmi.)
In un computer: l'hardware è costituito dai dispositivi fisici il software è costituito dai programmi e dai dati Le istruzioni dei programmi sono eseguite dalla CPU (la Central Processing Unit) Nei computer sia i programmi, sia i dati sono rappresentati utilizzando soltanto due simboli distinti (convenzionalmente denominati "0" e "1" e detti cifre binarie o bit, da "binary digit") La CPU può eseguire direttamente soltanto le istruzioni di uno specifico linguaggio di programmazione, chiamato linguaggio macchina che è fatto da comandi scritti usando solo i due simboli 0 e 1 (Le immagini diventano 0 o 1)
Ad alto livello perchà hanno bisogno di essere tresformati in in linguaggio macchina. Per essere trasferiti saranno in 0 e 1 " Il linguaggio macchina presenta due problemi:
n è assai rudimentale e praticamente illeggibile per gli esseri umani
n a CPU differenti possono corrispondere linguaggi macchina diversi (ovvero, con diverse istruzioni o con codifiche binarie diverse per le stesse istruzioni) Per questo motivo i programmatori di computer non scrivono i programmi direttamente in linguaggio macchina, ma utilizzano linguaggi di programmazione ad alto livello (come i già citati C, C++, Java, JavaScript ecc.), che: 1.consentono di scrivere programmi più concisi e facilmente comprensibili per gli esseri umani 2.sono indipendenti dal tipo di CPU utilizzato dal computer
n Il seguente programma scritto in JavaScript prende in ingresso una sequenza di numeri (inseriti dalla tastiera) e restituisce in uscita il valor medio corrispondente (visualizzato in una finestra sul monitor): 11 struttura dei dati: var input; 11 variabile d'ingresso var somma = 0; // variabile interna commenti (per il lettore umano) var conta = 0; // variabile interna var media; // variabile d'uscita // algoritmo: input = prompt ("Inserire un numero o / per terminare: ") ; while (input != "/") { somma = somma + parseFloat (input) ; conta = conta + 1; input = prompt ("Inserire un numero o / per terminare: ") ; media = somma/conta; alert ("Valore medio = "+media) ; Molti programmi che ausiamo sono già compilatiESECUZIONE DI PROGRAMMI AD ALTO LIVELLO
n Per essere eseguito dalla CPU, un programma scritto in un linguaggio ad alto livello deve essere tradotto Un traduttore è un programma che prende in ingresso un programma scritto in un linguaggio ad alto livello (chiamato programma sorgente o codice sorgente) e:
n o lo esegue direttamente, interpretando le sue istruzioni una dopo l'altra (e in tal caso è detto interprete)
n o lo converte in un programma equivalente in linguaggio macchina (detto programma eseguibile o codice eseguibile), che potrà essere eseguito in seguito (e in tal caso è detto compilatore)
n Nel nostro piccolo esempio precedente il programma sorgente è eseguito da un interprete JavaScript, che è disponibile sotto forma di "plug-in" (componente aggiuntivo) in tutti i web browser Un programma in esecuzione su un computer si chiama processo
Alcuni software vengono resi disponibili in modalità "open source". A cosa si riferisce la parole "source" (= sorgente) e a cosa si riferisce la parola "open"? Avere un software "open source" ci mette nelle condizioni di poter .... (indicare almeno due attività che si possono svolgere su tale software grazie al fatto che esso è disponibile in modalità open source) Open source program = refers to software whose source code is freely available for anyone to use, modify and share. Un programma modificabile e migliorabile (come la rete internet). An example of this is the Linux operating system, which is developed collaboratively by a global community. Le aziende non vogliono darci i programmi open source
Un computer è: 1.Un sistema in grado di elaborare automaticamente simboli che sia programmabile. 2.Un sistema in grado di elaborare automaticamente numeri binari che possono essere usati per rappresentare testi, immagini e suoni. 3.Un sistema in grado di essere programmato e che quindi può risolvere qualunque problema.
Un programma è costituito da: 1.Una componente che specifica le operazioni da eseguire sui dati e l'ordine con cui tali operazioni devono essere eseguite. 2.La specifica del tipo e della struttura dei dati su cui opera, le operazioni da eseguire su tali dati e l'ordine con cui tali operazioni devono essere eseguite. 3.La specifica del tipo e della struttura dei dati in ingresso e le operazioni da eseguire su tali dati, l'ordine non è specificato.
"Un algoritmo è un processo di elaborazione di informazioni, basato su una codifica rigorosa e precisa delle medesime e costituito da una sequenza di passi elementari definita in maniera altrettanto precisa e rigorosa, tanto da non lasciare alcun dubbio all'ente preposto alla sua esecuzione." (Mandrioli, 2005) · Integrazioni alla definizione: 1.I passi dell'algoritmo devono essere finiti