OBIETTIVI FORMATIVI

Il corso si propone di introdurre gli elementi fondamentali dell'Informatica e di fornire i primi rudimenti di programmazione. Al termine del corso lo studente conosce i concetti di algoritmo, programma, informazione, conosce a livello elementare la struttura hardware di un calcolatore, la struttura di un sistema operativo, la struttura di una rete, è in grado di leggere semplici programi scritti in C e C++, ed è in grado di scrivere semplici programmi nei linguaggi C e C++. Nel corso non viene trattata la programmazione ad oggetti.

ATTIVITÀ FORMATIVE

Il corso viene svolto in 32 ore di lezione frontale suddivise in 16 lezioni di due ore ciascuna, e 24 ore di laboratorio suddivise in 10 lezioni di 3 ore ciascuna. Le lezioni di teoria sono volutamente dense e più ricche di contenuti rispetto a quanto dichiarato negli obiettivi formativi. Questo al fine di affrontare gli argomenti fondamentali con il più alto numero di esempi possibile e di fornire agli studenti interessati gli strumenti necessari per ulteriori approfondimenti personali. Le lezioni di laboratorio consistono nella risoluzione di semplici esercizi di programmazione al calcolatore.

PROGRAMMA DEL CORSO

PIANO DELLE LEZIONI

Lezione 1: Introduzione al corso. Cenni alla storia dell'Informatica
Riferimenti: Capitolo 1.

Lezione 2: Il concetto di algoritmo. Proprietà di un esecutore.
Riferimenti: Capitolo 2 (2.1).

Lezione 3: Struttura di un linguaggio di programmazione.
Riferimenti: Capitolo 2 (2.2.1, 2.2.2, 2.2.4).

Lezione 4: Tipi di dati primitivi, array, record.
Riferimenti: Capitolo 2 (2.2.3, 2.2.4).

Lezione 5: Elementi di teoria dell'informazione.
Riferimenti: Capitolo 3 (3.1).

Lezione 6: Rappresentazione dei dati in un calcolatore.
Riferimenti: Capitolo 3 (3.2).

Lezione 7: Informazione analogica e digitale.
Riferimenti: Capitolo 3 (3.3).

Lezione 8: Architettura di un elaboratore, macchina di Von Neumann.
Riferimenti: Capitolo 4 (4.1).

Lezione 9: Struttura e funzionamento di una CPU.
Riferimenti: Capitolo 4 (4.2).

Lezione 10: Struttura e classificazione delle memorie.
Riferimenti: Capitolo 4 (4.3, 4.4, 4.5).

Lezione 11: Struttura di un sistema operativo.
Riferimenti: Capitolo 5 (5.1, 5.2).

Lezione 12: Componenti di un sistema operativo.
Riferimenti: Capitolo 5 (5.3, 5.4, 5.5).

Lezione 13: Struttura delle reti di calcolatori.
Riferimenti: Capitolo 4 (4.7, 4.8, 4.9).

Lezione 14: Protocolli su reti.
Riferimenti: Capitolo 5 (5.6).

Lezione 15: Elementi di sicurezza informatica.
Riferimenti: Appunti personali.

Lezione 16: Revisione del corso e conclusioni.
Riferimenti: .

Laboratorio 1: Struttura del laboratorio, accesso alle macchine, configurazione account, uso della posta elettronica, di un web browser, e di un editor di testo.

Laboratorio 2: Scrittura di semplici programmi e loro esecuzione.

Laboratorio 3: Operazioni su array (somma elementi, lettura, stampa) mediante sottoprogrammi.

Laboratorio 4: Lettura e scrittura formattata di un array bisimensionale.

Laboratorio 5: Operazioni su stringhe: confronto, verifica prefisso, verifica sottostringa.

Laboratorio 6: Operazioni su stringhe: concatenazione, calcolo lunghezza, conteggio caratteri, rovesciamento, riconoscimento palindrome.

Laboratorio 7: Esercizi sul passaggio di parametri per valore e per riferimento.

Laboratorio 8: Ordinamento di un array con Insertion Sort.

Laboratorio 9: Ricerca su un array, ricerca dicotomica, partizionamento, ordinamento con Quick Sort.

Laboratorio 10: Scrittura di un semplice programma completo: il gioco "indovina numero".