Seguici su
Cerca

INFORMATICA I

Anno accademico 2016/2017 - 1° anno
Docente: Giovanni Maria FARINELLA
Crediti: 6
Organizzazione didattica: 150 ore d'impegno totale, 115 di studio individuale, 35 di lezione frontale
Semestre:

Obiettivi formativi

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

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

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