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


INFORMATICA CON ELEMENTI DI PROGRAMMAZIONE, Appunti di Fondamenti di informatica

INFORMATICA CON ELEMENTI DI PROGRAMMAZIONE 1 - INTERFACCE E TECNOLOGIE DELLA COMUNICAZIONE

Tipologia: Appunti

2018/2019

Caricato il 23/02/2022

LISA1100
LISA1100 🇮🇹

7 documenti

1 / 24

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
INFORMATICA
Cos’è un computer e cosa fa: un computer, come ci suggerisce la sua traduzione in italiano
ossia calcolatore/elaboratore, è un dispositivo elettronico e digitale che ci permette di
automatizzare alcune capacità della mente umana come il calcolo e la capacità di memorizzare
informazioni.
IMPUT-SORAGE-PROCESSING-OUTPUT
STORIA DEI COMPUTER: https://www.badpenguin.org/breve-storia-dell-informatica
Non sarà parte dell’esame.
Tablet Plimpton 322-1800 a.C (tavolozza di pietra):
Interfaccia semplice,
“Touch-screen”,
C’è un input,
I segni rimangono sulla “memoria”,
Già nel 322-1800 a.c gli esseri umani creano strumenti in grado di aiutarli con i processi di
memoria.
Muhammad ibs Musa al-Khawarizmi 780 d.C:
Padre dell’algebra crea la definizione di algortimi, colui che inizia a scrivere in maniera
metodica le soluzioni per risolvere teoremi di algebra.
Abachi: l’abaco è lo strumento più antico di calcolo di cui si conosca traccia, i primi esemplari,
sotto forma di “tavoletta di calcolo” sono apparsi in Mesopotamia in Cina intorno al 1200 a.c,
servono per aiutare la memorizzazione di numeri, non fanno operazioni è l’uomo che sposta le
biglie a compiere le operazioni, è quindi un dispositivo di memoria. Sono strumenti riconfigurabili.
Pascalina (1645): famosa per essere la prima calcolatrice, è un computer che ci permette di
inserire degli input, e che è disposto di una capacità di memoria, risolve problemi matematici ma
solo riguardanti le somme e le sottrazioni.
Inizia l’era dei computer:
1. Ada Lovelace: nota come la prima programmatrice al mondo, commenta il lavoro di
Charles Babbage considerato il padre dei computer arrivando così a proporre un
algoritmo per calcolare i numeri di Bernoulli utilizzando l’Analytical Engine teorizzata da
Charle Babbage. Solo successivamente quando ci furono a disposizioni i primi computer
si potè verificare se l’algoritmo di Ada Lovelace e l’Analytical Engine fossero realmente
corretti, e così risultò.
2. 1911 nasce the computing-Tabulating-recording company: produce machine per gli
uffici, nel 1924 la compagnia diventa la famosa IBM.
3. Alan Turing: matematico che teorizza una macchina universale per eseguire algoritmi
(macchina di Turing ideata nel 1936). Inoltre crea il test di Turing; test per stabilire
quanto una macchina si avvicina ad una mente umana, quando non saremo più in grado
di distinguere la risposta di una macchina con la risposta di un umano allora si potrà dire
che la macchina ha superato il test di Turing. E’ inoltre famoso per aver collaborato nella
risoluzione di un codice di decriptazione utilizzato dai nazisti nella seconda guerra
mondiale.
(The imitation game).
4. Eniac-1945: primo computer per come lo intendiamo noi, creato per calcolare traiettorie
missilistiche.
5. John von Neumann: teorizza l’architettura dei computer moderni (1945)
6. Primo Bug: insetto che si era inserito nei meccanismi di Mark 1, Grace Murray Hopper
fu il primo a trovare un bug in un computer. Il termine bug adesso si riferisce ad un
malfunzionamento del software.
7. 1947 invenzione del primo transistor (i loro inventori vincono il premio Nobel)
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18

Anteprima parziale del testo

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

INFORMATICA

Cos’è un computer e cosa fa: un computer, come ci suggerisce la sua traduzione in italiano ossia calcolatore/elaboratore, è un dispositivo elettronico e digitale che ci permette di automatizzare alcune capacità della mente umana come il calcolo e la capacità di memorizzare informazioni. IMPUT-SORAGE-PROCESSING-OUTPUT

STORIA DEI COMPUTER: https://www.badpenguin.org/breve-storia-dell-informatica

Non sarà parte dell’esame. Tablet Plimpton 322-1800 a.C (tavolozza di pietra):  Interfaccia semplice,  “Touch-screen”,  C’è un input,  I segni rimangono sulla “memoria”, Già nel 322-1800 a.c gli esseri umani creano strumenti in grado di aiutarli con i processi di memoria. Muhammad ibs Musa al-Khawarizmi 780 d.C: Padre dell’algebra crea la definizione di algortimi, colui che inizia a scrivere in maniera metodica le soluzioni per risolvere teoremi di algebra. Abachi: l’abaco è lo strumento più antico di calcolo di cui si conosca traccia, i primi esemplari, sotto forma di “tavoletta di calcolo” sono apparsi in Mesopotamia in Cina intorno al 1200 a.c, servono per aiutare la memorizzazione di numeri, non fanno operazioni è l’uomo che sposta le biglie a compiere le operazioni, è quindi un dispositivo di memoria. Sono strumenti riconfigurabili. Pascalina (1645): famosa per essere la prima calcolatrice, è un computer che ci permette di inserire degli input, e che è disposto di una capacità di memoria, risolve problemi matematici ma solo riguardanti le somme e le sottrazioni. Inizia l’era dei computer:

1. Ada Lovelace: nota come la prima programmatrice al mondo, commenta il lavoro di Charles Babbage considerato il padre dei computer arrivando così a proporre un algoritmo per calcolare i numeri di Bernoulli utilizzando l’Analytical Engine teorizzata da Charle Babbage. Solo successivamente quando ci furono a disposizioni i primi computer si potè verificare se l’algoritmo di Ada Lovelace e l’Analytical Engine fossero realmente corretti, e così risultò. 2. 1911 nasce the computing-Tabulating-recording company: produce machine per gli uffici, nel 1924 la compagnia diventa la famosa IBM. 3. Alan Turing: matematico che teorizza una macchina universale per eseguire algoritmi (macchina di Turing ideata nel 1936). Inoltre crea il test di Turing ; test per stabilire quanto una macchina si avvicina ad una mente umana, quando non saremo più in grado di distinguere la risposta di una macchina con la risposta di un umano allora si potrà dire che la macchina ha superato il test di Turing. E’ inoltre famoso per aver collaborato nella risoluzione di un codice di decriptazione utilizzato dai nazisti nella seconda guerra mondiale. (The imitation game). 4. Eniac-1945: primo computer per come lo intendiamo noi, creato per calcolare traiettorie missilistiche. 5. John von Neumann: teorizza l’architettura dei computer moderni (1945) 6. Primo Bug: insetto che si era inserito nei meccanismi di Mark 1, Grace Murray Hopper fu il primo a trovare un bug in un computer. Il termine bug adesso si riferisce ad un malfunzionamento del software. 7. 1947 invenzione del primo transistor (i loro inventori vincono il premio Nobel)

**8. 1954 Tradic primo computer che utilizza un transistors

  1. 1958 integrated circuit (chip) Dopo queste invenzioni i computer diventano via via sempre più piccoli e più leggeri, diventa possibile la produzione di massa ed aumenta l’efficienza energetica.
  2. Negli anni che vanno dal 1950-1970 si verifica un boom dell’informatica:** si sviluppano linguaggi di programmazione, nascono computer che vengono commercializzati, i computer iniziano ad essere venduti in larga scala, nascono i sistemi operativi come LINUX. Da questo momento in poi chi utilizza un computer non deve essere un programmatore, non deve cioè avere le capacità di programmare. Fino a questo momento i computer svolgevano dei compiti che però dovevano essere definiti manualmente dall’utente, da questo momento nascono delle interfacce che permettono all’utente di ignorare il funzionamento interno del computer. 11. 1964: l’Olivetti produce il programma 101 primo calcolatore programmabile, la missione che ha portato l’uomo sulla luna ha utilizzato decine di questi computer. 12. Intel 4004 Federico Faggin: nel 1971 è il primo leader di ricerca nello sviluppo del primo microprocessore commerciale**.
  3. Milestones:**  nel 1977 viene commercializzato l’Apple 2, da un’impronta da seguire al mercato dei computer da quel momento in poi. Crea inizialmente scompiglio perché introduce elementi che prima non erano mai stati utilizzati come il mouse e la cloche.  Commodore 64 (1982): vengono venduti dalle 17 alle 22 milioni di unità, si passa da computer che vengono prodotti singolarmente a produzione su larga scala. Dal 1982 ad adesso si sono evolute le parti interne come la CPU mentre l’architettura è rimasta la stessa e segue ancora quella di Jhon von Neumann.

ARCHITETTURA DEI COMPUTER: Com’è fatto e quali solo le componenti?

Le 4 funzioni principali che ci permettono di definire cos’è un computer:

1. Input: acquisire informazioni dall’esterno; 2. Storage: mantenere le informazioni in maniera persistente; 3. Processing: generare nuove informazioni a partire da informazioni esistenti (in memoria); 4. Output: trasmettere informazioni all’esterno. Modello “vincente”, modello di John von Neumann (l’alternativa era il modello Harvard). Le componenti indispensabili di un computer:CPU: Central Processing Unit;  Memoria: primaria (RAM, ROM e memoria Cache) e secondaria (Hard Disk e memorie rimovibili); svolgono la funzione di storage  Periferiche di Input (riceve informazioni dall’esterno e le trasmette all’interno) e Output (dall’interno trasmette informazioni all’esterno) ;Scheda madre (che racchiude la memoria e la CPU);

LA CPU: è il cervello del computer, dove le informazioni (data) vengono elaborate (processed)

per generare nuove informazioni, la CPU è quindi l’unico componente che attivamente fa qualcosa all’interno del computer , tutto il resto svolge altre funzioni; storage, input e output. La CPU è l’elemento principale dove avviene il processing, la caratteristica principale è la velocità ovvero il numero di operazioni al secondo (GHz).

Una tipologia particolare di server sono i severs per High Performance Computing; che vengono utilizzati per fare calcolo in modo intensivo , sono gli eredi dei primi computer.

  1. Macchine virtuali: computer virtuali (guest) creati da un software che gestisce le risorse reali di un computer (host). Il software di virtualizzazione assegna delle risorse fisiche da noi scelte al nostro computer e alle nostre risorse virtuali. Possono risolvere il problema della scalabilità delle risorse (non riuscire a prevedere il servers di cui si ha bisogno nel tempo). Permette di:  Avere diversi computer virtuali all’interno di uno stesso computer;  Testare software;  Usare linux in modo sicuro (Ubuntu in VirtualBox).
  2. Rasberry Pi/Arduino: il Rasberry è utilizzato per progetti di ricerca, prototipi e fun, non ha capacità di storage. L’idea è che questi mini-computer vengano utilizzati per realizzare delle task e delle demo. L’Arduino è invece un microcontroller non si può caricare un sistema operativo ma solo un programma , più semplice del Rasberry perché non è un computer, la funzione è la stessa. VIRTUALBOX: un programma che riesce ad assegnare parte delle risorse reali del proprio computer a dei programmi che simulano varie componenti di un computer che possono essere assemblati per creare un computer virtuali. Host il computer vero, fisico in cui ho installato il programma Guest il computer virtuale UBUNTU: basato su linux, ISO (una volta i dati venivano trasportati con i CD, in questo caso le persone scaricavano le cose da internet per poi metterle sul CD; punto ISO significa che è stato preso un CD e che è stata fatta una copia virtuale che permette così di trasportare un file invece che il CD). Interfacce di rete: componenti che ci permettono di collegarci a Internet. Terminale: interfaccia diretta con il sistema operativo che ci permette di dare comandi di basso livello.

CAPIRE UN COMPUTER: cosa fa, come parla, come agisce

Sistema umano:  Decimale; 10 simboli;  Ogni “configurazione” rappresenta un simbolo;  Max 11 simboli; da 0 a 10. Sistema computer:  Binario; 2 simboli;  Ogni dito ha due “configurazioni”;  Ogni dito rappresenta due simboli. CODICE BINARIO REGOLE GENERALI – COMPONENTI HARDWARE:

  1. Dato un insieme di N simboli,
    1. Ad ogni simbolo associo un valore numerico v,
    2. Definire un sistema di posizione in cui ogni posizione è associata ad una potenza K (cifra meno significativa a destra e cifra più significativa a sinistra),
    3. Il numero è la somma dei prodotti dei valori numerici v per la potenza con base N ed esponente K (partendo dalla cifra meno significativa).

Il codice binario è il simbolo utilizzato dai computer perché è più facile e semplifica la realizzazione tecnologica, sono infatti presenti solo due stati (acceso e spento; 0-1) che possono ridurre l’ambiguità. I primi computer usavano un codice decimale. Il codice binario non serve solo a rappresentare numeri , ma anche le lettere dell’alfabeto. TRANSISTORS: i neuroni del computer, che vengono utilizzati nei processori per realizzare funzioni logiche, permettono al computer di parlare. Se la CPU è il “cervello” del computer, i transitors sono i neuroni! Sono dei componenti elettronici che hanno due ingressi Ib (input base) e Ic (input collettore) e un output. A seconda di cosa succede ai due ingressi cambia quello che succede all’output. Operazione logiche: le operazioni logiche sono operazioni che solitamente hanno due ingressi e una uscita e i valori dell’ingresso e dell’uscita possono essere: acceso, spento, sì, no, vero, falso… due stati.  AND: restituisce uno stato attivo se tutte due gli ingressi sono in uno stato attivo. È un’operazione logica che è vera se entrambe i suoi ingressi sono veri.  OR: restituisce un output attivo quando almeno uno dei due input è attivo.

 Operazioni matematiche,  Operazioni logiche (AND, OR),  Accesso alla memoria,  Confronto (IF). Le parole della CPU sono dunque azioni e istruzioni come quelle elencate qui sopra. La CPU svolge un’operazione alla volta grazie a due input alla volta (A e B); essa ha a disposizione una serie limitata di celle di memoria per salvare temporaneamente i risultati delle operazioni. La legge di Moore: legge empirica; Moore si è reso conto che ogni due anni i numeri di transistors all’interno di un microprocessore raddoppiano diventando anche sempre più piccoli. L’evoluzione informatica è nata anche grazie a questa capacità tecnologica di posizionare in uno spazio ristretto i transistor.

SISTEMA OPERATIVO ( da qui si parla della parte SW) :

Prima di iniziare a rispondere su cosa sia e a cosa serva il sistema operativo , dobbiamo distinguere tra hardware (hw) e software (sw); l ’hardware è tutto quello che concerne le parti del computer che si possono toccare (fisiche), quindi ci riferiamo all’hardware quando parliamo di processori, tastiere, monitor ecc. Il software , invece, sono quei programmi che “girano” utilizzando l’hardware e che ci permettono di usare il computer. A livello di software dobbiamo poi fare un’ulteriore classificazione tra software applicativo e software di base. Il software applicativo , sono quei programmi come le suite di office automation (microsoft office, open office, liberoffice), i giochi, i browser per navigare in internet etc; quindi tutti quei software che hanno un compito ben definito per l’utente. Il software di base , che prende anche il nome di sistema operativo (Operating System, spesso abbreviato in OS), ha come compito, invece, sostanzialmente quello di far funzionare il computer e renderlo utilizzabile all’utente. Questo significa sostanzialmente che, senza sistema operativo , il nostro computer ci restituirà semplicemente un cursore lampeggiante senza svolgere alcuna funzione. Per permettere il funzionamento del computer, un OS, deve gestire le risorse del sistema e, quindi, più precisamente deve eseguire le seguenti funzioni:  Gestione dei processi  Gestione della memoria  Gestione dell’Input/Output (I/O)  Gestione del file system Oltre a questo, il sistema operativo deve anche provvedere a fornire un’interfaccia utente per permetterci di comunicare con il computer. Microsoft Windows 3.10 prima sistema operativo con interfaccia grafica. Come nasce il SO e perché: la storia. inizialmente non esisteva nessun sistema operativo; infatti l’utente (ricercatore o scienziato):  Scriveva il programma;  Forniva i dati;  Avviava il programma;  Aspettava;  Scaricava i risultati. I computer servivano quindi esclusivamente per fare calcoli. Lo scenario era quindi rappresentato dalla presenza di un solo utente e un solo programma di esecuzione alla volta; il programmatore comandava direttamente l’hardware.

Successivamente nascono computer:  Con istruzioni sempre più complesse, con possibilità di calcolo sempre più avanzate, e il linguaggio base dell’hardware viene sostituito con il linguaggio di programmazione che permettono un’astrazione e una semplificazione. I programmi iniziano a essere scritti separatamente e in anticipo, non direttamente sulla macchina.  Le esecuzioni divengono sempre più veloci, ma il procedimento per il funzionamento del computer rimane lento ed arretrato… quindi iniziano a formarsi le “code” di esecuzione.  Per non far perdere tempo all’utente e per fargli pagare l’uso effettivo del dispositivo nascono le figure degli operatori specializzati che caricano i programmi secondo la priorità, conteggiano l’uso delle risorse (CPU time, fogli etc…), monitorano lo stato dell’hardware. Questa tecnica però ha dei problemi: o I compiti diventano sempre più complicate e gli operatori fanno fatica a gestirli; o Problemi di sicurezza; per sostituire gli operatori si pensa a programmi che:  Gestiscono l’hardware,  Organizzano l’esecuzione di software,  Monitorano l’utilizzo delle risorse. Nascono così i primi sistemi operativi in sostituzione agli operatori che lavoravano fisicamente. Compiti del sistema operativo:Gestire le componenti principali (CPU, RAM, dischi): o Controllare errori; o Comunicazione tra i componenti;  Gestire le attività/task: o Cosa fare eseguire alla CPU; o Cosa mettere in memoria RAM; o Ordine tra flussi di esecuzione  Gestire le periferiche: o Comunicazione; o Istruzioni specifiche. Questi problemi sono molto simili ai problemi dei primi computer; la componente software che gestisce tutte queste funzioni è svolta dal KERNEL (ci permette di comunicare con l’hardware) è il componente software che sta alla base del sistema operativo, con accesso diretto alle risorse hardware, è la chiave di un sistema operativo, il software che fornisce un accesso sicuro e controllato all’hw. Tutti i sistemi operativi esistenti nonostante abbiamo caratteristiche diverse partono tutti dal Kernel; considerato il vero erede dei primi SO; parla con l’hardware. E’ costituito da un codice scritto in linguaggio C ; linguaggio poco meno complicato del linguaggio macchina. Il passaggio da questo linguaggio al linguaggio macchina è fatto da un compilatore molto semplice. Il Kernel ci permette di comunicare con un linguaggio più semplice rispetto al linguaggio =-1e ci permette di evitare di inserire manualmente le istruzioni per ogni componente. Ma l’hardware come parla con noi? Attraverso l’ API (Application Programming Interface) cioè delle istruzioni che il software rende disponibili per permettere all’utente di poter utilizzare il software. Sono in front-man dell’HW. (Insieme di istruzioni che permettono di usare un software e in questo caso il Kernel). Assieme al Kernel ci sono una serie di applicazioni di base che utilizzano API e che ci permettono di usare in modo più semplificato i comandi per il Kernel: o Shell: interfaccia base tra utente e computer (GUI); scrivendo i comandi sulla Shell essi vengono eseguiti dal Kermel sull’HW, ci permette di interagire con file e cartelle;

Com’è fatto un comando? Ogni Box indica un comando lo spessore indica l’importanza del comando. Applicazione e funzione sono sempre in questa posizione, mentre opzione (che hanno – o /) e oggetto possono scambiarsi. La sintassi e l’ordine vanno rispettati. Perché una command line è così diversa da un’interfaccia grafica? WYSIWGYG: what you see is what you get. Possibili disastri con la command line:  Ci sono meno protezioni; esempio il comando rm (in linux) rimuove completamente il file (non va in cestino) e neanche chiede conferma per farlo.  Per modificare file importanti per il sistema servono i permessi dell’amministratore  Lo spazio nella sintassi della command line indica che si sta passando ad una nuova opzione o parte del comando; Se indispensabile usare
 Su linux attenzione a maiuscole e minuscole, non è la stessa cosa. Per eseguire operazioni che hanno effetto sul sistema operativo e sulle funzionalità del computer, è necessario assumere il ruolo di amministratore del sistema. Solitamente l’utente principale è anche l’amministratore del sistema; quindi può anche eseguire operazioni critiche. Linux usa il comando sudo nome del file ; es: sudo rm file_fondamentale_da_non_rimuovere; viene chiesta la password utente (= sai cosa stai facendo) se è corretta verrà eseguito il comando. Sudo è un programma che esegue comandi con il ruolo di amministratore. (Windows: Eseguire Command Prompt come amministrarore NO!!) Come usare la command line:  Comandi per lavorare con file e cartelle, (minuscolo linux, maiuscolo Windows)

 Comandi delle applicazioni che si usano di più un po' a memoria, un po' usando l’help inline; un po' con help online ;  Help inline (aiuto che si può ottenere direttamente dalla command line): o Linux: man comando oppure comando -h/ --help o Windows: HELP COMMAND o man man; HELP HELP. Che differenza c'è tra MS-DOS e il "prompt dei comandi" disponibile sui sistemi operativi Windows? MS-DOS è un sistema operativo che prevede un'interfaccia grafica utente che utilizza una riga di comando (quindi una GUI) mentre il Command Prompt dei comandi è semplicemente una command line, un programma del sistema operativo Windows. La più grande differenza tra i due è che la command line non mostra un feedback mentre l'interfaccia grafica mostra subito gli errori. Oltre a questo la command line è di grande importanza perchè permette di riprodurre azioni ed ha un accesso diretto alla funzioni di sistema. VOCABOLARIO: (webline.org) http://www.brescianet.com/appunti/infobase/dos_support/helpCreato.htm http://guide.debianizzati.org/index.php/Guida_ai_comandi_da_terminale_- _Gestione_di_file_e_directory La command prompt è la command line che ci fa usare la command line su Windows.  Il comando DIR mostra l’elenco dei file e delle sottocartelle in una cartella.  Sudo è un programma che per i sistemi operativi Unix e Unix-like che, con dei vincoli, permettono di eseguire altri programmi assumendo identità (e di conseguenza anche i privilegi) di altri utenti.  LS (scritto piccolo) indica la cartella e il file dove ti trovi (directory).  pwd è un comando che mostra in che cartella siamo ; ci dice dal punto in cui siamo il processo che abbiamo fatto per arrivare fino qui  cd nome cartella comando per andare in una cartella, e che mi permette di entrare nella cartella che “selezioniamo”; es: cd home;

 cd .. ci fa tornare indietro di un comando

cd ../../ torno indietro di due passaggi  cd / senza niente dopo mi fa andare nella mia cartella personale; nella cartella principale; Percorso relativo per cd: percorso delle cartelle in base a dove sono ora; Percorso assoluto per cd: è il percorso dove si trova effettivamente il file, dalla cartella madre.  cp copy.  @ vuol dire in quale;/ separatore delle cartelle (es: home/lisotta/prova);cleare per cancellare il terminale in linux; cls per cancellare il terminale in Windows;  mkdir nomecartella comando per creare una directory (cartella);  rm nomefile serve per eliminare file;  rm - r nomecartella; per eliminare una cartella;  man nomecomando: ci fornisce le informazioni su le opzioni di un comando; e cosa può fare; per uscire dalla schermata delle informazioni poi premere q;

Ciclo della vita dello sviluppo software: Per ognuna di queste fasi ci sono persone diverse che seguono le attività. “Chi sviluppa software è pigro ma gentile” Pigro: usa “pezzi” di software già scritti da altri; Gentile: mette a disposizione “pezzi” del proprio software per altri; Questi pezzi di software sono, in generale librerie e frameworks. La libreria : contiene “ricette” di funzioni e componenti che vengono usati dal software sviluppato; nello stesso linguaggio. Il Framework: costruisce l’infrastruttura e offre le funzionalità principali per gestirla. Es web applications: Flask. Un software per vivere ha bisogno di un ambiente composto dalle librerie e dai framework. Licenze e Open Source: l’utilizzo si ogni software (libreria/framework/applicazione) è regolata da licenze:  Utilizzo, copia, modifica;  Ri-distribuzione;  Commerciabilità. Per questo bisogna fare molta attenzione e utilizzare il software in modo appropriato.

AMBIENTI VIRTUALI:

Il software nell’ambiente virtuale usa alcune risorse del computer; ma ha le proprie librerie e frameworks.

Virtual enviroments: “Virtuale” significa che l’ambiente in cui vive il software non è l’ambiente del computer, ma il software non noterà nessuna differenza. Perché usiamo un ambiente Virtuale e non l’ambiente del computer?Certezza: di riprodurre l’ambiente necessario su ogni computer;  Possibilità di avere più ambienti virtuali;Limitare l’impatto sull’ambiente principale;  Riproducibilità; capacità di poter ricreare lo stesso modo di funzionare su più computer;  Test verificare come il mio software funziona in ambienti virtuali. Su internet funziona tutto tramite Virtual enviroments, o virtual machines. Come usare un ambiente virtuale? Lo stesso programma che abbiamo usato per creare l’ambiente virtuale offre anche la funzione per attivare l’ambiente virtuale. Cosa significa che abbiamo attivato un ambiente virtuale? Significa che il software che eseguiremo avrà a disposizione tutte le librerie installate nell’ambiente virtuale. (Se una libreria non è presente nell’acquario (nell’ambiente virtuale) il software non si ferma, prima cerca nel microambiente (acquario) e poi nell’ambiente “casa”. Quindi anche l’interprete python avrà a disposizione le librerie python che avremo installato e che, quindi, potremmo usare (il comando import ) nei nostri programmi. Es: import numpy (libreria python). Uno dei programmi per creare ambienti virtuali si chiama CONDA un command-line program da ANACONDA. (from Anaconda, Inc.) Usato soprattutto per programmazione scientifica. Comandi:

Usando Conda quando lo installiamo automaticamente modifica l’esecuzione del programma terminal. conda deactivate = primo passaggio per uscire da (base). conda create - - name ambiente virtuale = comando per creare l’ambiente virtuale (es. conda create - - name ip1) conda activate ambiente virtuale = per entrare nell’ambiente; (es. conda activate ip1) conda install python=3.7 = comando per installare i comandi python; (3.7 è la versione di python) which = mi dice quale applicazione il sistema operativo avvierebbe se io mandassi quel comando, e mi dice se quel programma c’è o non c’è nel mio ambiente virtuale. (es: which python) matplotlibt, numpy librerie utile per “copiare i comandi e i pezzi di codice fatti da altri per python”. conda install matplotlibt conda install numpy nano = programma editor di testo già presente nell’ambiente virtuale ( nano -w testo.py) per creare l’editor Una volta creato per entrarci si usa solo test.py control X = per uscire dall’editor generare un grafico di 100 numeri:  Vedere su internet come creare 100n casuali, si può usare numpy (un pacchetto libreria)  Per creare un grafico mi serve la libreria matplotlib  li installo e poi li importo

INTERNET:

Cyrus West Field imprenditore che ha ideato la prima posa di cavo sottomarino che collegava la Gran Bretagna con gli Stati Uniti. C’è un HW sui fondali degli oceani che ci permette di comunicare. I componenti principali:

1. Infrastruttura di collegamento: ci sono delle strutture fisiche HW attraverso cui l’informazione può essere trasmessa: a. Cavi elettrici; b. Fibre ottiche; c. Antenne. Queste infrastrutture possiamo visualizzarle come una rete, una network di punti collegati tra loro. 2. Interne Service Provider: azienda che a pagamento ci offre di collegamento ad internet, spesso comprensivo di strumentazioni (antenna, home router) ed infrastruttura (cavi, centraline). Azienda che venda il collegamento ad Internet. 3. Protocolli di comunicazione: definiscono le regole per la trasmissione dei dati. a. Internet Protocol (IP): trasmissione dei dati tra computer, identificati dal proprio IP adress; b. Trasmissione Contro Protocol (TCP): verifica la correttezza dei dati trasmessi; c. HyperText Transfer Protocol (HTTP): trasmissione di pagine/documenti per World Wilde Web. **Ci sono vari livelli:

  1. Fisico;
  2. Internet, rete;
  3. Trasporto;
  4. Applicazione. IP adress e DNS:** è l’indirizzo di un computer in una rete. Sono 12 numeri raggruppati in gruppi da 3. Gli umani usano il Domain Name (www.esempio.com)

Un Domain Name Server (DNS) traduce la richiesta umana di un Domain Name nell’indirizzo IP corretto. COMANDI: ping: comando per verificare che c’è una connessione, e che il sito esiste. TRACERT -4 ip_address serve per visualizzare il percorso di connessione , ottengo l’IP di ogni punto della connessione che attraverso. Geo IP: per conoscere la posizione geografica dei punti del percorso. Ipconfig: mi fornisce delle informazioni sulla mia versione di rete (IP v4 IP v6). (Tutti abbiamo un IP v4 e un IP v6, uno ha 4 blocchi l’altro ne ha 6, la differenza è il nome/codice con cui vengono visualizzati). (VPN virtual private network) Materiale utile: https://www.khanacademy.org/computing/ap-computer-science-principles/ the-internet (primi 2-3 video) Internet è costruito da vari strati: (ogni strato si chiama layer)  Ogni strato o layer serve ad un determinato scopo ;  Ogni strato è regolato da dei protocolli che ne determinano il funzionamento;  Ogni strato si fonda sullo strato inferiore e permette il funzionamento di quello superiore; (i protocolli di ogni strato vengono sviluppati indipendentemente dagli strati precedenti e successivi)  L’indipendenza tra gli strati ha permesso la scalabilità e l’evoluzione di internet.

Il Link Layer: è lo strato che si occupa di creare un collegamento effettivo si fisico che

di contenuto. Modo in cui viene creata la rete. Crea l’infrastruttura, dei collegamenti

effettivi tra i vari computer.

Internet Layer: lo strato che ha la funzione di permettere lo scambio di vari pacchetti

tra vari punti della rete (cioè i computer collegati); da per scontato che esiste la rete;

questo livello sfrutta la rete. Trasmette i dati.

Transport Layer: strato di trasporto, si assicura che il trasporto dei pacchetti nella

rete segua determinate regole di qualità. Non fa altro che assicurarsi che l’internet layer

abbia fatto il suo lavoro correttamente, e che la trasmissione di pacchetti sia avvenuta in

modo corretto e funzionale. Verifica i dati.

Application Layer: a seconda dell’applicazione l’informazione contenuta deve seguire

alcune regole. I protocolli che deve seguire un’applicazione per trovare i dati. Strato a

diretto contatto con l’utente che utilizza le applicazioni che con determinate regole si

collegano ad altri computer attraverso internet. Utilizza i dati.

PERIFERICHE COMPUTER O SOFTWARE?

SIMULAZIONE ESAME: