INFORMATICA I

Anno accademico 2018/2019 - 1° anno
Docente: Giovanni Maria FARINELLA
Crediti: 6
SSD: INF/01 - Informatica
Organizzazione didattica: 150 ore d'impegno totale, 103 di studio individuale, 35 di lezione frontale, 12 di esercitazione
Semestre:

Obiettivi formativi

  1. Conoscenza e capacità di comprensione (knowledge and understanding): lo studente acquisirà le conoscenze e i concetti alla base dell'informatica e della programmazione
  2. Capacità di applicare conoscenza e comprensione (applying knowledge and understanding): lo studente acquisirà le competenze pratiche sulla programmazione di base
  3. 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
  4. 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.
  5. 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

 ArgomentiRiferimenti testi
1Cenni alla struttura del calcolatore moderno (Architettura della CPU, la memoria principale, la memoria di massa, concetti di rete di calcolatori)
2Il sistema operativo (scheduling dei processi, gestione dei file e della memoria)
3Digitalizzazione dei segnali analogici (campionamento e quantizzazione)
4Sistemi di Numerazione (binario, ottale, esadecimale)
5Rappresentazione di numeri interi e razionali
6Rappresentazione del testo (codifica ASCII)
7Rappresentazione delle immagini raster (cenni)
8Concetto di Algoritmo1, 2, 3 
9Diagrammi di flusso1, 2, 3 
10Strutture Condizionali: if-else, if-then-else1, 2, 3 
11Iterazioni e Cicli: while, for1, 2, 3 
12Linguaggi: traduzione, intepretazione e compilazione.1, 2, 3 
13Struttura di un programma1, 2, 3 
14Concetto di variabile in programmazione, tipi di dati. Modificatori sulle variabili1, 2, 3 
15Array1, 2, 3 
16Funzioni e funzioni ricorsive1, 2, 3 
17La struttura dati albero e operazioni fondamentali su esso1, 2, 3 
18Algoritmi di Ordinamento1, 2, 3 
19Introduzione al linguaggio di programmazione Python2,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