Softwere, ipertesto e internet Flashcards
Definisci il software. Da dove origina il termine?
Un software è un programma informatico in grado di eseguire una sequenza logica di comandi in un computer o in un qualsiasi macchina e dispositivo elettronico programmabile.
È sviluppato dai programmatori utilizzando degli appositi linguaggi informatici detti linguaggi di programmazione (es. C++, python, java, ecc.)
Nome origina da Ada Lovelace, che definì il primo algoritmo da far elaborare ad una macchina (ma mai attuato); e da Alan Turing
Perché e come costruiamo programmi?
- La costruzione di un programma è usualmente associata alla necessità di risolvere in maniera efficiente uno o più problemi.
- Questo perché si vuole automatizzare una serie di operazioni che sarebbero estremamente tediose da farsi manualmente, oppure perché cerchiamo di risolvere un determinato problema simulandolo.
- Abbiamo perciò bisogno di definire un algoritmo adatto, e scriverlo in qualche linguaggio di programmazione convertibile in un codice comprensibile al calcolatore.
- Con algoritmo noi intenderemo un insieme finito non ambiguo di istruzioni che servono per eseguire un calcolo o per risolvere un problema.
- Originariamente la parola era legata alle operazioni algebriche decimali che si potevano svolgere, ma con il trascorrere del tempo e con l’aumento di interesse verso le macchine calcolatrici il termine si è evoluto per accogliere anche le procedure per la risoluzione di problemi.
Cos’è un algoritmo? Metafora della ricetta
L’algoritmo è un procedimento che permette di calcolare un risultato e/o risolvere un problema, eseguendo una serie di ordini e condizioni impostate a priori.
Analogamente, in informatica, un algoritmo non è altro che un semplice procedimento che permette la risoluzione di specifici problemi mediante l’applicazione di una sequenza finita di precise istruzioni che, a loro volta, devono essere interpretate ed eseguite fino alla loro conclusione seguendo un ordine ben preciso.
- deve esistere un esecutore (calcolatore) che esegua l’algoritmo
- le istruzioni devono essere eseguite in ordine per partire dai dati di input ed ottenere i dati di output
- il calcolatore deve conoscere il linguaggio dell’algoritmo altrimenti serve un traduttore
- l’algoritmo deve prevedere solo istruzioni elementari per il calcolatore
- specificato un algoritmo, può essere richiamato per l’esecuzione di algoritmi più complessi
- il linguaggio dell’algoritmo non può essere ambiguo
- l’ordine di esecuzione è importante
- Istruzioni e tempo non infiniti
- l’algoritmo deve essere deterministico: eseguito più volte sugli stessi dati di input genera sempre lo stesso output
- algoritmo parametrico: risolve una classe di problemi (al variare dei dati di input)
Metafora della ricetta:
-algoritmo (programma): ricetta
-computer: cuoco
-input: ingredienti
-output: piatto
Esistono due tipologie di software, quali?
1) Software di base o di sistema: insieme di programmi necessari per il funzionamento del computer. Mette in comunicazione l’utente con la macchina.
2) Software applicativi: tutte le altre applicazioni. Siamo noi a scegliere di fargli fare qualcosa
Si basano sul software di base.
Cos’è il linguaggio di programmazione?
Un linguaggio di programmazione (es. Basic, Cobol, Pascal) è un linguaggio formale impiegato per descrivere algoritmi che devono essere eseguiti da un calcolatore. Un programma è un algoritmo espresso in un linguaggio di programmazione (normalmente si presenta come un file di testo). Un programmatore è una persona che, ben conoscendo uno o più linguaggi di programmazione, “insegna” algoritmi ai calcolatori scrivendo programmi.
Fai degli esempi di interfaccia testuale
MS-DOS, Unix shell, Linux shell
Parla dell’interfaccia grafica. Fai un esempio
- Es. Microsoft windows 11, Mac OS di Apple. Linux Ubuntu
- Nei calcolatori con interfaccia grafica molti comandi sono impartiti mediante
l’interazione attraverso il mouse e la tastiera - Cioè il clic (il doppio clic, …) del mouse su un’icona viene tradotto in una
opportuna sequenza di istruzioni che il computer esegue per soddisfare la
richiesta dell’utente
Cos’è il sistema operativo?
È un ambiente per l’esecuzione del Software applicativo
Che cos’è il kernel?
- Per kernel si intende il cuore di un sistema operativo, il codice che gestisce le risorse presenti sul nostro sistema e le rende disponibili alle applicazioni.
- Il kernel si occupa principalmente di gestire:
- le comunicazioni con l’hardware del sistema,
- i file system, la memoria,
- l’accesso a queste risorse da parte dei processi (le applicazioni che girano sul sistema)…
Le funzioni principali del sistema operativo sono:
1) Avvio del computer
2) Gestione del processore dei programmi in esecuzione detti processi
3) gestione memoria
4) gestione input e output
5) interazione con l’utente
Una parte del sistema operativo occupa la memoria RAM esso si carica nella memoria per far funzionare la nostra macchina.
Definisci i malware, elencane alcuni, + possibili soluzioni
- Malware (malicious software): qualsiasi tipo di software nocivo che prende di mira computer o reti.
Esempi di malware
- Computer virus: programma che può riprodursi attaccando il suo codice ad un altro programma, al settore di avvio di un disco o ad un documento con macro e, in generale, generare effetti collaterali dannosi
- Worm: programmi che si diffondono e si auto replicano mediante la rete
- Trojan horse: programma distruttivo nascosto all’interno di un altro programma applicativo o un gioco
- Spyware: raccoglie senza autorizzazione informazioni sull’utente e le sue abitudini
- Adware: programma che propone pubblicità spesso installato senza autorizzazione
- Crimeware: programmi per il furto d’identità
- Hoax: messaggi che annunciano l’imminente arrivo di messaggi e e-mail infettati da virus
- Ransomware: virus informatici che rendono inaccessibili i file dei computer infettati e chiedono il pagamento di un riscatto
Soluzioni:
1) diffidenza verso materiale scaricato da siti web dubbi, e-mail con contenuto e/o mittente strano, documenti con macro, pc usati da molte persone.
2) antivirus
3) firewall
Di chi è il software? Bisogna pagarlo?
Il software è un elemento essenziale per il nostro computer e deve essere pagato.
- Sw propretario: di proprietà di qualcuno. Può essere usato acquistandolo pure ottenendo l’autorizzazione all’uso (licenza).
- Sw shareware: sempre di proprietà di qualcuno. Distribuito gratuitamente e usato gratuitamente per un periodo di prova, dopo pagando si può utilizzarlo
- Sw freeware: proprietà di qualcuno può essere liberamente usato, copiato e distribuito non si possono fare modifiche
- Sw libero e sw open source: può essere copiato e distribuito gratis ma rispettando alcune regole. La codifica è libera ed accessibile. ES. Libre office- Ubuntu
Elenca le caratteristiche del software libero
Un software libero è un software rilasciato con una licenza che permette a chiunque di utilizzarlo, studiarlo, modificarlo e redistribuirlo; per le sue caratteristiche, si contrappone al software proprietario
La parola libero non implica la possibilità di
utilizzare il software libero in maniera indiscriminata: un software libero è comunque soggetto ad una licenza d’uso, a differenza ad esempio del software di pubblico dominio.
Rispetto al software proprietario, la licenza d’uso del software libero permette di:
* eseguire il programma per qualsiasi scopo;
* accedere alla struttura interna del programma (codice sorgente), studiarla ed eventualmente modificarla;
* ridistribuirlo in un numero di copie illimitato.
Cosa sono i software applicativi? Fai qualche esempio
All’interno dei pacchetti, il software applicativo consiste di programmi che, una volta in esecuzione, realizzano direttamente funzionalità per l’utente. Essi si distinguono dai sistemi software, che includono i sistemi operativi e i sistemi di rete, i quali costituiscono l’interfaccia tra software e hardware.
Esempi
* videoscrittura (word processor)
* fogli elettronici (spreadsheet)
* presentazioni multimediali
* desktop publishing
* gestione di basi di dati
* web editor
* grafica e fotoritocco
* diagrammi
* gestione delle finanze individuali
* organizer
* project management
* OCR
* CAD
* videogiochi
* audio/video player
* applicazioni per Internet
Esponi il sistema operativo LINUX
-Linux è un sistema operativo UNIX-like, ovvero discendente dal sistema operativo UNIX, ne condivide le strutture fondamentali, ma Linux è stato completamente riscritto, compreso il KERNEL
-Linux è un sistema operativo open source
-Linux ha avuto molto successo, nonostante la criticità data dalla frequente incompatibilità tra l’hardware dei normali computer in vendita e questo sistema operativo.