RIASSUNTI DI INFORMATICA
Università Telematica San Raffaele Roma
Docente: Noemi Scarpato
Indice
1. Introduzione al corso
2. Linguaggi di programmazione
3. Algoritmi
4. Calcolabilità
5. Complessità di calcolo
6. Logica e informatica
7. Introduzione al computer
8. Architettura di Von Neumann
9. Dispositivi di I/O
10. Architetture dei calcolatori
11. Sistemi operativi
12. Gestione dei processi
13. Gestione della memoria
14. Gestione dei dispositivi
15. File system
16. Sicurezza nei sistemi operativi
17. Esempi
18. Reti di calcolatori
19. Infrastrutture di rete
20. Protocolli
21. Struttura di Internet
22. Servizi di Internet
23. World Wide Web
24. Motori di ricerca
25. Profili giuridici
26. Documenti elettronici – introduzione
27. Elaborazione testi 1
28. Elaborazione testi 2
29. Elaborazione testi 3
30. Basi di dati – introduzione
31. DBMS
32. Modello Entità-Relazione
33. Progettazione concettuale 1
Alessandro Fasulo Introduzione all’informatica: significato,
ambiti e utilità
L’informatica è una disciplina scientifica che studia il trattamento automatico
dell’informazione. Non si limita all’uso pratico del computer, ma analizza in modo
sistematico i processi, i modelli e gli strumenti che permettono di acquisire, elaborare,
memorizzare e trasmettere dati in modo efficiente.
Il termine informatica può essere interpretato secondo più prospettive complementari. Da
un lato indica l’insieme di strumenti tecnologici e servizi digitali che consentono di gestire
informazioni; dall’altro rappresenta una vera e propria disciplina scientifica, dotata di
metodi, principi e modelli teorici, che studia il funzionamento di tali strumenti e i processi
logici sottostanti.
L’informatica come scienza e come tecnologia
L’informatica si colloca all’incrocio tra scienza e tecnologia. Come scienza, si occupa di
studiare i fondamenti teorici della rappresentazione dell’informazione, degli algoritmi e dei
sistemi di calcolo. Come tecnologia, fornisce strumenti concreti — hardware e software —
che rendono possibile l’automazione di attività complesse.
Un esempio chiarisce questa duplice natura: la progettazione di un algoritmo per ordinare
dati è un’attività di tipo scientifico; l’implementazione di quell’algoritmo in un programma
utilizzabile su un computer è un’attività tecnologica.
Perché studiare informatica
Lo studio dell’informatica è rilevante non solo per chi intende specializzarsi nel settore, ma
anche per chi opera in ambiti diversi. Comprendere i principi fondamentali dell’informatica
consente di utilizzare in modo più consapevole e critico gli strumenti digitali, migliorando
l’efficienza e la qualità del lavoro.
Queste conoscenze permettono di valutare correttamente le potenzialità e i limiti di un
sistema informatico, di comprendere come vengono gestiti e trasformati i dati e di
interagire in modo efficace con software e servizi digitali.
I principali ambiti di studio dell’informatica
L’informatica si articola in diversi ambiti di studio, tra cui i fondamenti teorici, l’architettura
dei calcolatori e i sistemi operativi, la gestione dei dati, le reti e i servizi digitali e
l’elaborazione elettronica dei documenti. Ciascun ambito contribuisce alla comprensione
completa del trattamento dell’informazione. 2
Alessandro Fasulo
Conclusione
L’informatica rappresenta una disciplina chiave per interpretare e governare la realtà
digitale contemporanea. Essa fornisce strumenti teorici e pratici per comprendere come
l’informazione viene trattata e trasformata, consentendo un utilizzo più efficace, critico e
consapevole delle tecnologie.
Studiare informatica significa acquisire una competenza strategica, utile in qualsiasi
contesto professionale e sociale in cui l’informazione riveste un ruolo centrale.
3
Alessandro Fasulo Fondamenti dell’informatica: linguaggi di
programmazione
I linguaggi di programmazione rappresentano uno degli elementi centrali dell’informatica,
poiché costituiscono il mezzo attraverso cui un algoritmo viene tradotto in una forma
comprensibile ed eseguibile da un calcolatore. Essi permettono di trasformare un
problema astratto in una sequenza di istruzioni operative che la macchina può interpretare
ed eseguire.
Dal concetto di algoritmo al programma
Un algoritmo è una sequenza finita di istruzioni che descrive come risolvere un
determinato problema. Tuttavia, l’algoritmo, di per sé, non è ancora eseguibile da una
macchina. Per diventare operativo deve essere espresso attraverso un linguaggio di
programmazione.
Il programma può quindi essere definito come la traduzione di un algoritmo in una
sequenza di istruzioni scritte secondo una codifica precisa, tale da poter essere compresa
ed eseguita da un calcolatore elettronico.
Caratteristiche dei linguaggi di programmazione
Un linguaggio di programmazione deve essere comprensibile all’uomo e, allo stesso
tempo, interpretabile ed eseguibile dal calcolatore. Deve inoltre essere chiaro, conciso e
non ambiguo, affinché ogni istruzione abbia un solo significato possibile.
Operazioni di base e strutture di controllo
I linguaggi di programmazione consentono di esprimere operazioni di base come il calcolo
aritmetico, la lettura e la scrittura dei dati, oltre a costrutti logici che permettono di
organizzare le istruzioni in forma sequenziale, decisionale e iterativa.
Procedure, funzioni e modularità
Attraverso procedure e funzioni è possibile suddividere un programma in parti più piccole e
gestibili, migliorando la chiarezza del codice, la riutilizzabilità e la riduzione degli errori.
Processo ed esecuzione di un programma
Il processo rappresenta l’esecuzione concreta delle istruzioni di un programma in un
determinato momento, distinguendosi dall’algoritmo che descrive semplicemente cosa
deve essere fatto.
Compilatori e interpreti 4
Alessandro Fasulo
La traduzione di un programma in linguaggio macchina può avvenire tramite compilatori o
interpreti. Il compilatore traduce l’intero programma prima dell’esecuzione, mentre
l’interprete traduce ed esegue le istruzioni una alla volta.
Conclusione
I linguaggi di programmazione costituiscono il ponte tra il ragionamento umano e
l’esecuzione automatica del calcolatore, rappresentando una competenza fondamentale
per comprendere il funzionamento dei sistemi informatici.
5
Alessandro Fasulo Fondamenti dell’informatica: algoritmi
L’algoritmo rappresenta uno dei concetti fondamentali dell’informatica e costituisce il
modello logico attraverso cui è possibile descrivere la soluzione di un problema in modo
generale e sistematico. Un algoritmo consente di trasformare una situazione iniziale in un
risultato finale attraverso una sequenza ordinata di operazioni.
Dal problema alla soluzione
Ogni algoritmo nasce dalla definizione di un problema. Il problema individua l’obiettivo da
raggiungere, mentre l’algoritmo descrive il procedimento necessario per ottenere la
soluzione. Per costruire un algoritmo è necessario individuare i dati iniziali, le operazioni da
eseguire e il risultato finale atteso.
Caratteristiche di un algoritmo
Un algoritmo deve essere una sequenza di istruzioni non ambigua, finita e ripetibile. Le
istruzioni devono essere precise e interpretabili in modo univoco, così da evitare
interpretazioni differenti durante l’esecuzione.
Un algoritmo è finito quando termina dopo un numero limitato di passi e ripetibile quando
può essere eseguito più volte ottenendo risultati coerenti a partire dagli stessi dati.
Dati, istruzioni e risultati
La soluzione di un problema si ottiene manipolando dati iniziali attraverso una sequenza di
istruzioni. L’algoritmo produce uno o più risultati che rappresentano l’output del
procedimento eseguito.
Flussi di controllo
Le istruzioni di un algoritmo possono essere organizzate secondo diversi flussi di controllo.
Le istruzioni sequenziali vengono eseguite una dopo l’altra; le istruzioni condizionali
permettono di scegliere tra alternative in base a condizioni vere o false; le istruzioni
iterative consentono di ripetere un insieme di operazioni per un certo numero di volte.
Diagrammi di flusso
Per rappresentare graficamente un algoritmo si utilizzano i diagrammi di flusso, costituiti da
blocchi collegati tra loro da frecce che indicano l’ordine di esecuzione. Questi diagrammi
permettono di visualizzare in modo chiaro la logica dell’algoritmo e facilitano la
comprensione dei flussi di controllo.
Conclusione 6
Alessandro Fasulo
Gli algoritmi costituiscono la base teorica dell’informatica e permettono di affrontare
problemi di diversa complessità in modo strutturato. Comprendere il concetto di algoritmo
significa acquisire la capacità di analizzare un problema, definire una soluzione generale e
descriverla attraverso una sequenza ordinata di istruzioni.
7
Alessandro Fasulo Fondamenti dell’informatica: calcolabilità
La calcolabilità è un ambito fondamentale dell’informatica teorica che studia quali problemi
possono essere risolti attraverso un algoritmo e quali, invece, non ammettono alcuna
soluzione algoritmica. Questo concetto permette di individuare i limiti intrinseci del calcolo
automatico.
Il concetto di problema calcolabile
Un problema si definisce calcolabile quando esiste un algoritmo che, applicato a qualsiasi
dato di ingresso valido, termina dopo un numero finito di passi fornendo il risultato corretto.
La calcolabilità non riguarda l’efficienza dell’algoritmo, ma esclusivamente la possibilità di
ottenere una soluzione attraverso una procedura automatica.
Algoritmi e terminazione
Una condizione essenziale per la calcolabilità è la terminazione dell’algoritmo. Un
algoritmo che entra in un ciclo infinito non è in grado di fornire una risposta e quindi non
risolve il problema per cui è stato progettato. La verifica della terminazione rappresenta
uno degli aspetti centrali dello studio della calcolabilità.
Problemi non calcolabili
Esistono problemi per i quali non è possibile costruire alcun algoritmo risolutivo. Questi
problemi vengono definiti non calcolabili e la loro esistenza non dipende dalla potenza dei
calcolatori o dalla qualità dei linguaggi di programmazione, ma da limiti teorici propri
dell’informatica.
La macchina universale
Per studiare la calcolabilità si introduce il concetto di macchina universale, un modello
astratto capace di simulare l’esecuzione di qualsiasi algoritmo. Questo modello consente
di analizzare in modo generale cosa sia possibile calcolare e cosa, invece, rimanga fuori
dalla portata di qualsiasi procedura automatica.
Il problema della decisione
Un esempio classico di problema non calcolabile è il problema della decisione relativo alla
terminazione di un programma. Non esiste un algoritmo generale in grado di stabilire, per
ogni possibile programma e per ogni dato di ingresso, se l’esecuzione terminerà oppure
continuerà all’infinito.
Conclusione 8
Alessandro Fasulo
Lo studio della calcolabilità consente di comprendere i limiti fondamentali del calcolo
automatico. Sapere che esistono problemi non risolvibili algoritmicamente è essenziale per
definire correttamente il ruolo dell’informatica e per distinguere ciò che può essere
automatizzato da ciò che non può esserlo. 9
Alessandro Fasulo
Fondamenti dell’informatica: complessità di
calcolo
La complessità di calcolo studia le risorse necessarie per risolvere un problema tramite un
algoritmo. In particolare, analizza quanto tempo e quanta memoria sono richiesti durante
l’esecuzione, indipendentemente dal linguaggio di programmazione o dal calcolatore
utilizzato.
Il concetto di complessità
Quando si confrontano due algoritmi che risolvono lo stesso problema, non è sufficiente
stabilire se essi funzionano correttamente, ma è necessario valutare quanto siano
efficienti. La complessità permette di misurare le prestazioni di un algoritmo in termini
astratti.
Tempo di calcolo
La complessità temporale indica il numero di operazioni elementari eseguite da un
algoritmo in funzione della dimensione dei dati di ingresso. Questo valore consente di
stimare come il tempo di esecuzione cresce all’aumentare del problema.
Spazio di calcolo
La complessità spaziale misura la quantità di memoria necessaria per l’esecuzione di un
algoritmo. Essa comprende sia lo spazio occupato dai dati sia quello utilizzato dalle
strutture di supporto durante il calcolo.
Confronto tra algoritmi
Due algoritmi che producono lo stesso risultato possono avere complessità molto diverse.
Un algoritmo efficiente utilizza meno tempo o meno spazio rispetto a uno inefficiente,
rendendo possibile la risoluzione di problemi di dimensioni maggiori.
La crescita della complessità
La complessità di un algoritmo dipende dalla dimensione dell’input. All’aumentare dei dati,
il numero di operazioni può crescere in modo lineare, quadratico o esponenziale.
Comprendere questa crescita è fondamentale per prevedere il comportamento
dell’algoritmo.
Conclusione
Lo studio della complessità di calcolo consente di valutare l’efficienza degli algoritmi e di
scegliere la soluzione più adatta a un determinato problema. Questa analisi è essenziale
10
Alessandro Fasulo
per progettare programmi affidabili e utilizzabili su larga scala.
11
Alessandro Fasulo Fondamenti dell’informatica: logica e
informatica
Il rapporto tra logica e informatica è alla base dello sviluppo teorico e pratico dei sistemi di
calcolo. La logica fornisce gli strumenti formali necessari per descrivere il ragionamento
corretto, mentre l’informatica utilizza tali strumenti per progettare algoritmi e sistemi
automatici di elaborazione.
Logica matematica e informatica
La logica matematica studia le regole che governano il ragionamento valido. In informatica,
queste regole permettono di formalizzare problemi, definire procedure precise e verificare
la correttezza dei processi di calcolo.
Problemi risolubili e problemi non risolubili
Uno degli obiettivi principali del legame tra logica e informatica è stabilire quali problemi
possano essere risolti attraverso procedure automatiche. Alcuni problemi ammettono una
soluzione algoritmica, mentre altri presentano limiti teorici che impediscono una risoluzione
completa.
Formalizzazione dei problemi
La formalizzazione consiste nel tradurre un problema reale in un linguaggio rigoroso, privo
di ambiguità. Questo passaggio è essenziale per consentire al calcolatore di eseguire
correttamente le istruzioni e produrre risultati affidabili.
Macchine astratte e modelli logici
L’informatica teorica utilizza modelli astratti per rappresentare il funzionamento dei
calcolatori. Questi modelli consentono di studiare in modo generale le capacità e i limiti del
calcolo automatico, indipendentemente dalla tecnologia impiegata.
Il ruolo della logica nel calcolo automatico
La logica consente di verificare la correttezza degli algoritmi e di dimostrare proprietà
fondamentali come la terminazione e la coerenza dei risultati. Essa rappresenta quindi uno
strumento essenziale per garantire l’affidabilità dei sistemi informatici.
Conclusione
Il legame tra logica e informatica permette di comprendere a fondo le basi teoriche del
calcolo automatico. Attraverso la logica è possibile definire, analizzare e verificare i
processi che rendono possibile l’elaborazione delle informazioni.
12
Alessandro Fasulo
Architetture e sistemi operativi: introduzione
al computer
Il computer è uno strumento generale e programmabile, capace di svolgere un numero
molto elevato di compiti diversi. A differenza delle macchine tradizionali, progettate per una
funzione specifica, il computer può modificare radicalmente il proprio comportamento in
base al programma che esegue.
Caratteristiche fondamentali del computer
La caratteristica principale del computer è la programmabilità. Attraverso programmi
diversi, lo stesso dispositivo può essere utilizzato per scrivere testi, elaborare immagini e
filmati, progettare strutture, produrre musica o svolgere attività di gioco. Questa flessibilità
rende il computer uno strumento estremamente versatile.
Computer e programmi
Il computer esegue istruzioni con estrema velocità, elaborando grandi quantità di dati. Ogni
risultato prodotto dipende esclusivamente dalla correttezza del programma eseguito. Un
errore nella sequenza di istruzioni porta a risultati errati, anche se il calcolo viene eseguito
molto rapidamente.
Computer specializzati
Esistono computer specializzati integrati all’interno di altri dispositivi, come telefoni
cellulari, automobili, elettrodomestici e sistemi di controllo. In questi casi il computer non è
percepito come un dispositivo autonomo, ma come parte integrante del funzionamento
dell’apparecchiatura.
Hardware e software
Ogni sistema informatico è composto da hardware e software. L’hardware comprende tutti
i componenti fisici del computer, mentre il software è costituito dall’insieme di programmi e
dati che regolano il funzionamento dell’hardware.
Il sistema operativo
Per funzionare correttamente, il computer necessita di un programma fondamentale
chiamato sistema operativo. Il sistema operativo gestisce le risorse hardware, coordina
l’esecuzione dei programmi e consente l’interazione tra l’utente e la macchina.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
-
Appunti Informatica
-
Appunti Informatica
-
Appunti Fondamenti di Informatica
-
Appunti Fondamenti di informatica