Conoscenza dell’architettura di un sistema di elaborazione. Capacità di analisi e progetto di moduli combinatori e sequenziali. Capacità di individuazione e dimensionamento delle componenti fondamentali di un elaboratore. Conoscenza del repertorio di base delle istruzioni del linguaggio macchina e delle loro modalità di esecuzione.
Modulo Intelligent Agents: Lo studente apprendera’ concetti, linguaggi, strumenti e metodologie per lo sviluppo di agenti intelligenti e sistemi multi-agente, sperimentando anche mediante applicazioni reali.
Corso integrato, articolato nei seguenti moduli: Basi di Dati e Laboratorio di Basi di Dati. Si propone di fornire conoscenze competenze teoriche e pratiche sulle basi di dati e sulle loro applicazioni, con attenzione agli sviluppi futuri (basi di dati avanzate) Modulo Basi di Dati: Seguendo il Corso, lo studente potrà comprendere cosa e' una Base di Dati, dal punto di vista concettuale, matematico e pratico. Dovrà conoscere il modello relazionale, inclusi i formalismi per definire le interrogazioni. Dovrà essere in grado di sviluppare il progetto concettuale e logico di una Base di Dati relazionale, sia rispetto alla struttura che alle operazioni. Dovrà comprendere le funzionalita' di base di un DBMS (Data Base Management System). Acquisirà nozioni sugli aspetti avanzati e sulgli sviluppi futuri del campo. Modulo Laboratorio di Basi di Dati: Seguendo questo corso, gli studenti potranno integrare e completare la loro conoscenza dei modelli formali usati nelle varie fasi della progettazione di una base di dati (entità-relazione, relazionale, ecc.), vedendoli applicati a casi di studio reali, e impareranno ad interagire con i DBMS piu' diffusi, tramite l'uso del linguaggio SQL e attraverso le interfacce fornite dai linguaggi di programmazione. Gli studenti infine, lavorando in gruppo, verranno coinvolti nell'intero processo di sviluppo di una base di dati completa e funzionante, partendo dalle specifiche utente per arrivare all'implementazione delle funzionalita' richieste sul DBMS e alla realizzazione dell'interfaccia utente.
The course provides the foundations for designing and analyzing (distributed) algorithms for reliable, faulty, concurrent, and adversarial distributed systems.
Corso integrato, articolato dai seguenti moduli: Fondamenti di Programmazione e Lab. di Programmazione I Modulo Fondamenti di Programmazione: Il corso introduce nozioni sulla Sintassi e Semantica dei Linguaggi di Programmazione attraverso l'utilizzo delle Grammatiche e dei Sistemi di Transizione. In particolare, il corso studia la Semantica Operazionale di un sottoinsieme del Linguaggio di Programmazione Java. Modulo Laboratorio di Programmazione I: Conoscenze: nozioni di base della programmazione imperativa ed orientata agli oggetti. Capacita': essere in grado di risolvere problemi semplici, saper implementare i relativi algoritmi correttamente in un linguaggio di programmazione strutturata, essere capace di strutturare dati complessi e le operazioni su tali dati, essere in grado di utilizzare il calcolatore per eseguire semplici programmi. Comportamenti attesi: interesse per l'attivita' di formalizzazione di problemi, dati e soluzioni in un linguaggio di programmazione, ed una costante attivita' di programmazione al calcolatore
It has become nearly impossible to live in today’s society and to be not dependent on information systems of one type or another. This course provides an introduction to Information Systems and Network Security. The main objective is to provide students with an overall understanding of the main concepts of information systems and network security, to highlight their increasing importance in modern organizations and societies and to emphasize the ethical, social and security implications.
Il corso si propone di fornire una preparazione di base su tutte le tipologie di applicazioni per il web e sulle tecnologie utilizzabili per realizzarle. Verranno approfonditi inizialmente aspetti di base quali XML, i linguaggi markup (HTML 4 e HTML 5) e i fogli di stile. Verranno poi illustrati i linguaggi di programmazione lato server e lato client, con particolare riguardo per Java e Javascript. Infine, saranno affrontate problematiche di accessibilità e validazione dei siti web.
Modulo Algoritmi e Strutture Dati: L'obiettivo del corso è quello di fornire allo studente competenze di base sui metodi di rappresentazione delle principali strutture di dati, sui rispettivi algoritmi fondamentali per la loro gestione e sulla valutazione della complessità computazionale di un algoritmo e di un problema. Infine, mira a sviluppare un’intuizione finalizzata alla soluzione efficiente di problemi computazionali Modulo Laboratorio di Algoritmi e Strutture Dati: A partire dalle conoscenze acquisite nel corso di Fondamenti di Programmazione con Laboratorio, il modulo si concentra sullo studio di algoritmi e strutture dati fondamentali, stimolandone la comprensione attraverso la sperimentazione diretta in linguaggio Java. Il modulo illustra le principali tecniche di progettazione e le principali metodologie di analisi di algoritmi e strutture dati. Le lezioni sono svolte in linguaggio Java di cui si assume una conoscenza di base.
Conoscenza dell’architettura di un sistema di elaborazione. Capacità di analisi e progetto di moduli combinatori e sequenziali. Capacità di individuazione e dimensionamento delle componenti fondamentali di un elaboratore. Conoscenza del repertorio di base delle istruzioni del linguaggio macchina e delle loro modalità di esecuzione.