Riassunto di Fondamenti di Informatica
Fondamenti di Informatica: Guida Completa per Studenti
Introduzione
L'informatica di base fornisce i concetti essenziali per comprendere come funzionano i computer, come si sviluppano programmi e come si gestiscono dati e risorse. Questo materiale è pensato per uno studente universitario e presenta concetti chiave, esempi pratici e applicazioni reali.
Definizione: L'informatica di base è lo studio dei principi fondamentali che governano la rappresentazione, l'elaborazione e la gestione delle informazioni mediante strumenti digitali.
1. Concetti fondamentali e terminologia
1.1 Dato vs Informazione
- Dato: un elemento grezzo, ad esempio un numero o una stringa.
- Informazione: significato derivato dall'elaborazione e contestualizzazione dei dati.
Definizione: Un dato è una rappresentazione grezza di fatti; un'informazione è il risultato dell'interpretazione dei dati.
Esempio pratico: i valori $23$, $24$, $22$ sono dati; la media $\frac{23+24+22}{3}=23$ è informazione sulla temperatura.
1.2 Algoritmi e strutture di controllo
- Algoritmo: sequenza finita di istruzioni per risolvere un problema.
- Strutture di controllo principali: sequenza, selezione (if/else), iterazione (for, while).
Definizione: Un algoritmo è una procedura ben definita che, a partire da input, produce un output in un numero finito di passi.
Esempio: calcolare il massimo tra tre numeri $a$, $b$, $c$:
- $m \leftarrow a$
- Se $b>m$ allora $m \leftarrow b$
- Se $c>m$ allora $m \leftarrow c$
- Restituisci $m$
1.3 Complessità computazionale (introduzione)
- Tempo di esecuzione e complessità spaziale.
- Notazione asintotica: $O(n)$, $O(\log n)$, $O(n^2)$ (concetto e confronto qualitativo).
Definizione: La complessità temporale misura come cresce il tempo di esecuzione di un algoritmo al crescere della dimensione dell'input.
Tabella comparativa:
| Complessità | Descrizione | Esempio tipico |
|---|---|---|
| $O(1)$ | Costante | accesso a elemento di array |
| $O(\log n)$ | Logaritmica | ricerca binaria |
| $O(n)$ | Lineare | scansione di array |
| $O(n \log n)$ | Quasilineare | algoritmi di ordinamento come mergesort |
| $O(n^2)$ | Quadratica | ordinamento per selezione su matrici |
2. Programmazione di base
2.1 Tipi di dati e variabili
- Tipi primitivi comuni: interi, numeri reali, booleani, caratteri, stringhe.
- Tipizzazione statica vs dinamica.
Definizione: Una variabile è una locazione di memoria con un nome che contiene un valore modificabile durante l'esecuzione di un programma.
Esempio: dichiarazione in pseudocodice: int conto = 0; oppure conto = 0 in linguaggi dinamici.
2.2 Controllo del flusso e funzioni
- Funzioni/procedure: modularità, parametri, valore di ritorno.
- Scope e lifetime delle variabili.
Definizione: Una funzione è un blocco di codice che riceve input, esegue operazioni e restituisce un output.
Esempio pratico: funzione per sommare due numeri $f(x,y)=x+y$ restituisce $x+y$.
2.3 Strutture dati fondamentali
- Array, liste, stack, queue, dizionari/hashtable.
Tabella comparativa:
| Struttura | Accesso | Inserimento/Cancellazione | Uso tipico |
|---|---|---|---|
| Array | $O(1)$ | $O(n)$ per mezzo | sequence fissa |
| Lista collegata | $O(n)$ | $O(1)$ in testa | inserimenti dinamici |
| Stack | $O(1)$ top | $O(1)$ push/pop | gestione chiamate |
| Queue | $O(1)$ front | $O(1)$ enqueue/dequeue | code di processi |
| Hashtable | $O(1)$ medio | $O(1)$ medio | mappature chiave-valore |
3. Software e sistemi
3.1 Tipologie di software
- Software di sistema: gestisce risorse hardware e fornisce servizi di base.
- Software applicativo: programmi che svolgono compiti specif
Hai già un account? Accedi
Informatica di base
Klíčové pojmy: Differenza tra dato e informazione con esempio numerico, Definizione e struttura di un algoritmo e esempio per massimo tra tre numeri, Concetti base di complessità: $O(1)$, $O(\log n)$, $O(n)$, $O(n\log n)$, $O(n^2)$, Tipi di dati e variabili: statici vs dinamici, Principali strutture dati: array, lista, stack, queue, hashtable e loro complessità, Fasi di compilazione ed esecuzione del software, Modello relazionale e operazioni CRUD; concetto di transazione e ACID, Principi di sicurezza: confidenzialità, integrità, disponibilità e uso di HTTPS, Esempio matematico: formula della media $\frac{1}{n}\sum_{i=1}^{n} x_i$, Ricerca binaria: algoritmo e uso degli indici $l$, $r$, $m$, Buone pratiche: controllo di versione, testing, code review