Nel secondo modulo dell'esame di Inglese, lo studente acquisirà conoscenze di inglese tecnico affrontando in lingua inglese argomenti trattati in corsi dell’area informatica seguiti al I semestre.

CFU 4:
Architettura di un elaboratore. La codifica binaria. Reti logiche. Porte logiche e algebra booleana. 
CFU 5:
Algoritmo e programma. Rappresentazione dell’algoritmo. Diagrammi di flusso e la pseudocodifica.
CFU 6:
Introduzione ai sistemi operativi. Attività e struttura di un sistema operativo. Il kernel ed i moduli di un sistema operativo.

Lo studente acquisirà le nozioni basilari su:

  • logica, con particolare attenzione alle loro applicazioni in informatica;
  • automi e grammatiche come formalismi per definire il comportamento di un sistema ed utilizzati nelle diverse fasi della compilazione;
  • elementi sulla progettazione degli algoritmi con cenni alla complessità.

Conoscenza e capacità di comprensione  
Il corso si propone di fornire le conoscenze dei meccanismi di base dell'inferenza logica, attraverso lo studio delle nozioni fondamentali di logica proposizionale classica e del primo ordine. Tali conoscenze sono rivolte a formare e ad aumentare la capacità logica, di formalizzazione e di astrazione delle informazioni e anche la capacità della comprensione degli aspetti teorici e pratici dei principi dei linguaggi di programmazione.  

Conoscenza e capacità di comprensione applicate
I concetti logici e formali applicati abbondantemente nell’informatica. Lo studente sarà in grado di progettare, attraverso l’uso della logica, degli automi e dei linguaggi formali, soluzioni algoritmiche a semplici problemi.

Autonomia di giudizio
Lo studente sarà capace di analizzare problemi e avrà consapevolezza delle proprie capacità. Sarà in grado di risolvere un problema anche in maniera differente da come appreso a lezione e di valutare la correttezza logica dei ragionamenti.

Abilità comunicative
Lo studente imparerà a saper esporre e discutere i concetti informatici acquisiti con precisione concettuale e linguistica, grazie anche alla conoscenza di linguaggi formali e logici.

Capacità di apprendere
La conoscenza dei meccanismi logici del ragionamento matematico permette l’acquisizione di adeguate capacità per l'approfondimento delle proprie conoscenze e per lo sviluppo individuale di nuove competenze. Lo studente acquisirà, pertanto, una maggiore elasticità mentale che lo renderà più aperto alla continua evoluzione dell’Informatica. 


Il corso ha l'obiettivo di richiamare nozioni di base di Matematica. Fornire alcuni strumenti di algebra lineare e geometria che sono indispensabili per uno studente di un corso di laurea scientifico. Fornire le conoscenze di analisi matematica indispensabili per uno studente di un corso di laurea scientifico con particolare riguardo alle applicazioni in Informatica. Insistere sul formalismo e il rigore del ragionamento matematico.

Conoscenza e capacità di comprensione 
Lo studente, alla fine dell’attività didattica, conoscerà gli aspetti teorici e pratici inerenti a insiemi numerici, calcolo combinatorio, funzioni elementari, calcolo matriciale, numeri complessi, luoghi geometrici del piano, limiti, derivate, integrali.

Conoscenza e capacità di comprensione applicate
Lo studente al termine del corso avrà sperimentato attraverso esercizi e discussioni in aula la risoluzione di equazioni nel campo dei numeri complessi, comportamenti delle funzioni elementari, punti notevoli, misure, andamenti di luoghi geometrici del piano, calcolo matriciale, calcoli di limiti, derivate ed integrali, sviluppi in serie, risoluzione di equazioni differenziali sia su domande dirette che problemi inversi o quando strumentali alla risoluzione di problemi.

Autonomia di giudizio 
Lo studente raggiungerà le necessarie competenze per essere in grado di risolvere esercizi anche in maniera differente da come appreso a lezione. Preferenza di una dimostrazione di un teorema effettuata in modo diverso da come mostrata dal docente a lezione.

Abilità comunicative 
Lo studente sarà in grado di usare un linguaggio appropriato nell’enunciare teoremi, effettuare dimostrazioni, precisare definizioni. Saprà esprimere anche con linguaggio informare il significato di concetti, teoremi, definizioni.

Capacità di apprendere
Lo studente avrà la capacità di individuare lo strumento matematico utile a risolvere un determinato problema.


Lo studente, in coerenza con gli obiettivi del corso di studio, svilupperà competenze relative alla realizzazione di semplici programmi attraverso l’uso della programmazione object-oriented.

Conoscenza e capacità di comprensione 
Lo studente conoscerà gli aspetti teorici e pratici relativi alla progettazione e codifica di programmi in linguaggio Java con interfacce grafiche. 

Conoscenza e capacità di comprensione applicate
Lo studente sarà in grado di progettare e sviluppare attraverso l’uso del linguaggio Java semplici programmi. 

Autonomia di giudizio 
Lo studente sarà in grado di analizzare un insieme di requisiti funzionali e di adottare una strategia implementativa di tali requisiti anche diversa da quelle apprese a lezione. 

Abilità comunicative 
Lo studente sarà in grado di descrivere con sufficiente livello di formalismo e appropriato linguaggio una soluzione ad uno specifico problema.

Capacità di apprendere
Lo studente sarà in grado, dato un problema, di valutare le diverse strategie risolutive e scegliere la più adatta in specifiche circostanze, consapevole delle limitazioni e dei punti di forza della strategia adottata.


Lo studente, in coerenza con gli obiettivi del corso di studio, svilupperà competenze relative alla realizzazione di semplici programmi attraverso l’uso della programmazione procedurale.

Conoscenza e capacità di comprensione 
Lo studente conoscerà gli aspetti teorici e pratici relativi alla progettazione e codifica di programmi in linguaggio C basati su strutture dati lineari (programming in the small), con particolare riferimento al principio di astrazione funzionale e alla definizione di tipi di dati astratti. 

Conoscenza e capacità di comprensione applicate
Lo studente sarà in grado di progettare e sviluppare attraverso l’uso del linguaggio C. 

Autonomia di giudizio 
Lo studente sarà in grado di analizzare un insieme di requisiti funzionali e di adottare una strategia implementativa di tali requisiti anche diversa da quelle apprese a lezione. 

Abilità comunicative 
Lo studente sarà in grado di descrivere con sufficiente livello di formalismo e appropriato linguaggio una soluzione ad uno specifico problema.

Capacità di apprendere
Lo studente sarà in grado, dato un problema, di valutare le diverse strategie risolutive e scegliere la più adatta in specifiche circostanze, consapevole delle limitazioni e dei punti di forza della strategia adottata.

Il corso si prefigge come obiettivo l’insegnamento dei concetti fondamentali relativi ai moderni sistemi operativi. Lo studente comprenderà il ruolo dei sistemi operativi, la gestione delle risorse da parte di un sistema operativo e le principali differenze tra i diversi sistemi operativi moderni. Lo studente affronterà alcuni dei problemi tipici della gestione concorrente di risorse multiple, sia da un punto di vista teorico, sia da un punto di vista pratico. Infine, lo studente acquisirà familiarità con le varie distribuzioni e con l’interprete dei comandi di Linux.

Conoscenza e capacità di comprensione 
Lo studente, alla fine dell’attività didattica, conoscerà gli aspetti teorici e pratici alla base della realizzazione e dell’utilizzo dei sistemi operativi con particolare riferimento al sistema GNU-Linux.

Conoscenza e capacità di comprensione applicate
Lo studente sperimenterà i diversi sistemi operativi moderni e le diversi distribuzioni e sarà incoraggiato a personalizzare l’ambiente in base alle proprie specifiche esigenze. Al fine di poter sperimentare le diverse distribuzioni sarà utilizzato un software di virtualizzazione.

Autonomia di giudizio 
Lo studente raggiungerà le necessarie competenze per valutare i pro e i contro di ciascuna delle soluzioni sperimentate non solo dal punto di vista di un utilizzatore finale, ma anche e soprattutto in termini di un esperto sistemista.

Abilità comunicative 
Lo studente sarà in grado di esprimere concetti tecnici complessi, come quelli inerenti la struttura e le componenti di un moderno sistema operativo attraverso un linguaggio chiaro e comprensibile anche ad un interlocutore non esperto.

Capacità di apprendere
Lo studente sarà in grado di comprendere il funzionamento di un sistema operativo accedendo ai sorgenti di un sistema reale e sperimentandone le diversi funzionalità. Lo studente sarà inoltre in grado di accedere alle principali fonti di documentazione online e comprenderne i contenuti sulla base di una conoscenza di base sui fondamenti di un sistema operativo moderno.


Il corso ha l'obiettivo di analizzare il rapporto intercorrente tra informatica e diritto, con particolare riferimento alle principali normative in materia di reati informatici nel diritto comunitario e italiano, alla tutela della proprietà intellettuale, agli aspetti etico-giuridici di Internet, alla protezione dei dati personali, alle implicazioni legali concernenti spamming, data retention, social network, smartphone e tablet, cloud computing, videosorveglianza, biometria, nonché la digitalizzazione della Pubblica Amministrazione. Mediante l’acquisizione di un’adeguata conoscenza e comprensione dei contenuti tematici affrontati, tale insegnamento è finalizzato alla formazione di indispensabili capacità applicative delle nozioni apprese, atte a ingenerare buone potenzialità operative anche nell’ambito della regolamentazione giuridica delle tecnologie informatiche, soprattutto per quanto riguarda il trattamento dei dati personali in conformità alle disposizioni giuridiche vigenti.


L’obiettivo del corso di Architettura degli Elaboratori è quello di fornire agli studenti di Informatica le conoscenze fondamentali sull'organizzazione degli elaboratori elettronici e sui principi alla base del loro funzionamento. Si studierà la teoria dei circuiti digitali (analisi e sintesi di reti combinatorie e macchine sequenziali), come anche alcuni aspetti più avanzati dell'organizzazione e delle architetture dei sistemi di elaborazione e degli smartphone. Si forniranno gli strumenti essenziali per la comprensione dei principi di un linguaggio assemblativo e per il suo utilizzo. Inoltre, si forniranno le conoscenze principali per utilizzare la scheda Arduino.