INFORMATICA I
Anno accademico 2017/2018 - 1° annoCrediti: 6
Organizzazione didattica: 150 ore d'impegno totale, 103 di studio individuale, 35 di lezione frontale, 12 di esercitazione
Semestre: 2°
Obiettivi formativi
- Conoscenza e capacità di comprensione (knowledge and understanding): lo studente acquisirà le conoscenze e i concetti alla base dell'informatica e della programmazione
- Capacità di applicare conoscenza e comprensione (applying knowledge and understanding): lo studente acquisirà le competenze pratiche sulla programmazione di base
- Autonomia di giudizio (making judgements): Attraverso gli homework e le correzioni in classe degli stessi lo studente sarà in grado di elaborare autonomamente soluzioni in grado di risolvere i problemi di base che potrebbero presentarsi nel mondo del lavoro
- Abilità comunicative (communication skills): lo studente acquisirà le necessarie abilità comunicative e di appropriatezza espressiva nell'impiego del linguaggio tecnico nell'ambito generale dell'informatica.
- Capacità di apprendimento (learning skills): Il corso si propone di fornire le nozioni fondamentali dell’informatica e far sperimentare alcune attività di programmazione al fine di fornire le competenze informatiche necessarie utili nell’ambito delle scienze matematiche.
Prerequisiti richiesti
Nessuno
Frequenza lezioni
Consigliata
Contenuti del corso
Architettura del Computer e Rappresentazione delle Informazioni
- Cenni alla struttura del calcolatore moderno (Architettura della CPU, la memoria principale, la memoria di massa, concetti di rete di calcolatori)
- Il sistema operativo (scheduling dei processi, gestione dei file e della memoria)
- Digitalizzazione dei segnali analogici (campionamento e quantizzazione)
- Sistemi di Numerazione (binario, ottale, esadecimale)
- Rappresentazione di numeri interi e razionali
- Rappresentazione del testo (codifica ASCII)
- Rappresentazione delle immagini raster (cenni)
Introduzione alla Programmazione
- Concetto di Algoritmo
- Diagrammi di flusso
- Strutture Condizionali: if-else, if-then-else
- Iterazioni e Cicli: while, for
- Linguaggi: traduzione, intepretazione e compilazione.
- Struttura di un programma
- Concetto di variabile in programmazione, tipi di dati. Modificatori sulle variabili
- Array
- Algoritmi di Ordinamento
- Funzioni e funzioni ricorsive
- La struttura dati albero e operazioni fondamentali su esso
- Algoritmi di Ordinamento
- Introduzione al linguaggio di programmazione Python
Testi di riferimento
1) Libro di riferimento: Brookshear J. Glenn, Informatica – Una panoramica generale, Pearson- Education Italia, 2012
2) Libro di riferimento: Brad Miller, David Ranum, Problem Solving with Algorithms and Data Structures, The Runestone Interactive Library, 2013
3) Introduzione a Python, Tony Gaddis, Pearson- Education Italia, 2016
Programmazione del corso
* | Argomenti | Riferimenti testi | |
---|---|---|---|
1 | * | Cenni alla struttura del calcolatore moderno (Architettura della CPU, la memoria principale, la memoria di massa, concetti di rete di calcolatori) | 1 |
2 | * | Il sistema operativo (scheduling dei processi, gestione dei file e della memoria) | 1 |
3 | * | Digitalizzazione dei segnali analogici (campionamento e quantizzazione) | 1 |
4 | * | Sistemi di Numerazione (binario, ottale, esadecimale) | 1 |
5 | * | Rappresentazione di numeri interi e razionali | 1 |
6 | * | Rappresentazione del testo (codifica ASCII) | 1 |
7 | * | Rappresentazione delle immagini raster (cenni) | 1 |
8 | * | Concetto di Algoritmo | 1, 2, 3 |
9 | * | Diagrammi di flusso | 1, 2, 3 |
10 | * | Strutture Condizionali: if-else, if-then-else | 1, 2, 3 |
11 | * | Iterazioni e Cicli: while, for | 1, 2, 3 |
12 | * | Linguaggi: traduzione, intepretazione e compilazione. | 1, 2, 3 |
13 | * | Struttura di un programma | 1, 2, 3 |
14 | * | Concetto di variabile in programmazione, tipi di dati. Modificatori sulle variabili | 1, 2, 3 |
15 | * | Array | 1, 2, 3 |
16 | * | Funzioni e funzioni ricorsive | 1, 2, 3 |
17 | * | La struttura dati albero e operazioni fondamentali su esso | 1, 2, 3 |
18 | * | Algoritmi di Ordinamento | 1, 2, 3 |
19 | * | Introduzione al linguaggio di programmazione Python | 2,3 |
N.B. La conoscenza degli argomenti contrassegnati con l'asterisco è condizione necessaria ma non sufficiente per il superamento dell'esame. Rispondere in maniera sufficiente o anche più che sufficiente alle domande su tali argomenti non assicura, pertanto, il superamento dell'esame.
Verifica dell'apprendimento
Modalità di verifica dell'apprendimento
Prova scritta e di laboratorio
Esempi di domande e/o esercizi frequenti
- Discutere il funzionamento dell’algoritmo Quick Sort
- Scrivere il codice Phyhon dell’algoritmo Quick Sort
- Sia S un insieme composto da 123 elementi. Qual è il numero minimo di bit necessario per la codifica degli elementi dell'insieme S?
- Discutere il problema della frammentazione della memoria RAM e le possibili soluzioni da adottare