INFORMATICA I
Anno accademico 2018/2019 - 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.
Modalità di svolgimento dell'insegnamento
Lezioni Frontali e Laboratorio
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 |
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