mail unicampaniaunicampania webcerca

    Insegnamento di PROGRAMMAZIONE CONCORRENTE E DISTRIBUITA

    Corso di laurea magistrale in MATEMATICA

    SSD: ING-INF/05

    CFU: 8,00

    ORE PER UNITÀ DIDATTICA: 72,00

    Periodo di Erogazione:

    Italiano

    Lingua di insegnamento

    Italiano

    Obiettivi formativi

    Conoscenza e capacità di comprensione (knowledge and understanding):
    Conoscenze dei principi dell’organizzazione e funzionamento dei sistemi operativi e delle reti di calcolatori. Conoscenza dei principi di programmazione ad oggetti e loro applicazione al linguaggio Java. Conoscenza delle primitive Java per la costruzioni di applicazioni concorrenti e distribuite.

    Capacità di applicare conoscenza e comprensione (applying knowledge and understanding):
    Capacità di analizzare semplici problemi e di progettare strutture di classi ed algoritmi per la loro risoluzione automatica. Capacità di implementare tali algoritmi in programmi e di usare gli strumenti software adeguati (editor, compilatori, linker, etc.)

    Abilità comunicative (communication skills):
    Capacità di motivare le scelte progettuali ed implementative effettuate in modo logico ed argomentato. Capacità di usare la terminologia propria dei sistemi operativi e delle reti di calcolo.

    Al termine dell'insegnamento lo studente dovrà dimostrare:
    - di saper progettare semplici programmi concorrenti e distribuiti;
    - di saper far uso degli strumenti di sviluppo in ambiente Java;
    - di avere compreso i meccanismi di base dei sistemi operativi e delle reti di calcolatori.
    Capacità di apprendere (learnings skills):
    Capacità di integrare lo studio dei linguaggi proposti con riferimenti esterni in grado di dettagliare quanto presentato a corso nonché di fornire supporto alla fase di debugging.

    Prerequisiti

    Prerequisiti: Elementi di Informatica

    Metodologie didattiche

    Modalità di svolgimento: 48 ore di lezione, 24 ore di attività di laboratorio. Data la presenza di una prova d’esame pratica è consigliata la frequenza alle lezioni di laboratorio.

    Metodi di valutazione

    L’esame si compone di due prove: una prova pratica ed una prova orale.
    La prova pratica mira ad accertarsi della competenze legate all’analisi ed allo sviluppo di programmi scritti in Java. La prova viene superata se quanto scritto è corretto e soddisfa i requisiti richiesti nella traccia. La prova pratica potrà essere tenuta sotto forma di elaborato da consegnare e da discutere all’esame e/o in forma di prova a tempo al calcolatore.
    La prova orale mira a valutare le capacità di ragionamento sugli argomenti del corso la verifica delle conoscenze dello studente anche attraverso il collegamento di contenuti trasversali e la capacità espositiva.
    Non sono previste prove di esonero durante il corso.

    Altre informazioni

    Eventuale materiale didattico sarà reso disponibile durante il corso.

    Programma del corso

    Richiami di architettura dei calcolatori:
    Organizzazione e principi di funzionamento di un calcolatore. Organi e data-flow dell'unità centrale. Funzione ed organizzazione della memoria centrale. Interruzione nel ciclo del processore.

    Sistemi operativi:
    Ruolo del sistema operativo (SO) in un sistema di calcolo: evoluzione e tassonomia dei SO; funzionalità dei SO: gestione processore, memorie, dispositivi periferici, interazione con gli utenti; struttura dei sistemi opeartivi: il kernel e le chiamate di sistema. La gestione delle periferiche, della memoria e file systems: descrizione delle funzionalità.

    Gestione dei processi:
    Il concetto di processo: definizione e ruolo del descrittore di processo; la creazione/terminazione di un processo; stati di un processo; la commutazione di contesto, lo scheduling di processi; i processi leggeri (threads); il ruolo del kernel nello scheduling. Le principali system call POSIX (fork, exec, wait, ..).

    Reti di Calcolatori:
    Concetti generali. Topologie (ring, bus, star e tree) e connettività. Reti LAN, MAN e WAN. Architettura a livelli. Modello ISO-OSI. TCP/IP: caratteristiche principali. Protocollo Internet (IP): indirizzamento e routing. Il livello TCP/UDP: socket.

    Applicazioni web:
    Struttura e caratteristiche delle applicazioni client/server e peer-to-peer. Applicazioni di particolare interesse: DHCP, DNS, Mail, e Web.

    Introduzione al linguaggio Java:
    Introduzione al paradigma di programmazione orientato agli oggetti. Linguaggio java, concetti di base: costrutti di base, classi, oggetti, ereditarietà, tipi dato elementari, array e liste. Programmazione concorrente: processi, thread e loro sincronizzazione. Programmazione in ambiente di rete: le socket e loro uso in semplici applicazioni client/server e peer-to-peer.

    Insegnamento di PROGRAMMAZIONE CONCORRENTE E DISTRIBUITA

    Corso di laurea magistrale in MATEMATICA

    SSD: ING-INF/05

    CFU: 8,00

    ORE PER UNITÀ DIDATTICA: 72,00

    Periodo di Erogazione:

    Italiano

    Lingua di insegnamento

    Italiano

    Obiettivi formativi

    Conoscenza e capacità di comprensione (knowledge and understanding):
    Conoscenze dei principi dell’organizzazione e funzionamento dei sistemi operativi e delle reti di calcolatori. Conoscenza dei principi di programmazione ad oggetti e loro applicazione al linguaggio Java. Conoscenza delle primitive Java per la costruzioni di applicazioni concorrenti e distribuite.

    Capacità di applicare conoscenza e comprensione (applying knowledge and understanding):
    Capacità di analizzare semplici problemi e di progettare strutture di classi ed algoritmi per la loro risoluzione automatica. Capacità di implementare tali algoritmi in programmi e di usare gli strumenti software adeguati (editor, compilatori, linker, etc.)

    Abilità comunicative (communication skills):
    Capacità di motivare le scelte progettuali ed implementative effettuate in modo logico ed argomentato. Capacità di usare la terminologia propria dei sistemi operativi e delle reti di calcolo.

    Al termine dell'insegnamento lo studente dovrà dimostrare:
    - di saper progettare semplici programmi concorrenti e distribuiti;
    - di saper far uso degli strumenti di sviluppo in ambiente Java;
    - di avere compreso i meccanismi di base dei sistemi operativi e delle reti di calcolatori.
    Capacità di apprendere (learnings skills):
    Capacità di integrare lo studio dei linguaggi proposti con riferimenti esterni in grado di dettagliare quanto presentato a corso nonché di fornire supporto alla fase di debugging.

    Prerequisiti

    Prerequisiti: Elementi di Informatica

    Metodologie didattiche

    Modalità di svolgimento: 48 ore di lezione, 24 ore di attività di laboratorio. Data la presenza di una prova d’esame pratica è consigliata la frequenza alle lezioni di laboratorio.

    Metodi di valutazione

    L’esame si compone di due prove: una prova pratica ed una prova orale.
    La prova pratica mira ad accertarsi della competenze legate all’analisi ed allo sviluppo di programmi scritti in Java. La prova viene superata se quanto scritto è corretto e soddisfa i requisiti richiesti nella traccia. La prova pratica potrà essere tenuta sotto forma di elaborato da consegnare e da discutere all’esame e/o in forma di prova a tempo al calcolatore.
    La prova orale mira a valutare le capacità di ragionamento sugli argomenti del corso la verifica delle conoscenze dello studente anche attraverso il collegamento di contenuti trasversali e la capacità espositiva.
    Non sono previste prove di esonero durante il corso.

    Altre informazioni

    Eventuale materiale didattico sarà reso disponibile durante il corso.

    Programma del corso

    Richiami di architettura dei calcolatori:
    Organizzazione e principi di funzionamento di un calcolatore. Organi e data-flow dell'unità centrale. Funzione ed organizzazione della memoria centrale. Interruzione nel ciclo del processore.

    Sistemi operativi:
    Ruolo del sistema operativo (SO) in un sistema di calcolo: evoluzione e tassonomia dei SO; funzionalità dei SO: gestione processore, memorie, dispositivi periferici, interazione con gli utenti; struttura dei sistemi opeartivi: il kernel e le chiamate di sistema. La gestione delle periferiche, della memoria e file systems: descrizione delle funzionalità.

    Gestione dei processi:
    Il concetto di processo: definizione e ruolo del descrittore di processo; la creazione/terminazione di un processo; stati di un processo; la commutazione di contesto, lo scheduling di processi; i processi leggeri (threads); il ruolo del kernel nello scheduling. Le principali system call POSIX (fork, exec, wait, ..).

    Reti di Calcolatori:
    Concetti generali. Topologie (ring, bus, star e tree) e connettività. Reti LAN, MAN e WAN. Architettura a livelli. Modello ISO-OSI. TCP/IP: caratteristiche principali. Protocollo Internet (IP): indirizzamento e routing. Il livello TCP/UDP: socket.

    Applicazioni web:
    Struttura e caratteristiche delle applicazioni client/server e peer-to-peer. Applicazioni di particolare interesse: DHCP, DNS, Mail, e Web.

    Introduzione al linguaggio Java:
    Introduzione al paradigma di programmazione orientato agli oggetti. Linguaggio java, concetti di base: costrutti di base, classi, oggetti, ereditarietà, tipi dato elementari, array e liste. Programmazione concorrente: processi, thread e loro sincronizzazione. Programmazione in ambiente di rete: le socket e loro uso in semplici applicazioni client/server e peer-to-peer.

    facebook logoinstagram buttonyoutube logotype