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.
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.
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
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.
Nel corso viene illustrata la struttura dei compilatori e sono presentate le principali metodologie impiegate nelle varie fasi del processo di compilazione, in particolare i principi e le tecniche della parte di analisi di un compilatore
L'obiettivo principale del corso è fornire agli studenti le conoscenze necessarie per la progettazione e realizzazione di applicazioni complete e di scala commerciale. Alla fine del corso gli studenti saranno in grado di usare le metodologie di progettazione necessarie per gestire la complessità di tali applicazioni, saranno di in gradi di programmare client-side e server-side, e di gestire database e la loro connettività. I linguaggi, sistemi e tecniche che si apprenderanno sono: HTML/CSS, DOM, JavaScript, jQuery, Bootstrap, PHP, MySQL, Templating, beContent, etc
Il corso ha lo scopo di fornire motivazioni, definizioni e tecniche di base della Teoria della Calcolabilità e della Teoria della Complessità. Alla fine del corso, dopo avere superato l'esame, lo studente deve essere in grado di conoscere la nozione di algoritmo in molte sue declinazioni equivalenti e le limitazioni di tale nozione. Deve conoscere le principali classi di linguaggi, sia nella Teoria della Calcolabilità che nella Teoria della Complessità e le loro principali proprietà. Deve inoltre conoscere i principali strumenti tecnici utilizzati in queste teorie, come, ad esempio le tecniche di diagonalizzazione, le riduzioni e le riduzioni polinomiali