Laurea in Informatica

Didattica erogata

×
Stampa
Insegnamento
CYBERSECURITY
Codice
MF0738
Anno Accademico
2025/2026
Anno regolamento
2023/2024
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
BRINGHENTI Daniele
CFU
6.0
Ore di lezione
48.0
Ore di studio individuale
102.0
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OBB
Categoria insegnamento
B
Anno
3
Periodo
Primo Semestre
Sede
VERCELLI
Tipo di valutazione
V
Lingua insegnamento/Teaching language
ITALIANO
Italian
Contenuti/Content Summary
Introduzione ai principi fondamentali di sicurezza delle reti e di crittografia, descrizione delle tecniche fondamentali, ed esempi di applicazioni e protocolli.
Introduction to the fundamental principles of network security and cryptography, description of fundamental techniques, and examples of applications and protocols.
Testi di riferimento/Textbooks
William Stallings, Cryptography and Network Security, quinta o sesta edizione, Pearson
William Stallings, Cryptography and Network Security, fifth or sixth edition, Pearson
Obiettivi formativi/Mission
Conoscenza e capacità di comprensione: conoscere i principi basilari della sicurezza informatica, le tecniche crittografiche fondamentali e i dispositivi essenziali per la protezione di una rete di calcolatori. Applicazione di conoscenza e comprensione: saper analizzare il problema proposto e proporre strumenti di analisi e protezione. Autonomia di giudizio: corretta percezione dei rischi di sicurezza e del modo in cui gli aspetti di sicurezza informatica si intrecciano con l'organizzazione di una rete. Abilità comunicative: acquisizione della terminologia tecnica specifica dell'area e capacità di discutere di aspetti di sicurezza, e di meccanismi di protezione. Inoltre la studentessa/lo studente migliorerà la propria padronanza della lingua inglese a livello tecnico informatico. Capacità di apprendere: avendo appreso i principi fondamentali, la studentessa/lo studente sarà in grado in futuro di apprezzare e valutare tecnologie e protocolli nuovi che si basano sugli stessi principi.
Knowledge and understanding: know the basic principles of computer security, fundamental cryptographic techniques, and essential devices for protecting a computer network. Application of knowledge and understanding: know how to analyze the proposed problem and propose analysis and protection tools. Autonomy of judgment: correct perception of security risks and how computer security aspects are intertwined with the organization of a network. Communication skills: acquisition of area-specific technical terminology and ability to discuss security aspects and protection mechanisms. In addition, the student will improve her/his command of the English language at the technical computing level. Ability to learn: having learned the basic principles, the student will be able in the future to appreciate and evaluate new technologies and protocols that are based on the same principles.
Prerequisiti/Required background knowledge
Conoscenza del funzionamento delle reti di calcolatori, programmazione in Java, nozioni base di utilizzo di Unix.
Knowledge of the functioning of computer networks, programming in Java, basic notions of using Unix.
Metodi didattici/Teaching methods
Lezioni Frontali e Laboratori Didattici
Lectures and Didactic Laboratories
Altre informazioni/Further information
Le studentesse e gli studenti con disabilità o con Disturbi Specifici dell’Apprendimento (DSA) o con Bisogni Educativi Speciali (BES) possono richiedere servizi e strumenti specifici a loro dedicati, rivolgendosi allo "Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti" e consultando la pagina dedicata del sito di Ateneo: https://uniupo.it/it/servizi/servizi-studenti-disabili-e-dsa. Le studentesse e gli studenti con disabilità, DSA, BES, una volta preso contatto con lo Staff di Ateneo, possono contattare la/il docente titolare dell'insegnamento in relazione alla declinazione delle modalità di esame, in merito agli aspetti didattici.
Students with physical disabilities, Learning Disabilities or Special Education Needs can request specific services and tools via the "Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti", consulting the University webpage: https://www.uniupo.it/en/services/services-students-physical-or-learning-disabilities. Students with disabilities, learning disabilities or special education needs, once they have contacted the University Staff, can refer to the tutor in charge of the course to define the examination modalities, concerning academic aspects.
Modalità di verifica dell'apprendimento/Assessment methods
L’esame è scritto. L’esame è costituito da 6 domande a risposta aperta, per un totale di 32 punti. Il voto "30 e lode" è assegnato al raggiungimento di 31 punti.
The exam is written. The exam consists of 6 open-ended questions for a total of 32 points. The mark "30 cum laude" is assigned upon reaching 31 points.
Programma esteso/Content
-Introduzione alla sicurezza. Vulnerabilità e requisiti di sicurezza. - Politica di sicurezza - Crittografia a chiave simmetrica. Sistemi di cifratura a blocchi e a flusso. Principi di confusione e diffusione. DES e 3DES, AES, RC4. Cifratura di messaggi lunghi. - Crittografia a chiave pubblica. RSA, Diffie-Hellman e DSA: uso, attacchi, protocolli e standard.Introduzione alla crittografia a curve ellittiche: ECDH ed ECDSA. - Confronto tra i sistemi di crittografia a chiave pubblica e a chiave simmetrica. Schema ibrido. Scambio di segreti e generazione di chiavi simmetriche. IES ed ECIES. - Funzioni di hash crittograficamente sicure. Collisioni. Struttura delle funzioni hash. Esempi di funzioni hash. - Message Authentication Codes. Confronto con le funzioni hash. HMAC. - Autenticazione di messaggi a chiave pubblica e non ripudiabilità. - Il tempo: nonce e timestamp. Sincronizzazione. - Certificati digitali. Autorità di certificazione e Registration Authority. Liste di revoca. Protocollo OCSP. - Schema Autentication Authorization Accounting (AAA). Autenticazione: paradigmi login/password, challenge/response e timestamp. - VPN. Cenni su IPsec, SSL/TLS, SSH. - Firewall. Architettura di un firewall. Principi fondamentali. Bastion Host. DMZ. - Filtri di pacchetti statici e dinamici. Access list. Proxy.
-Introduction to safety. Vulnerabilities and security requirements. - Security policy - Symmetric key encryption. Block and stream encryption systems. Principles of confusion and diffusion. DES and 3DES, AES, RC4. Encryption of long messages. - Public key encryption. RSA, Diffie-Hellman and DSA: use, attacks, protocols and standards. Introduction to elliptic curve cryptography: ECDH and ECDSA. - Comparison between public key and symmetric key cryptography systems. Hybrid scheme. Exchange of secrets and generation of symmetric keys. IES and ECIES. - Cryptographically secure hash functions. Collisions. Structure of hash functions. Examples of hash functions. - Message Authentication Codes. Comparison with hash functions. HMAC. - Authentication of public key messages and non-repudiation. - Time: nonce and timestamp. Synchronization. - Digital certificates. Certification Authority and Registration Authority. Revocation lists. OCSP protocol. - Authentication Authorization Accounting (AAA) scheme. Authentication: login / password, challenge / response and timestamp paradigms. - VPN. Notes on IPsec, SSL / TLS, SSH. - Firewall. Architecture of a firewall. Fundamental principles. Bastion Host. DMZ. - Static and dynamic packet filters. Access list. Proxy.
Risultati di apprendimento attesi/Intended learning objectives
Descrivere i requisiti di sicurezza Descrivere i tipi di attacchi Spiegare le differenze tra la crittografia a chiave simmetrica e quella a chiave pubblica Spiegare cos'è un cifrario e saper distinguere tra le varie classi di cifrari Spiegare la funzione e i requisiti delle funzioni hash in crittografia Spiegare come si ottengono meccanismi per garantire l'integrità Spiegare le caratteristiche e il funzionamento della firma digitale Spiegare cosa sono i certificati digitali e illustrarne la funzione Spiegare i meccanismi per l'autenticazione (identificazione sicura) Spiegare i principi di sicurezza delle reti e illustrare gli strumenti che si utilizzano in questo ambito Analizzare i requisiti di sicurezza garantiti da un protocollo proposto Analizzare le funzionalità e i limiti di strumenti diversi come filtri di pacchetto a livello rete e proxy o filtri di pacchetti a livello applicativo
Describe the security requirements Describe the types of attacks Explain the differences between symmetric and public key cryptography Explain what a cipher is and be able to distinguish between the various classes of ciphers Explain the function and requirements of hash functions in cryptography Explain how mechanisms to ensure integrity are achieved Explain the characteristics and functioning of the digital signature Explain what digital certificates are and explain their function Explain the mechanisms for authentication (secure identification) Explain the principles of network security and explain the tools used in this area Analyze the security requirements guaranteed by a proposed protocol Analyze the functionality and limitations of different tools such as network-level packet filters and proxies or application-level packet filters
×
Stampa
Insegnamento
CYBERSECURITY
Codice
MF0737
Anno Accademico
2025/2026
Anno regolamento
2023/2024
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
EGIDI Lavinia
Docenti
CFU
6.0
Ore di lezione
48.0
Ore di studio individuale
102.0
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OBB
Categoria insegnamento
B
Anno
3
Periodo
Primo Semestre
Sede
ALESSANDRIA
Tipo di valutazione
V
Lingua insegnamento/Teaching language
Italiano.
Italian.
Contenuti/Content Summary
Introduzione ai principi fondamentali di sicurezza delle reti e di crittografia, descrizione delle tecniche fondamentali, ed esempi di  applicazioni e protocolli.
Introduction to the basic principles of network security and cryptography, description of the fundamental techniques, applications and protocols.
Testi di riferimento/Textbooks
William Stallings, Cryptography and Network Security, qualunque edizione a partire dalla quinta, Pearson oppure Maurizio Cinotti, Internet Security, terza edizione, Hoepli Informatica, ISBN 978-88-203-3895-4 (questo libro è fuori catalogo ma ancora valido sotto molti aspetti; è disponibile presso la biblioteca del Dipartimento) Del materiale aggiuntivo è fornito sul sito online del corso.
William Stallings, Cryptography and Network Security, fifth edition or any later one, Pearson or Maurizio Cinotti, Internet Security, third edition, Hoepli Informatica, ISBN 978-88-203-3895-4 (this book is no longer printed but still valid under many respects, and can be found in DiSIT's library) Additional material is provided on the course's online site.
Obiettivi formativi/Mission
Scopo dell'insegnamento è -sviluppare sensibilità sui rischi di sicurezza, sulla base di conoscenze di vulnerabilità e tipi di attacchi e di trasferire agli studenti -comprendere i principi della sicurezza informatica; -acquisire gli strumenti fondamentali per garantire requisiti di sicurezza.
The course's objective is to have students -develop a feeling on security risks, based on the knowledge of vulnerabilities and attack types; -learn the principles of information security; -acquire the fundamental tools for implementing security requirements.
Prerequisiti/Required background knowledge
Conoscenza del funzionamento delle reti di calcolatori, programmazione in Java, nozioni base di utilizzo di Unix.
Knowledge of the principles of operation of computer networks, Java programming, basic notions of Unix usage
Metodi didattici/Teaching methods
Il corso è insegnato interamente in laboratorio. Ciascuna lezione è costituita da una presentazione degli argomenti nella quale gli aspetti tecnici vengono arricchiti da ampi riferimenti ad incidenti informatici recenti, seguita da attività pratica; l'attività in laboratorio guida nella realizzazione di attacchi informatici, per fornire sensibilità riguardo alle vulnerabilità e comprensione delle caratteristiche e dei limiti delle tecnologie e dei meccanismi di sicurezza presentati; si propone implementazione di software crittografico, e configurazione di sistemi di sicurezza per fornire familiarità con gli strumenti software e il loro utilizzo. Gli argomenti trattati in ogni lezione insieme alle appropriate indicazioni bibliografiche e le indicazioni sull'attività pratica sono riportate sulla piattaforma DIR per permettere a coloro che seguono il corso di rivedere o completare le attività proposte e di mantenersi al passo con il corso in caso perdano qualche lezione; inoltre questo permette a coloro che non frequentano di svolgere autonomamente l'attività di laboratorio, e di seguire pur a distanza il corso delle lezioni. Inoltre sul DIR sono presenti documenti e link aggiuntivi a protocolli in uso, a notizie di cronaca sulla sicurezza informatica, ad organizzazioni che si occupano di sicurezza ecc, per stimolare la curiosità e mantenerw aggiornati in un campo in veloce evoluzione. Poiché tale documentazione è per la maggior parte in inglese, lo studio sarà anche uno strumento per migliorare la propria padronanza del linguaggio tecnico informatico in inglese. Infine sono a disposizione sul DIR quiz di autovalutazione che hanno lo scopo di incoraggiare il ragionamento autonomo sugli argomenti presentati. Durante la lezione viene usato lo strumento wooclap in modalità anonima per per porre domande al fine di verificare la comprensione degli argomenti e per stimolare una partecipazione attiva.
The course is entirely taught in lab. Each lesson begins with a presentation of the subject, during which technical aspects are enriched with references to recent security incidents. Hands on activity follows: students are guided in the realization of proof-of-concept security exploits, so that they acquire a feeling for vulnerabilities and understand the features and limits of security technologies and mechanisms; they are also guided in the implementation of cryptographic software, and in the configuration of security systems so that they acquire familiarity with software instruments and their use. Students can find on the DIR platform the subjects treated in each lesson, along with appropriate bibliographic references, and indications on the hands-on activity. This way students that attend the course can review or complete proposed activities and keep abreast of the course when they miss a class. This also enables non attending students to experiment on their own with the hands-on activity and to follow autonomously the class. Moreover on DIR students can find additional material such as (pointers to) documents about protocols, links to security news, and links to sites of organizations that work on security etc, in order to stimulate the curiosity of the students and to keep them up-to-date in a field that changes quickly. Since most of such material is written in English, preparing for the exam will give the students the possibility to practice the technical language of computer science. Finally on DIR, students have access to a self-evaluation quiz that aims at encouraging the students to reason about the subjects taught in class. During classes, questions are posed to students using the tool wooclap in anonymous mode, to verify comprehension and to stimulate active participation.
Altre informazioni/Further information
L'attività in laboratorio richiede una partecipazione attiva e individuale e induce a porsi dei quesiti (e spesso di conseguenza a porne alla docente); in tal modo permette una regolare verifica del modo in cui gli argomenti vengono recepiti. L'attività in laboratorio è pensata come strumento didattico per facilitare la comprensione e lo sviluppo della necessaria sensibilità, non come mezzo per insegnare ad utilizzare strumenti di sicurezza . Però chi partecipa con buona volontà trae dall'attività in laboratorio anche utili competenze pratiche. Durante la lezione viene usato lo strumento wooclap in modalità anonima per monitorare costantemente le difficoltà incontrate. Le persone con disabilità o con Disturbi Specifici dell’Apprendimento (DSA) o con Bisogni Educativi Speciali (BES) possono richiedere servizi e strumenti specifici a loro dedicati rivolgendosi allo Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti e consultando la pagina dedicata del sito di Ateneo: https://uniupo.it/it/servizi/servizi-studenti- disabili-e-dsa Le persone con disabilità, DSA, BES, una volta preso contatto con lo Staff di Ateneo, possono contattare la docente titolare dell'insegnamento in relazione alla declinazione delle modalità di esame, in merito agli aspetti didattici.
Hands-on activity requires active participation of the students, and leads the latter to ask themselves questions (and, as a consequence, often to ask questions to the instructor); this way it allows a regular monitoring of the way the subject is being understood. The activity in lab is thought as a way to ease comprehension and to develop the necessary sensitivity, and not as a means to teach usage of security tools. Yet, the motivated students gains from such activity also useful practical skills. During classes, questions are posed to students using the tool wooclap in anonymous mode, for a constant monitoring of the students' difficulties Students with physical disabilities, Learning Disabilities or Special Education Needs can request specific services and tools via the Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti, consulting the University webpage: https://www.uniupo.it/en/services/services- students-physical-or-learning-disabilities Students with disabilities, learning disabilities or special education needs, once they have contacted the University Staff, can refer to the tutor in charge of the course to define the examination modalities, concerning academic aspects.
Modalità di verifica dell'apprendimento/Assessment methods
L'esame è orale. All'orale vengono poste tre domande su tre argomenti (il numero di domande può variare ove necessario in base alle risposte, per verificare che gli obiettivi formativi siano stati raggiunti). Il colloquio si basa su due strumenti di verifica: la richiesta di descrizione di meccanismi o tecnologie presentate nel corso, al fine di verificare che siano stati appresi i principi e i meccanismi fondamentali; la discussione di semplici problemi di sicurezza o di variazioni di protocolli noti, per verificare che siano stati acquisiti la sensibilità ai rischi di sicurezza e una certa autonomia e senso critico nell'utilizzo degli strumenti appresi. La sufficienza si ottiene dimostrando la comprensione dei principi fondamentali e la padronanza del linguaggio tecnico. L'eccellenza si ottiene mostrando di avere acquisito capacità di individuare rischi di sicurezza in semplici problemi e dell'autonomia di giudizio nel proporre soluzioni e di avere acquisito un linguaggio tecnico appropriato. In alternativa all'orale, è possibile svolgere l'esame sotto forma di quiz a correzione automatica in laboratorio. In questo caso si ottiene la sufficienza rispondendo al 70% delle domande correttamente. Il voto massimo che si può ottenere con il quiz è 22/30, con il 90% di risposte corrette. Per svolgere l'esame sotto forma di quiz è richiesto di aggiungere, all'atto dell'iscrizione, una nota in cui si indica la propria preferenza.
The exam is an oral interview. During the interview, students must answer three questions on three different topics (although the number of questions can vary depending on the quality of the answers, since the goal is to ascertain that the student has attained the formative objectives). The interview uses basically two tools: it is verified that the student has learned the basic principles, mechanisms and technology taught in class and has acquired the appropriate technical language, through a request to describe some of the subjects; in order to verify that the student has acquired a feeling for security risks along with autonomy and critical skills in the use of security tools, the student is submitted simple security problems or minimal variations of known protocols and is asked to discuss them. The passing score is obtained showing comprehension of the fundamental principles and mastering of the technical language. Excellency is achieved showing skills in identifying security risks in simple problems, capability of judging the adequacy of solutions and by the achievement of an appropriate technical language. Students can choose to take the exam in the form of an automatically corrected quiz in lab. In this case, a passing score is obtained by correctly answering to 70% of the questions. The maximum score that one can obtain with the quiz is 22/30 which is achieved with at least 90% correct answers to the quiz. To take the exam in this form, students must add a note indicating their preference when they enroll for the exam.
Programma esteso/Content
-Introduzione alla sicurezza. Vulnerabilità e requisiti di sicurezza. - Politica di sicurezza - Crittografia a chiave simmetrica. Sistemi di cifratura a blocchi e a flusso. Principi di confusione e diffusione. DES e 3DES, AES, RC4. Cifratura di messaggi lunghi. - Crittografia a chiave pubblica. RSA, Diffie-Hellman e DSA: uso, attacchi, protocolli e standard.Introduzione alla crittografia a curve ellittiche: ECDH ed ECDSA. - Confronto tra i sistemi di crittografia a chiave pubblica e a chiave simmetrica. Schema ibrido. Scambio di segreti e generazione di chiavi simmetriche. IES ed ECIES. - Funzioni di hash crittograficamente sicure. Collisioni. Struttura delle funzioni hash. Esempi di funzioni hash. - Message Authentication Codes. Confronto con le funzioni hash. HMAC. - Autenticazione di messaggi a chiave pubblica e non ripudiabilità. - Il tempo: nonce e timestamp. Sincronizzazione. - Certificati digitali. Autorità di certificazione e Registration Authority. Liste di revoca. Protocollo OCSP. - Schema Autentication Authorization Accounting (AAA). Autenticazione: paradigmi login/password, challenge/response e timestamp. - VPN. Cenni su IPsec. Come applicazione dei principi studiati: SSL/TLS, SSH. - Firewall. Architettura di un firewall. Principi fondamentali. Bastion Host. DMZ. - Filtri di pacchetti statici e dinamici. Access list. Proxy.
- Introduction to network and computer security. Vulnerabilities and security requirements. - Security policy - Symmetric key cryptography. Block and stream ciphers. Confusion and diffusion principles. DES and 3DES, AES, RC4. Modes of operation of block ciphers. - Public key cryptography. RSA, Diffie-Hellman and DSA: usage, attacks, protocols and standards. Introduction to Elliptic Curve Cryptography: ECDH and ECDSA. - Symmetric key ciphers vs. public key ciphers. Hybrid scheme. Exchange of a secret and symmetric key derivation. IES and ECIES. - Cryptographic hash functions. Properties and structure. Collisions. Examples. - Message Authentication Codes. Comparison with hash functions. - Public key message authentication. Non repudiability - Time: nonces and timestamps. Synchronization. - Public key certificates. Certification and Registration authorities. Certificate revocation lists. OCSP protocol. - Authentication Authorization and Accounting scheme (AAA). Authentication paradigms: login/password, challenge/response and timestamp - VPNs. Hints on IPsec. As an application of the principles introduced in the course: SSL/TLS and SSH. - Firewalls. Firewall architectures. Fundamental principles. Bastion Hosts. DMZ. - Static and dynamic packet filtering. Access lists. Proxies.
Risultati di apprendimento attesi/Intended learning objectives
Conoscenza e capacità di comprensione: conoscere i principi basilari della sicurezza informatica, le tecniche crittografiche fondamentali e i dispositivi essenziali per la protezione di una rete di calcolatori. Applicazione di conoscenza e comprensione: saper riconoscere vulnerabilità evidenti e proporre strumenti di protezione. Come beneficio aggiuntivo, chi si applica con buona volontà imparerà a implementare protocolli di sicurezza in Java, ad utilizzare alcuni strumenti di sicurezza e a configurare alcuni semplici sistemi. Autonomia di giudizio: corretta percezione dei rischi di sicurezza e del modo in cui gli aspetti di sicurezza informatica si intrecciano con l'organizzazione di una rete. Abilità comunicative : acquisizione della terminologia tecnica specifica dell'area e capacità di discutere di aspetti di sicurezza, e di meccanismi di protezione. Inoltre verrà migliorata la padronanza della lingua inglese a livello tecnico informatico. Capacità di apprendere: avendo appreso i principi fondamentali, si acquisira la capacità di apprezzare e valutare anche in futuro tecnologie e protocolli nuovi che si basano sugli stessi principi.
Knowledge and understanding: knowledge of the basic principles of security, the fundamental cryptographic techniques and the essential devices to protect a computer network. Applying knowledge and understanding: students must be able, to a minimal extent, to recognize vulnerabilities and to propose protection tools. As an additional benefit, the motivated students will learn to implement security protocols in Java, to use some security tools and to configure some simple security systems. Making judgements: They must also acquire a correct perception of security risks and of the way security issues intertwine with the organization of a computer network. Communication skills: students must have acquired the specific technical terminology and must be able to discuss security aspects and protection mechanisms. Moreover the students will increase their proficiency in the technical English of computer science. Learning skills: having acquired the fundamental principles the student will later be able to appreciate and evaluate new technologies and protocols based on the same principles.
×
Stampa
Insegnamento
FONDAMENTI, LINGUAGGI E TRADUTTORI
Codice
MF0360
Anno Accademico
2025/2026
Anno regolamento
2023/2024
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
BOTTRIGHI Alessio
CFU
9.0
Ore di lezione
72.0
Ore di studio individuale
153.0
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OBB
Categoria insegnamento
B
Anno
3
Periodo
Primo Semestre
Sede
VERCELLI
Tipo di valutazione
V
Lingua insegnamento/Teaching language
ITALIANO
Italian
Contenuti/Content Summary
Parte 1 (6 crediti) Linguaggi formali, grammatiche context free, automi riconoscitori, parsing LR. Parte 2 (3 crediti) Sviluppo di un compilatore top-down a discesa ricorsiva per un linguaggio imperativo con dichiarazione di tipo.
Part 1 (6 credit) Formal languages, context free grammars, automata, LR parsing. Part 2 (3 credits) Implementation of a recursive descent top-down compiler for an imperative language with type declarations.
Testi di riferimento/Textbooks
Parte 1 S. Crespi Reghizzi , L. Breveglieri, A. Morzenti, Linguaggi formali e compilazione, Esculapio. Parte 2 Charles N. Fischer, Ron K. Cytron, Richard J. Le Blanch Jr., "Crafting a compiler", Addison-Wesley.
Part 1 S. Crespi Reghizzi , L. Breveglieri, A. Morzenti, Linguaggi formali e compilazione, Esculapio. Part 2 Charles N. Fischer, Ron K. Cytron, Richard J. Le Blanch Jr., "Crafting a compiler", Addison-Wesley.
Obiettivi formativi/Mission
L'insegnamento ha l'obiettivo di introdurre i concetti fondamentali riguardanti l'analisi lessicale e sintattica e le tecniche di traduzione ed interpretazione nel contesto dei linguaggi formali. Vengono considerati gli aspetti teorici e quelli pratici. Per la parte teorica l'obiettivo e' di capire le relazioni fra linguaggi e automi e l’espressivita’ della classe dei linguaggi regolari e liberi da contesto. Per la parte pratica l'obiettivo, attraverso l'implementazione di un compilatore, e' di applicare le nozioni teoriche introdotte ed inoltre imparare come si struttura un sistema complesso in fasi successive individuando le strutture dati e le funzioni che costituiscono le interfacce fra le varie fasi.
The course aims to introduce the fundamental concepts concerning lexical and syntactic analysis and the techniques of translation and interpretation in the context of formal languages. Theoretical and practical aspects are considered. For the theoretical part, the goal is to understand the relationships between languages ​​and automata and the expressiveness of the class of regular and context-free languages. For the practical part, the objective, through the implementation of a compiler, is to apply the theoretical notions introduced and also to learn how to structure a complex system in successive phases by identifying the data structures and functions that constitute the interfaces between the various phases.
Prerequisiti/Required background knowledge
Conoscenze dei contenuti di Programmazione 1 e 2; Programmazione ad Oggetti; Algoritmi 1.
Knowledge of the topics of Programming 1 and 2; Object Oriented Programming: Algorithms 1
Metodi didattici/Teaching methods
Parte 1 Lezioni frontali in aula, esercitazioni. Parte 2. lezioni iniziali (teoriche) per circa 5 lezioni. Lezioni in laboratorio per lo sviluppo del compilatore.
Part 1 Teacher lessons in classroom, exercitations. Part 2. Initial (theoretical) lessons for about 5 lessons. Laboratory lessons for the development of the compiler
Altre informazioni/Further information
Per le lezioni in laboratorio gli studenti/le studentesse sono invitati a sottoporre settimanalmente le parti sviluppate (in parte in laboratorio e in parte autonomamente). Gli elaborati degli studenti/delle studentesse vengono commentate in aula. Le studentesse e gli studenti con disabilità o con Disturbi Specifici dell’Apprendimento (DSA) o con Bisogni Educativi Speciali (BES) possono richiedere servizi e strumenti specifici a loro dedicati rivolgendosi allo Staff "Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti" e consultando la pagina dedicata del sito di Ateneo: https://uniupo.it/it/servizi/servizi-studenti-disabili-e-dsa Le studentesse e gli studenti con disabilità, DSA, BES, una volta preso contatto con lo Staff di Ateneo, possono contattare la/il docente titolare dell'insegnamento in relazione alla declinazione delle modalità di esame, in merito agli aspetti didattici.
For laboratory lessons, students are invited to submit the developed parts weekly (partly in the laboratory and partly independently). Students' papers are commented in the classroom. Students with physical disabilities, Learning Disabilities or Special Education Needs can request specific services and tools to the Staff of the "Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti", consulting the University webpage: https://www.uniupo.it/en/services/services-students-physical-or-learning-disabilities Students with disabilities, learning disabilities or special education needs, once they have contacted the University Staff, can refer to the tutor in charge of the course to define the examination modalities, concerning academic aspects.
Modalità di verifica dell'apprendimento/Assessment methods
La valutazione finale viene stabilita collegialmente dai docenti del corso tenendo conto delle conoscenze e competenze acquisite dalla studentessa/dallo studente verificate attraverso lo svolgimento delle due parti dell'esame dettagliate nel seguito: su entrambe le componenti occorre superare una soglia minima. Parte 1 Esame scritto:7-8 domande, che posso essere sia esercizi pratici sia domande teoriche sugli automi riconoscitori e sulle tipologie di linguaggi mostrate a lezione Parte 2. L'esame consiste di una prova scritta e della presentazione del compilatore sviluppato con relativa discussione orale. Il compito scritto contiene un esercizio in cui si chiedere di determinare se una grammatica e' LL(1) e di fare qualche derivazione di stringhe del linguaggio e tre domande aperte sulla teoria dei linguaggi formali relativa allo sviluppo di compilatori. Per raggiungere la sufficienza lo studente deve dimostrare di aver svolto con errori trascurabili l'esercizio. Il compilatore deve essere presentato per accedere alla prova scritta. La discussione orale viene fatta assieme alla presentazione del risultato della prova scritta. La votazione sul progetto dipende dalla sua correttezza e dallo stile di programmazione adottato. Il voto della Parte 2 è la media della votazione sul progetto e di quella del compito scritto. Nella valutazione finale il voto della Parte 1 pesa per i 2/3 quella della Parte 2 per 1/3 in coerenza con il numero di CFU erogati per le due parti.
The final evaluation is established jointly by the course teachers taking into account the knowledge and skills acquired by the student and verified by carrying out the two parts of the exam detailed below: on both components a minimum grade must be reached. Part 1. Written examination: 7-8 questions, that can be both applied exercise and theoretical questions on recognizers automata and on different types of languages showed and discussed Part 2. The exam consists of a written test and the presentation of the developed compiler with relative oral discussion. The written assignment contains an exercise asking to determine whether a grammar is LL(1) and some derivations of strings of the language and three open-ended questions on the theory of formal languages ​​relative to the development of compilers. To achieve a pass, the student must demonstrate that he has completed the exercise with negligible errors. The compiler must be presented to access the written test. The oral discussion is done together with the presentation of the result of the written test. The vote on the project depends on its correctness and the programming style adopted. The Part 2 grade is the average of the project grade and the written assignment grade. In the final evaluation the score of Part 1 weighs 2/3 and that of Part 2 weighs 1/3, according to the number of credits of the two parts.
Programma esteso/Content
Parte 1 - Linguaggi ed espressioni regolari - Linguaggi e grammatiche context free - Grammatiche lineari, e loro relazioni con i linguaggi regolari - grammatiche attributi - Grammatiche context sensitive (cenni) - Principali strutture sintattiche e regole grammaticali per generale - Automi a stati finite e loro relazione con i linguaggi regolari - Automi a pila (deterministici e non) e loro relazioni con i linguaggi context free - Principi del parsing bottom up, focalizzandosi sul parsing LR (LR(0)). Parte 2. - Introduzione ai compilatori. - Strutturazione dei compilatori - Analisi lessicale: tokens e loro produzione - Analisi sintattica: parsing top-down a discesa ricorsiva - Albero sintattico astratto e Symbol table. - Pattern visitor per l’analisi di tipo e la generazione del codice
Part 1 - Regular languages and expressions - Context free grammars and languages - Linear grammars, and correspondence to regular languages - Attribute grammar - Context sensitive grammars (hints). - Main syntactic structures and grammar rules to generate them - Finite-state automata and relationships to regular languages - Stack automata (deterministic and non-deterministic) and relationships to context free languages - Basic bottom up parsing theory, focusing on LR parsing (LR(0)) Part 2. - Introduction to compilers. - Structure of compilers - Lexical analysis: tokens and their production -Syntactic analysis: top-down recursive descent parsing - Abstract syntactic tree and Symbol table. - Pattern visitor for type analysis and code generation.
Risultati di apprendimento attesi/Intended learning objectives
Parte 1 Conoscenza e capacità di comprensione: gli studenti/le studentesse devono conoscere e comprendere le seguenti nozioni di base: linguaggi regolari, espressioni regolari, grammatiche lineari, automi a stati finiti (deterministici e non) linguaggi context free, grammatiche context free, automi a pila (deterministici e non) parser LR(0) Capacita' di applicare conoscenza: modellare linguaggi regolari tramite espressioni regolari modellare linguaggi regolari tramite grammatiche lineari modellare linguaggi mediante grammatiche context free, utilizzando la metodologia "divide et impera" nello sviluppo delle grammatiche sviluppare automi a pila non deterministici a partire da grammatiche context-free sviluppare automi a pila deterministici per riconoscere linguaggi context-free deterministici sviluppare parser LR(0) e SLR(1) a partire da grammatiche context-free Autonomia di giudizio: riconoscere linguaggi regolari rispetto ai linguaggi context free conoscere la relazioni fra classi di linguaggi, classi di grammatiche, e classi di automi riconoscitori selezionare i costrutti appropriati per la definizione di grammatiche context-free a partire da un linguaggio Abilita, comunicative: Gli studenti/Le studentesse devono acquisire ed utilizzare la terminologia rigorosa utilizzata nell'ambito della teoria dei linguaggi Capacita' di apprendere: Gli studenti/le studentesse devono aver acquisito le capacita' di riconoscere classi di problemi e di affrontarle con le metodologie appropriate per le classi stesse. Devono inoltre aver acquisito una generale capacita' di modellazione ed analisi formale dei problemi. Parte 2. Conoscenza e capacità di comprensione: lo studente/la studentessa deve acquisire familiarita’ con la trasformazione di concetti formali (quali automi e grammatiche) in strumenti per la traduzione diretta da sintassi dei linguaggi. Capacità di applicare conoscenza e comprensione: lo studente/la studentessa deve saper progettare ed implementare una traduzione diretta da sintassi di un semplice linguaggio, essendo in grado di progettare le strutture dati necessarie e strutturando in modo modulare il codice. Autonomia di giudizio: lo studente/la studentessa deve essere in grado di riconoscere l’appropriatezza dell’uso di diversi tipi di analizzatori sintattici evidenziandone i vantaggi e gli svantaggi. Abilità comunicative: lo studente/la studentessa deve essere in grado di esporre e motivare anche le proprie scelte.
Part 1 Knowledge and comprehension: the students must know and understand the following basic notions: regular languages and expressions, linear grammars, (deterministic and non-deterministic) finite automata context free languages and grammars, (deterministic and non-deterministic) pushdown automata LR(0) and SLR(1) parsing Capacity to apply knowledge and comprehension: modeling regular languages via regular expression modeling languages via context free grammars developing pushdown automata on the basis of context free grammars developing deterministic pushdown automata to recognize deterministic context free languages developing LR(0) to recognize deterministic context free grammars Judgement autonomy: recognize regular languages vs. context free languages know the relationships between classes of languages, classes of grammars, and classes of automata choosing the proper constructs to define context free grammars recognizing a given language Communication abilities: Students must acquire and adopt the rigorous terminology used in the theory of languages Learning capacity: Students must acquire the capabilities to recognize classes of problems and face them adopting the appropriate methodologies. They should also acquire the capability of modeling and analyzing problems in a formal way. Part 2 Knowledge and understanding: the student must become familiar with the transformation of formal concepts (such as automata and grammars) into tools for syntax direct translation of languages. Applying knowledge and understanding: the student must be able to design and implement a syntax direct translation of a simple programming language, being able to independently design the necessary data structures and modularising its code Making judgments: the student must be able to recognize the appropriateness of using different kinds of syntactic analyzers, highlighting the advantages and disadvantages. Communication skills: the student must be able to expose and motivate both orally and in writing his/her own choices.
×
Stampa
Insegnamento
INGEGNERIA DEL SOFTWARE
Codice
S1730
Anno Accademico
2025/2026
Anno regolamento
2023/2024
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
CODETTA RAITERI Daniele
CFU
6.0
Ore di lezione
48.0
Ore di studio individuale
102.0
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OBB
Categoria insegnamento
B
Anno
3
Periodo
Primo Semestre
Sede
ALESSANDRIA
Tipo di valutazione
V
Lingua insegnamento/Teaching language
ITALIANO
Italian
Contenuti/Content Summary
Il corso tratta le fasi del processo di sviluppo di sistemi software: specifica, progettazione, implementazione, collaudo e manutenzione. Inoltre viene introdotto il linguaggio UML per la specifica e la progettazione di sistemi. L'attività di laboratorio consiste nella preparazione di diagrammi UML tramite un apposito editor, e la loro traduzione in codice.
The course deals with the stages of the development of software systems: specification, design, implementation, validation and verification, maintenance. Moreover, the UML language for the specification and design of systems is introduced. The activity in the laboratory consists of preparing UML diagrams by means of a specific editor, and their translation into code.
Testi di riferimento/Textbooks
- I. Sommerville, “Ingegneria del software”, Pearson Italia, 10a edizione, 2017, https://he.pearson.it/bundle/709?isbn=9788891902245 – M. Fowler,“UML distilled”, Pearson Italia, 4a edizione, 2018, https://he.pearson.it/bundle/701?isbn=9788891907820
- I. Sommerville,“Software Engineering”, Pearson, 10th edition, 2015, https://www.pearson.com/en-us/subject-catalog/p/software-engineering/P200000003258/9780133943030 – M. Fowler, “UML distilled”, Pearson, 3rd edition, 2003, https://www.pearson.com/en-us/subject-catalog/p/uml-distilled-a-brief-guide-to-the-standard-object-modeling-language/P200000000255/9780321193681
Obiettivi formativi/Mission
La Studentessa/lo Studente deve conoscere: 1) i passi necessari per realizzare un sistema software a partire dalla richiesta di un committente, fino alla consegna, secondo il processo dell'Ingegneria; 2) i diagrammi UML necessari per modellare il dominio applicativo, i requisiti, l'architettura e il comportamento del sistema; 3) terminologia dell'Ingegneria. La Studentessa/lo Studente deve essere in grado di: 1) organizzare un processo di lavoro secondo le fasi dell'Ingegneria, individuando e definendo tutte le informazioni propedeutiche all'implementazione del sistema (requisiti, architettura, comportamento); 2) rappresentare tali informazioni sotto forma di diagrammi UML in modo da essere comprensibili da altri sviluppatori, e scrivere il codice rispettando il contenuto di tali diagrammi; 3) comprendere e utilizzare il linguaggio tipico dagli ingegneri.
The student must know: 1) the steps necessary to realize a software system, from the customer's requests, to the delivery, according to the engineering process; 2) the UML diagrams necessary to model the application domain, the requirements, the architecture, and the behaviour of the system; 3) terminology of engineering. The student must be able to: 1) organize a working process according to the steps of Engineering, identifying and defining all the information necessary to implement the system (requirements, architecture, behaviour); 2) represent such information in terms of UML diagrams in order to be read by other developers, and write the code respecting the contents of such diagrams; 3) understand and use the language of engineers.
Prerequisiti/Required background knowledge
Conoscenze acquisite nei corsi di Paradigmi di programmazione e Basi di dati.
Knowledge acquired in the Programming paradigms course and Databases course.
Metodi didattici/Teaching methods
Il corso prevede lezioni frontali in aula e lezione pratiche in laboratorio. Le lezioni frontali occupano circa 32 ore. Le lezioni di laboratorio occupano circa 16 ore. Modalità: le lezioni frontali si occupano di spiegare le fasi dell'Ingegneria e come queste si possono applicare allo sviluppo di un sistema software. Inoltre si presenta il linguaggio UML sia dal punto di vista formale sia dal punto di vista applicativo mostrando come può essere utilizzato per modellare il dominio applicativo, i requisiti, l'architettura, il comportamento del sistema, e per supportare la scrittura del codice. Le lezioni pratiche prevedono la preparazione di un progetto dove si definiscono dei diagrammi UML e si traducono in codice. Strumenti: Un caso di studio specifico è utilizzato durante le lezioni frontali per mostrare come progettare il sistema a partire dalla deduzione dei requisiti dal dominio applicativo. Il caso di studio viene progressivamente sviluppato durante le lezioni riguardanti l'applicazione pratica delle fasi dell'Ingegneria e di UML. Lo scopo del caso di studio è fornire alle Studentesse/agli Studenti un esempio concreto di applicazione delle procedure viste nel corso. La preparazione da parte delle Studentesse/degli Studenti di un proprio progetto in UML è richiesto durante le ore in laboratorio. Tale progetto deve avere gli stessi contenuti in termini di specifica e progettazione. Lo scopo del progetto è l'applicazione pratica da parte delle Studentesse/degli Studenti delle stesse procedure viste durante le lezioni frontali. Un apposito editor UML (Visual Paradigm) è utilizzato sia in aula sia in laboratorio, per modellare il caso di studio e per preparare il progetto. Il corso ha una propria pagina nella piattaforma DIR (Didattica in Rete) che contiene le slide del corso, le istruzioni per l'editor UML, alcune prove scritte del passato, ecc.
The course consists of frontal lectures and laboratory lectures. Frontal lectures take 32 hours. Laboratory lectures take 16 hours. Modality: the frontal lectures explain the stages of Engineering and how they can be applied to the development of a software system. Moreover the UML language is presented from both the formal point of view and the application point of view, showing how it can be used to model the application domain, the requirements, the system architecture and behaviour, and to support code writing. The laboratory lectures are dedicated to preparing a project where UML diagrams are defined and translated into code. Tools: A specific case study is used during the frontal lectures to show how to design the system, starting from the elicitation of requirements from the application domain. The case study is gradually developed during the lectures about the practical application of Engineering stages and UML. The goal of the case study is providing a concrete example of application of the procedures presented in the course. The preparation by the students of their own project in UML, is required during the laboratory lectures. Such project must have the same contents in terms of specification and design. The goal of the project is the practical application by the students, of the same procedures presented during the frontal lectures. A specific UML editor (Visual Paradigm) is used in both kinds of lectures, to model the case study and prepare the project. The course has its own page in the platform DIR (Didattica in Rete) which contains the slides, the instructions for the UML editor, several written tests in the past, etc.
Altre informazioni/Further information
Durante il corso sono previste varie scadenze per consegnare le parti del progetto di laboratorio: diagrammi di specifica (verso fine ottobre), diagrammi di progettazione (verso fine novembre), codice e test-cases (verso fine dicembre). Ciò viene fatto tramite uno strumento di condivisione dei file (Git) e consente di controllare periodicamente quanto prodotto dalle Studentesse/dagli Studenti. Le studentesse e gli studenti con disabilità o con Disturbi Specifici dell’Apprendimento (DSA) o con Bisogni Educativi Speciali (BES) possono richiedere servizi e strumenti specifici a loro dedicati rivolgendosi allo Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti e consultando la pagina dedicata del sito di Ateneo: https://uniupo.it/it/servizi/servizi-studenti-disabili-e-dsa Le studentesse e gli studenti con disabilità, DSA, BES possono inoltre contattare la/il docente titolare dell’insegnamento in relazione alla declinazione delle modalità di esame.
During the course, deadlines are planned to delivery the parts of the laboratory project: specification diagrams (around the end of October), design diagrams (around the end of November), code and test-cases (around the end of December). This is done by means of a file sharing tool (Git) and pernits the periodic control of the students' work. Students with disabilities or Specific Learning Disorders (DSA) or Special Educational Needs (BES) can request specific services and tools dedicated to them by contacting the Career Development and Coordination and Student Services Staff and by consulting the dedicated page on the University website: https://uniupo.it/it/servizi/servizi-studenti-disabili-e-dsa Students with disabilities, DSA, BES can also contact the professor in charge of the course in relation to the declination of the exam methods.
Modalità di verifica dell'apprendimento/Assessment methods
Per le Studentesse/gli Studenti che frequentano il corso, l'esame è composto da due parti: 1) la consegna, alla fine del corso, del progetto realizzato durante le lezioni di laboratorio; 2) una prova scritta riguardante la parte di teoria da sostenere agli appelli. Per essere ammessi alla prova scritta il progetto deve essere consegnato. 1) La valutazione del progetto si basa sulla qualità dei diagrammi UML realizzati, in termini di precisione (circa 10 punti), coerenza (circa 10 punti) e completezza (circa 10 punti). Per precisione si intende la correttezza formale dei diagrammi, un livello di dettaglio accettabile e l'assenza di ambiguità di interpretazione del contenuto. Per coerenza si intende che non ci devono essere discrepanze tra un diagramma e l'altro, e tra i diagrammi e il codice implementato. Per completezza si intende che tutti i diagrammi richiesti devono essere presenti, assieme al codice corrispondente e ai test-case. 2) Nella prova scritta si verificano la conoscenza delle varie fasi del processo dell'Ingegneria, l'acquisizione della terminologia dell'Ingegneria e l'applicazione di alcuni metodi. L'esame scritto prevede sia domande (circa 15) sui concetti teorici, sia esercizi applicativi (circa 3) relativi ai metodi. Il numero delle domande è motivato dalla necessità di coprire tutti gli argomenti; tuttavia ogni domanda è abbastanza specifica e richiede una risposta relativamente breve. Una domanda vale circa 1.5 punti su 30; ogni esercizio vale circa 2.5 punti. Durante la prova scritta non è consentita la consultazione del materiale del corso o di manuali. Sulla piattaforma DIR, nella pagina del corso, ci sono esempi di prove scritte del passato. Il voto finale è dato dalla media tra i voti del progetto consegnato e dell'esame scritto. Per le Studentesse/gli Studenti che non frequentano il corso è prevista una prova orale su tutto il programma del corso (teoria e UML), da sostenere agli appelli. La prova orale prevede domande su argomenti della parte di teoria (circa 3), esercizi relativi ai metodi visti in questa parte (circa 2), domande sugli aspetti formali di UML (circa 3), esercizi relativi ai diagrammi UML (circa 2). Una domanda vale circa 3 punti; un esercizio vale circa 3 punti.
For the students attending the course, the exam is composed by two parts: 1) the delivery, at the end of the course, of the project realized during the laboratory lectures; 2) a written test concerning the theory. In order to be admitted to the written test the project must be delivered. 1) The evaluation of the project is based on the quality of the UML diagrams realized, in terms of precision (about 10 points), coherence (about 10 points), and completeness (about 10 points). Precision means the formal correctness of the diagrams, an acceptable detail level, and the absence of ambiguity in the interpretation of the contents. Coherence means that there are no discrepancies between a diagram and another one, and between the diagrams and the code implemented. Completeness means that all the required diagrams are present, together with the corresponding code and the test-cases. 2) The knowledge of the Engineering stages, the knowledge of the Engineering terminology, and the application of specific methods, are verified in the written test which is composed by both questions (about 15) about theoretical concepts, and practical exercises (about 3) about the methods. The number of questions is motivated by the necessity to cover all the topics; however every question is quite specific and requires a relatively brief answer. The score of every question is about 1.5 points over 30; the score of every exercise is about 2.5 points. During the written test, consulting the course materials or manuals is not allowed. The DIR platform, in the course page, contains examples of written tests in the past. The final score is given by the average of the scores of the delivered project and the written test. For the students not attending the course, the exam is oral and concerns all the topics of the course (theory and UML). The oral exam consists of questions about the topics from theory (about 3), exercises about the methods presented in this part (about 2), questions about the formal aspects of UML (about 3), exercises about UML diagrams (about 2). The score of every question is about 3 points over 30; the score of every exercise is about 3 points over 30.
Programma esteso/Content
- Introduzione all'Ingegneria del Software - Processo software (ciclo di vita del software) - Specifica dei requisiti - Specifica con UML - Progettazione - Progettazione con UML - Da UML al codice - Collaudo - Manutenzione - Gestione del progetto - Modelli di processo software - Design patterns - Strumenti software - Progetto di laboratorio
- Introduction to the Software Engineering - Software process (software life-cycle) - Requirements specification - Specification using UML - System design - Design using UML - From UML to code - Verification and validation - Maintenance - Project management - Software process models - Design patters - Software tools - Lab. project
Risultati di apprendimento attesi/Intended learning objectives
Il corso prevede una parte teorica e una parte di laboratorio. La parte teorica tratta il processo dell'Ingegneria strutturato nelle fasi di specifica, progettazione, implementazione, collaudo e manutenzione. Lo scopo e' mostrare come tale processo puo' essere applicato allo sviluppo di sistemi software. La parte di laboratorio introduce il linguaggio UML per la specifica e la progettazione di sistemi. L'attività in laboratorio consiste nella preparazione di diagrammi UML relativi ad un determinato sistema software, attraverso l'uso di un editor UML, e la loro traduzione in codice. Questo permette di prendere confidenza con tali diagrammi e approfondirne la conoscenza. Conoscenza e comprensione: fasi dell'Ingegneria, aspetti formali dei vari tipi di diagrammi UML. Capacità di applicare conoscenza e comprensione: applicazione delle fasi dell'Ingegneria allo sviluppo di un sistema software, ed in particolare, - studio del dominio applicativo; - deduzione dei requisiti dal dominio; - modellazione del dominio e dei requisiti in UML; - definizione e modellazione in UML di un'architettura software adatta a realizzare i requisiti; - definizione e modellazione in UML del comportamento dei componenti del sistema durante l'esecuzione di un certo requisito, con un livello di dettaglio tale da consentire l'implementazione del requisito in un linguaggio di programmazione. Autonomia di giudizio: studio e definizione in modo autonomo del dominio applicativo, dei requisiti, dell'architettura e del comportamento del sistema. Abilità comunicative: - comunicazione e coordinazione all'interno del gruppo di lavoro; - esprimere i requisiti del sistema con diversi gradi di dettaglio; - stesura dei diagrammi UML in modo completo, dettagliato e coerente, al fine di renderli comprensibili a qualunque programmatore. Capacita' di apprendimento: acquisire la terminologia dell'Ingegneria, organizzare lo sviluppo di un sistema secondo le fasi dell'Ingegneria, modellare gli aspetti di specifica e progettazione tramite un linguaggio formale quale UML.
The course consists of a theoretical section and a laboratory section. The theoretical section deals with the Engineering process structured in the following stages: specification, design, implementation, verification & validation, maintenance. The aim is showing how such process can be applied to the development of software systems. The laboratory section introduces the UML language for the specification and the design of systems. The activity in the laboratory consists of preparing UML diagrams about a certain software system, by means of an UML editor, and translating them into code. This allows the students to become familiar with such diagrams and improve the knowledge of them. Knowledge and comprehension: stages of Engineering, formal aspects of the several kinds of UML diagrams. Ability to apply knowledge and comprehension: application of the Engineering stages and UML to the development of a system software, and in particular, - the study of the application domain; - the requirement elicitation from the domain; - UML modeling of the domain and the requirements; - definition and UML modeling of a software architecture able to realize the requirements; - definition and UML modeling of the component behaviour during the execution of a specific requirement, with a detail level allowing the programmer to implement the requirement. Judgement autonomy: study and definition in an autonomous way, of the application domain, the requirements, the system architecture and behaviour. Communication abilities: - communication and coordination inside the working group; - expressing the system requirements with different levels of detail; - designing the UML diagrams in a complete, detailed, and coherent way, with the goal of making them clear to any programmer. Learning capacity: acquiring the terminology of Engineering, planning the development of a system according to the stages of Engineering, modeling specification and design aspects by means of a formal language such as UML.
×
Stampa
Insegnamento
CALCOLO DELLE PROBABILITÀ E STATISTICA
Codice
MF0357
Anno Accademico
2025/2026
Anno regolamento
2023/2024
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
TODINO ANNA PAOLA
CFU
6.0
Ore di lezione
48.0
Ore di studio individuale
102.0
Settore Scientifico Disciplinare (SSD)
MAT/06 - PROBABILITÀ E STATISTICA MATEMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OBB
Categoria insegnamento
C
Anno
3
Periodo
Secondo Semestre
Sede
ALESSANDRIA
Tipo di valutazione
V
Lingua insegnamento/Teaching language
ITALIANO
Italian
Contenuti/Content Summary
Elementi di Probabilità: assiomi della probabilità, diagrammi di Venn, spazi equiprobabili, probabilità condizionata, Teorema di Bayes. Variabili aleatorie discrete e continue, variabili aleatorie indipendenti, valore atteso. Varianza e covarianza. Modelli di variabili aleatorie: variabili di Bernoulli e binomiali, ipergeometriche, geometriche. Distribuzione di Poisson, variabili aleatorie uniformi, variabili aleatorie normali, variabili aleatorie esponenziali. Teorema del Limite Centrale. Statistica di base. Gruppi di dati, media, mediana, quartili. Definizione delle statistiche campionarie. Valori attesi, varianza campionaria. Stime dei parametri. Verifica delle ipotesi e applicazioni.
Basic probability theory: the axioms of probability, Venn diagrams, space with equally likely outcomes, conditional probability, Bayes formula. Discrete and continuous random variables, independent random variables, expected values. Variance and covariance. Special random variables: Bernoulli and binomial random variables, hypergeometric and geometric variables. Poisson distribution, uniform random variables, normal random variables, exponential random variables. Central Limit Theorem. Basic statistics. Set of data, mean, quartiles. Definition of sample statistics, sample variance. Parameter estimations. Hypothesis testing and applications.
Testi di riferimento/Textbooks
Sheldon M. Ross: Probabilità e Statistica per l'Ingegneria e le Scienze, Apogeo Education – Seconda Edizione 2008
Sheldon M. Ross: Introduction to probability and statistics for Engineers and scientists, Elsevier 2004 (Probabilità e Statistica per l'Ingegneria e le Scienze,Apogeo Education – Seconda Edizione 2008)
Obiettivi formativi/Mission
Avviare gli/le studenti/studentesse agli elementi base della teoria e della pratica del calcolo delle probabilità.  Introdurre le principali distribuzioni di probabilità e il loro utilizzo. Introdurre gli/le studenti/studentesse alle basi della statistica, definizione della statistiche, stima dei parametri, verifica delle ipotesi.
Introduce the students to the basic elements of theory and application of probability. Introduce the most important probability distributions with applications. Introduce the students to the basic elements of statistics, statistical mean, statistical variance, parameter estimations, hypothesis verifications.
Prerequisiti/Required background knowledge
Conoscenza dei principali contenuti dei corsi di Analisi Matematica I e Matematica Discreta.
Basic notions of the courses of Mathematical Analysis I and Discrete Mathematics.
Metodi didattici/Teaching methods
Lezioni frontali ed esercitazioni.
Class lectures with exercises.
Altre informazioni/Further information
L'esame è costituito da una prova scritta composta di più esercizi e una o più domande di teoria. Chi supera la parte scritta (con almeno 18) può richiedere una prova orale (facoltativa). Le studentesse e gli studenti con disabilità o con Disturbi Specifici dell’Apprendimento (DSA) o con Bisogni Educativi Speciali (BES) possono richiedere servizi e strumenti specifici a loro dedicati rivolgendosi allo Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti e consultando la pagina dedicata del sito di Ateneo: https://uniupo.it/it/servizi/servizi-studenti- disabili-e-dsa Le studentesse e gli studenti con disabilità, DSA, BES, una volta preso contatto con lo Staff di Ateneo, possono contattare la/il docente titolare dell'insegnamento in relazione alla declinazione delle modalità di esame, in merito agli aspetti didattici.
The exam consists of a written test composed of several exercises and one or more theoretical questions on the theoretical part. Students who pass the written part (with at least 18) can request an oral exam (optional). Students with physical disabilities, Learning Disabilities or Special Education Needs can request specific services and tools via the Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti, consulting the University webpage: https://www.uniupo.it/en/services/services-students-physical-or-learning-disabilities Students with disabilities, learning disabilities or special education needs, once they have contacted the University Staff, can refer to the tutor in charge of the course to define the examination modalities, concerning academic aspects.
Modalità di verifica dell'apprendimento/Assessment methods
La prova scritta è costituita da 3-4 esercizi riguardanti sia la parte di probabilità che la parte di statistica e da una o più domande di teoria. La prova orale è facoltativa e si è ammessi soltanto nel caso in cui venga raggiunto nella prova scritta un voto sufficiente. L'esame orale è costituito da domande riguardanti sia la probabilità che la statistica e da una discussione sugli esercizi contenuti nella prova scritta.
The written exam consists of 3-4 exercises concerning both the probability and statistics and of one or more questions on the theory part. The oral exam is optional and it is allowed only if a sufficient grade is achieved in the written test. The oral exam consists of questions concerning both probability and statistics and a discussion on the exercises contained in the written test.
Programma esteso/Content
Elementi di Probabilità: assiomi della probabilità, diagrammi di Venn, spazi equiprobabili, probabilità condizionata, Teorema di Bayes. Variabili aleatorie discrete e continue, variabili aleatorie indipendenti, valore atteso. Varianza e covarianza. Modelli di variabili aleatorie: variabili di Bernoulli e binomiali, ipergeometriche, geometriche. Distribuzione di Poisson, variabili aleatorie uniformi, variabili aleatorie normali, variabili aleatorie esponenziali. Teorema del Limite Centrale. Statistica di base. Gruppi di dati, media, mediana, quartili. Definizione delle statistiche campionarie. Valori attesi, varianza campionaria. Stima dei parametri. Stimatori di massima verosomiglianza, derivazione delle principali distribuzioni. Stima per la media, per la varianza e stime parametriche. Intervalli di confidenza. Verifica delle ipotesi e applicazioni.
Basic probability theory: the axioms of probability, Venn diagrams, space with equally likely outcomes, conditional probability, Bayes formula. Discrete and continuous random variables, independent random variables, expected values. Variance and covariance. Special random variables: Bernoulli and binomial random variables, hypergeometric and geometric variables. Poisson distribution, uniform random variables, normal random variables, exponential random variables. Central Limit Theorem. Basic statistics. Set of data, mean, quartiles. Definition of sample statistics, sample variance. Parameter estimations, Maximal Likelihodd technique for common distributions. Confidence level and intervals. Hypothesis testing and applications.
Risultati di apprendimento attesi/Intended learning objectives
Conoscenza della teoria della probabilità elementare e della statistica. Saper applicare gli apprendimenti a problematiche della scienza informatica. Gestione delle informazioni sulla base dei dati.
Knowledge of elementary probability theory. Knowledge of elementary statistics. Know how to apply probability and statistics theory to computer science and managing of data.
×
Stampa
Insegnamento
CALCOLO DELLE PROBABILITÀ E STATISTICA
Codice
MF0358
Anno Accademico
2025/2026
Anno regolamento
2023/2024
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
ZAMPARO MARCO
Docenti
CFU
6.0
Ore di lezione
48.0
Ore di studio individuale
102.0
Settore Scientifico Disciplinare (SSD)
MAT/06 - PROBABILITÀ E STATISTICA MATEMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OBB
Categoria insegnamento
C
Anno
3
Periodo
Secondo Semestre
Sede
VERCELLI
Tipo di valutazione
V
Lingua insegnamento/Teaching language
Italiano
Italian
Contenuti/Content Summary
Introduzione alla teoria della probabilità e dell'inferenza statistica
Introduction to the theory of probability and statistical inference
Testi di riferimento/Textbooks
Sheldon M. Ross: Probabilità e Statistica per l'Ingegneria e le Scienze, Apogeo Education - Seconda Edizione 2008
Sheldon M. Ross: Probabilità e Statistica per l'Ingegneria e le Scienze, Apogeo Education - Seconda Edizione 2008
Obiettivi formativi/Mission
Avviare la studentessa/lo studente alla teoria e pratica del calcolo delle probabilità con particolare attenzione alle distribuzioni di probabilità notevoli. Introdurre la studentessa/lo studente alle basi della statistica con particolare attenzione alla stima dei parametri e alla verifica delle ipotesi
Introduce the student to the theory and applications of probability with emphasis on the most important probability distributions. Introduce the student to the basic elements of statistics with emphasis on parameter estimation and hypothesis testing
Prerequisiti/Required background knowledge
Calcolo differenziale e integrale in una e possibilmente più variabili
Differential and integral calculus in one dimension and more if possible
Metodi didattici/Teaching methods
Lezioni frontali ed esercitazioni
Class lectures with exercises
Altre informazioni/Further information
L'esame consiste in una prova scritta. Le studentesse e gli studenti con disabilità o con Disturbi Specifici dell’Apprendimento (DSA) o con Bisogni Educativi Speciali (BES) possono richiedere servizi e strumenti specifici a loro dedicati rivolgendosi allo Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti e consultando la pagina dedicata del sito di Ateneo: https://uniupo.it/it/servizi/servizi-studenti- disabili-e-dsa. Le studentesse e gli studenti con disabilità, DSA, BES, una volta preso contatto con lo Staff di Ateneo, possono contattare la/il docente titolare dell'insegnamento in relazione alla declinazione delle modalità di esame, in merito agli aspetti didattici
The exam consists of a written examination. Students with physical disabilities, Learning Disabilities or Special Education Needs can request specific services and tools via the Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti, consulting the University webpage: https://www.uniupo.it/en/services/services-students-physical-or-learning-disabilities. Students with disabilities, learning disabilities or special education needs, once they have contacted the University Staff, can refer to the tutor in charge of tre course to define the examination modalities, concerning academic aspects
Modalità di verifica dell'apprendimento/Assessment methods
L'esame scritto consiste in due esercizi, uno sulla teoria delle probabilità e uno sulla statistica. Ogni esercizio prevede anche una domanda teorica per verificare la conoscenza della teoria
The written exam consists in two exercises, one focused on probability and the other on statistics. Each exercise has also a theoretical question to value the knowledge of the theory
Programma esteso/Content
- Elementi di probabilità: assiomi fondamentali, spazi equiprobabili e calcolo combinatorio, probabilità condizionata, teorema di Bayes - Variabili aleatorie: variabili discrete e continue, variabili aleatorie notevoli (variabili di Bernoulli e binomiali, variabili di Poisson, variabili uniformi, normali ed esponenziali), variabili indipendenti, valore atteso - Teoremi limite: legge dei grandi numeri, teorema del limite centrale - Statistica descrittiva: gruppi di dati, media e mediana campionarie, varianza campionaria - Statistica inferenziale di base: stimatori per media e varianza, stimatori di massima verosomiglianza, intervalli di confidenza, verifica delle ipotesi
- Basic probability theory: fundamental axioms, space with equally likely outcomes and combinatorics, conditional probability, Bayes' formula - Random variables: discrete and continuous variables, most relevant variables (Bernoulli and binomial variables, Poisson variables, uniform, normal, and exponential random variables), independent variables, expected value - Limit theorems: law of large numbers, central limit theorem - Descriptive statistics: set of data, sample mean and median, sample variance - Basic inferential statistics: mean and variance estimators, maximum likelihood estimators, confidence level and intervals, hypothesis testing
Risultati di apprendimento attesi/Intended learning objectives
Conoscenza della teoria elementare della probabilità e della statistica. Capacità di elaborare semplici modelli per la descrizione dei dati e di calibrarne i parametri
Knowledge of elementary probability theory and statistics. Ability to propose simple models for data description and to infer their parameters
×
Stampa
Insegnamento
FONDAMENTI, LINGUAGGI E TRADUTTORI
Codice
MF0359
Anno Accademico
2025/2026
Anno regolamento
2023/2024
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
TERENZIANI Paolo
CFU
9.0
Ore di lezione
72.0
Ore di studio individuale
153.0
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OBB
Categoria insegnamento
B
Anno
3
Periodo
Annuale
Sede
ALESSANDRIA
Tipo di valutazione
V
Lingua insegnamento/Teaching language
ITALIANO
Italian
Contenuti/Content Summary
Linguaggi formali, grammatiche context free, automi riconoscitori, parsing LR. Traduzione guidata dalla sintassi e suo utilizzo per la traduzione dei linguaggi imperativi di programmazione.
Formal languages, context free grammars, automata, LR parsing. Syntax-directed translation and its use for the translation of imperative programming languages.
Testi di riferimento/Textbooks
Stefano Crespi Reghizzi “Sintassi, semantica e tecniche di compilazione Volume 1: Metodi Sintattici”, CLUP. A. V. Aho, R. Sethi, J.D. Ullman: "Compilers Principles, Techniques and Tools", Addison-Wesley, 1986 oppure A. V. Aho, M.S. Lam, R. Sethi, J.D. Ullman: "Compilers Principles, Techniques and Tools", 2a edizione, Addison-Wesley, 2006
Stefano Crespi Reghizzi “Sintassi, semantica e tecniche di compilazione Volume 1: Metodi Sintattici”, CLUP. A. V. Aho, R. Sethi, J.D. Ullman: "Compilers Principles, Techniques and Tools", Addison-Wesley, 1986 oppure A. V. Aho, M.S. Lam, R. Sethi, J.D. Ullman: "Compilers Principles, Techniques and Tools", 2a edizione, Addison-Wesley, 2006
Obiettivi formativi/Mission
Le seguenti conoscenze e capacita': • modellare linguaggi regolari e linguaggi context free (tramite espressioni regolari, e grammatiche context free, eventualmente lineari) • riconoscere linguaggi regolari e context free mediante automi (a stati finiti e a pila) • conoscere il parsing LR(0) ed SLR(1), sviluppare parser LR(0) e SLR(1) a partire da grammatiche context-free, • conoscere i metodi per la traduzione diretta dalla sintassi e le condizioni per la loro applicazione: durante l’analisi LR, come attraversamento dell'albero di derivazione, del grafo delle dipendenze • conoscere come la traduzione diretta dalla sintassi viene applicata alla traduzione dei linguaggi di programmazione per la traduzione di espressioni numeriche, istruzioni di controllo ed espressioni booleane
The following Knowledge and capabilities: • modeling regular and context-free languages (through regular expressions and -possibly linear- context-free grammars). • Recognizing regular and context-free languages through automata (finite automata and pushdown automata) • Knowing LR(0) and SLR(1) parsing, developing LR(0) and SLR(1) parsers staring from a context-free grammar • Methods for syntax-directed translation (SDT) and conditions for their application: during LR parsing (in detail); tree traversal; dependency graph. • Application of SDT to the translation of programming languages: translation of expression, control structures, boolean expressions
Prerequisiti/Required background knowledge
Nozioni di base acquisite nei corsi di programmazione dei primi due anni.
Basic notions acquired in the programming courses of the first two years.
Metodi didattici/Teaching methods
Lezioni frontali in aula, esercitazioni.
Lectures, exercises.
Altre informazioni/Further information
Le studentesse e gli studenti con disabilità o con Disturbi Specifici dell’Apprendimento (DSA) o con Bisogni Educativi Speciali (BES) possono richiedere servizi e strumenti specifici a loro dedicati rivolgendosi allo Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti e consultando la pagina dedicata del sito di Ateneo: https://uniupo.it/it/servizi/servizi-studenti-disabili-e-dsa Le studentesse e gli studenti con disabilità, DSA, BES, una volta preso contatto con lo Staff di Ateneo, possono contattare la/il docente titolare dell'insegnamento in relazione alla declinazione delle modalità di esame, in merito agli aspetti didattici.
Students with physical disabilities, Learning Disabilities or Special Education Needs can request specific services and tools via the Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti, consulting the University webpage: https://www.uniupo.it/en/services/services-students-physical-or-learning-disabilities Students with disabilities, learning disabilities or special education needs, once they have contacted the University Staff, can refer to the tutor in charge of the course to define the examination modalities, concerning academic aspects.
Modalità di verifica dell'apprendimento/Assessment methods
Esame scritto (orale facoltativo). Contiene sia esercizi pratici che domande teoriche su diversi argomenti trattati nel corso. La valutazione è stabilita collegialmente dai docenti. La valutazione misura la proporzione di raggiungimento dei diversi risultati di apprendimento attesi.
Written examination (oral examination is optional). It contains both practical exercises and theoretical questions about different topics. The evaluation is established jointly by the lecturers. The evaluation measures the proportion of achievement of the learning objectives.
Programma esteso/Content
- Linguaggi ed espressioni regolari - Linguaggi e grammatiche context free - Grammatiche lineari, e loro relazioni con i linguaggi regolari - Grammatiche context sensitive (cenni) - Principali strutture sintattiche e regole grammaticali per generale - Automi a stati finite e loro relazione con i linguaggi regolari - Automi a pila (deterministici e non) e loro relazioni con i linguaggi context free - Principi del parsing bottom up, focalizzandosi sul parsing LR (LR(0) e SLR(1)). - Traduzione guidata dalla sintassi: grammatiche ad attributi e schemi di traduzione. . - Generazione del codice intermedio
- Regular languages and expressions - Context free grammars and languages - Linear grammars, and correspondence to regular languages - Context sensitive grammars (hints). - Main syntactic structures and grammar rules to generate them - Finite-state automata and relationships to regular languages - Stack automata (deterministic and non-deterministic) and relationships to context free languages - Basic bottom up parsing theory, focusing on LR parsing (LR(0) e SLR(1)) . - Syntax-directed translation: attribute grammars and translation schemes. - Intermediate code generation
Risultati di apprendimento attesi/Intended learning objectives
Conoscenza e capacità di comprensione: conoscere e comprendere le seguenti nozioni di base: linguaggi regolari, espressioni regolari, grammatiche lineari, automi a stati finiti (deterministici e non) linguaggi context free, grammatiche context free, automi a pila (deterministici e non) parser LR(0) e SLR(1) Conoscere i metodi per la traduzione diretta dalla sintassi durante l’analisi LR, come attraversamento dell'albero di derivazione e mediante il grafo delle dipendenze, e le condizioni per la loro applicazione. Capacita' di applicare conoscenza: modellare linguaggi regolari tramite espressioni regolari modellare linguaggi regolari tramite grammatiche lineari modellare linguaggi mediante grammatiche context free, utilizzando la metodologia "divide et impera" nello sviluppo delle grammatiche sviluppare automi a pila non deterministici a partire da grammatiche context-free sviluppare automi a pila deterministici per riconoscere linguaggi context-free deterministici sviluppare parser LR(0) e SLR(1) a partire da grammatiche context-free. Applicazione della traduzione diretta dalla sintassi alla traduzione dei linguaggi di programmazione. Autonomia di giudizio: riconoscere linguaggi regolari rispetto ai linguaggi context free conoscere la relazioni fra classi di linguaggi, classi di grammatiche, e classi di automi riconoscitori selezionare i costrutti appropriati per la definizione di grammatiche context-free a partire da un linguaggio. Riconoscere le condizioni per poter applicare la traduzione diretta dalla sintassi durante l’analisi LR. Abilita, comunicative: acquisire ed utilizzare la terminologia rigorosa utilizzata nell'ambito della teoria dei linguaggi Capacita' di apprendere: capacita' di riconoscere classi di problemi e di affrontarle con le metodologie appropriate per le classi stesse. Inoltre, una generale capacita' di modellazione ed analisi formale dei problemi.
Knowledge and comprehension: knowing and understanding the following basic notions: regular languages and expressions, linear grammars, (deterministic and non-deterministic) finite automata context free languages and grammars, (deterministic and non-deterministic) pushdown automata LR(0) and SLR(1) parsing. Syntax-directed translation (SDT) during LR parsing, during syntax tree traversal, using the dependency graph, and conditions for their application. Capacity to apply knowledge and comprehension: modeling regular languages via regular expression modeling languages via context free grammars developing pushdown automata on the basis of context free grammars developing deterministic pushdown automata to recognize deterministic context free languages developing LR(0) and SLR(1) parsers to recognize deterministic context free grammars. Application of syntax-directed translation to the compilation of programming languages. Judgement autonomy: recognize regular languages vs. context free languages know the relationships between classes of languages, classes of grammars, and classes of automata choosing the proper constructs to define context free grammars recognizing a given language. Being able to recognize whether SDT can be performed during LR parsing. Communication abilities: acquiring and adopting the rigorous terminology used in the theory of languages Learning capacity: recognizing classes of problems and face them adopting the appropriate methodologies. Capability of modeling and analyzing problems in a formal way.
×
Stampa
Insegnamento
PROGETTAZIONE E IMPLEMENTAZIONE DI SISTEMI SOFTWARE IN RETE
Codice
MF0243
Anno Accademico
2025/2026
Anno regolamento
2023/2024
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
LEONARDI GIORGIO
CFU
9.0
Ore di lezione
72.0
Ore di studio individuale
153.0
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OBB
Categoria insegnamento
B
Anno
3
Periodo
Annuale
Sede
ALESSANDRIA
Tipo di valutazione
V
Lingua insegnamento/Teaching language
ITALIANO
Italian
Contenuti/Content Summary
- Architettura delle reti informatiche locali, incluse reti wireless - Servizi multimediali in rete - Principi di base sull’architettura delle applicazioni distribuite basate su microservizi - Internet of Things - Sviluppo di un’applicazione distribuita basata su microservizi
- Local Area Network architectures, including wireless LANs - Network based multimedia services - Basic principles on the architecture of distributed applications based on microservices - Internet of Things - Practical implementation of a distributed application based on microservices architecture
Testi di riferimento/Textbooks
Autori: James F. Kurose, Keith W. Ross Titolo: RETI DI CALCOLATORI E INTERNET - Un approccio top-down 8/ed, Casa editrice: Addison Wesley (2022), ISBN 9788891916013. Autori: Chris Richardson Titolo: MICROSERVICES PATTERS, wth examples in Java. Casa editrice: Manning, Shelter Island.
Author: James F. Kurose, Keith W. Ross Title: RETI DI CALCOLATORI E INTERNET - Un approccio top-down 8/ed, Casa editrice: Addison Wesley (2022), ISBN 9788891916013. Author: Chris Richardson Title: MICROSERVICES PATTERS, wth examples in Java. Publisher: Manning, Shelter Island.
Obiettivi formativi/Mission
Conoscere le principali tecniche e protocolli alla base del funzionamento delle reti locali con e senza fili. Conoscere le principali caratteristiche e i protocolli specifici delle applicazioni multimediali in rete. Acquisire le competenze necessarie a progettare un'applicazione distribuita basata su microservizi, dalla specifica dei requisiti, alla progettazione, alla implementazione e collaudo dell’applicazione. Sviluppare la capacità di lavorare in gruppo per lo svolgimento del progetto, utilizzando strumenti di lavoro collaborativo in rete per interagire e organizzare il lavoro in team.
Know the main techniques and protocols on which wired and wireless Local Area Networks are based. Know the main properties and the specific protocols of the net-based multimedia applications. Acquire the necessary skills to design and implement a distributed application based on microservices, from the requirements specification phase, to the design, implementation, and test of the whole application. Develop the ability to work in a team using distributed computer supported cooperative work tools to interact and organize the teamwork.
Prerequisiti/Required background knowledge
I prerequisiti riguardano l'acquisizione delle nozioni base relative alle reti informatiche (corso di Reti -I), della progettazione del software (Ingegneria del Software e Programmazione ad Oggetti), della programmazione WEB (Metodologie di Programmazione per il Web) e della Sicurezza (Cybersecurity I).
Student should have already acquired the fundamental notions in software engineering, in computer networks, web application development and cybersecurity thought in the courses of Software Engineering, Object Oriented Programming, Web Programming Metodologies, Computer networks-I and Cybersecurity-I
Metodi didattici/Teaching methods
l corso si avvale di: - Lezioni frontali (per un totale di 32 ore, 4 crediti). - Fasi di lavoro guidato in laboratorio (per un totale di 40 ore, 5 crediti). - Fasi di lavoro laboratoriale, individuali o in gruppo, gestite in autonomia con il supporto del docente.
The course includes: Lectures (32 hours, 4 credits) Activity assisted by the teacher (40 hours, 5 credits). Individual activity, self-organized by the students, with the support of the teacher.
Altre informazioni/Further information
Le studentesse e gli studenti con disabilità o con Disturbi Specifici dell’Apprendimento (DSA) o con Bisogni Educativi Speciali (BES) possono richiedere servizi e strumenti specifici a loro dedicati rivolgendosi allo Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti e consultando la pagina dedicata del sito di Ateneo: https://uniupo.it/it/servizi/servizi-studenti-disabili-e-dsa Le studentesse e gli studenti con disabilità, DSA, BES, una volta preso contatto con lo Staff di Ateneo, possono contattare la/il docente titolare dell'insegnamento in relazione alla declinazione delle modalità di esame, in merito agli aspetti didattici.
Students with physical disabilities, Learning Disabilities or Special Education Needs can request specific services and tools via the Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti, consulting the University webpage: https://www.uniupo.it/en/services/services-students-physical-or-learning-disabilities Students with disabilities, learning disabilities or special education needs, once they have contacted the University Staff, can refer to the tutor in charge of the course to define the examination modalities, concerning academic aspects.
Modalità di verifica dell'apprendimento/Assessment methods
La verifica dell'apprendimento di conoscenze e competenze si articola in due fasi: 1- Un esame scritto sulla parte del programma di teoria, suddiviso in tre parti (una per ogni parte del corso: reti cablate, reti wireless e protocolli multimediali). Ogni parte è a sua volta suddivisa in domande ed esercizi. 2- Dimostrazione del funzionamento del progetto sviluppato con colloquio di gruppo che include la verifica delle competenze acquisite a livello individuale. Il voto finale tiene conto del risultato raggiunto in ciascuna fase di verifica. E’ necessario raggiungere la sufficienza su entrambi gli aspetti: teoria e progetto. L'apprendimento è da considerarsi sufficiente se per la parte di teoria si dimostra di avere, per il programma di teoria, dimestichezza con i concetti di base delle reti e dei relativi protocolli, mentre il progetto deve evidenziare la capacità di progettazione di un'applicazione a microservizi e la completezza e comprensibilità della documentazione tecnica che accompagna il progetto. La capacità di risolvere esercizi complessi, di approfondire ulteriormente gli argomenti teorici e l'utilizzo dei pattern di progettazione più coerenti per lo sviluppo di un'applicazione maggiormente distribuita e scalabile sono fattori che permettono il ragguingimento del massimo punteggio a disposizione.
The assessment of the concepts and skills acquired by the student includes two steps: 1- A written test on the theory part of the program. The test is composed by three parts (one for each section of the theoretical part: wired networks, wireless networks and multimedia protocols). Each part is in turn divided into questions and exercises. 2- A demonstration of the working prototype developed by the teams, including an individual evaluation of the acquired skills. The final grade is established by taking into account the results reached in both verification steps. It is required a sufficient level of knowledge and skills on both aspects: theory and project work. The learning level is considered sufficient if, for the theoretical part, students demonstrate familiarity with the basic concepts of networks and of the related protocols, based on the theory program. The project must demonstrate the ability to design a basic microservices application and the completeness and comprehensibility of the relative technical documentation. The ability to solve complex exercises, to further explore theoretical topics, and use the most consistent design patterns for developing a more distributed and scalable application are factors that will allow students to achieve the maximum score available.
Programma esteso/Content
Il programma si ariticola in due moduli corredati di una fase di sviluppo guidato in laboratorio. Modulo 1 (teoria, lezioni frontali): Datalink, Ethernet, ARP, switch. Introduzione alle reti wireless: trasmissione dei segnali via radio, wi-fi, bluetooth, ... Trasmissione multimediale su rete Internet. Applicazioni distribuite: comunicazione attraverso reti private e pubbliche. Message brokers. Mosquitto, RabbitMQ. API Rest: principi generali, scoperta degli URI, gestione delle versioni. Sicurezza e autenticazione: a. Autenticazione e sicurezza in Mosquitto. b. Autenticazione e sicurezza in RabbitMQ. OAuth 2.0: autenticazione, token, utilizzo del token. Modulo 2 (design e sviluppo del progetto: lezioni frontali e sessioni di lavoro in laboratorio): Architetture a Microservices, server stateless. approccio RPC, approccio Event-driven. Architetture IoT+Microservices. Tecniche di progettazione: a. Domain driven Design, b. Event Sourcing Design. Accesso ai Servizi tramite Gateway REST. Laboratorio: Illustrazione progetti. Progettazione di Un gateway. Progettazione di un microservizio (DDD). Sviluppo di un'applicazione distribuita seguendo lo schema proposto negli esempi forniti dal docente.
The program is structured into two methodological modules. Module 1 (theory, face-to-face lessons): Datalink, Ethernet, ARP, switches. Wireless Networks: signial transmission techniques, wifi, Bluetooth, ZigBee. Multi-media communication on IP networks. Distributed application architecture: Communication through private and public networks, Message Brokers. Mosquitto, RabbitMQ. API-rest: principles, URI discovery, version handling. Authentication and Security: a. Mosquitto. b. RabbitMQ. c. OAuth2.0: Authentication, token generation and handling. Module 2 (laboratory, part face-to-face and part work sessions): Micro-service architectures, stateless servers, RPC based communication, Message broker based communication. IoT+Microservice architectures. Design Patterns: a. Domain driven design. b. Event Sourcing Design. server access from clients via REST Gatway. Distribuited synchronization in microservies. Architecture examples for Gateway, microservice. Project: Students are required to develop a network application following the design patterns provided in the examples provided by the the teacher.
Risultati di apprendimento attesi/Intended learning objectives
- Conoscenza e capacità di comprensione: principali architetture e caratteristiche delle reti informatiche locali con e senza fili; servizi offerti dal livello data-link ed loro interfacciamento con il livello di rete; caratteristiche e requisiti della trasmissione di dati multimediali; principi base e tecniche usate per realizzare applicazioni distribuite a microservizi. - Capacità di applicare conoscenza e comprensione: applicare le conoscenze acquisite per sviluppare un’applicazione basata su microservizi che si interfacci con dispositivi IoT connessi ad una rete locale. Nella progettazione dell’applicazione si dovranno adottare le tecniche/ metodologie acquisite durante il corso di ingegneria del software. - Autonomia di giudizio: nello sviluppo dell’applicazione bisognerà essere in grado in modo autonomo di analizzare differenti soluzioni architetturali e scelte implementative, identificarne i vantaggi e svantaggi e selezionare le soluzioni più appropriate. - Abilità comunicative: si dovrà essere in grado di esporre in modo sintetico le caratteristiche della propria applicazione e le scelte architetturali o implementative fatte argomentandone la loro efficacia. - Capacità di apprendere: si dovrà essere in grado di interagire con diversi dispositivi e piattaforme sviluppati in accordo ai principi generali acquisiti durante il corso, ma che offrono interfacce specifiche differenti, apprendendendo in modo autonomo le caratteristiche peculiari dei servizi offerti per sviluppare un’applicazione capace di interagire con essi.
- Knowledge and understanding: students will learn the main architectures and features of local and wifi computer networks; the services provided by the data link layer and their interactions with the network layer; the characteristics and requirements of multimedia data transmission; the principles and techniques used in computer networks security and the characteristics of microservice applications. - Applying knowledge and understanding: students will be able to apply the acquired knowledge to develop a microservice application capable to interface with IoT devices connected to a LAN. During the application design the students will be able to use the techniques/methodologies acquired in the software engineering course. - Making judgments: students will be able to autonomously analyze different architectural and implementation solutions, identify their pros and cons and choose the most suitable solutions. Communication skills: students will learn to synthetically explain the features of their application and the architectural or implementation choices and reasoning about their effectiveness. - Learning skills: students will be capable to interact with different devices and platforms, developed according to the general principles acquired in the courses, but with different specific interfaces. Thus students will be able to autonomously learn the specific characteristics of provided services in order to develop an application capable to interact with them.
×
Stampa
Insegnamento
PROGETTAZIONE E IMPLEMENTAZIONE DI SISTEMI SOFTWARE IN RETE
Codice
MF0244
Anno Accademico
2025/2026
Anno regolamento
2023/2024
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
FRANCESCHINIS Giuliana Annamaria
CFU
9.0
Ore di lezione
72.0
Ore di studio individuale
153.0
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OBB
Categoria insegnamento
B
Anno
3
Periodo
Annuale
Sede
VERCELLI
Tipo di valutazione
V
Lingua insegnamento/Teaching language
Italiano
Italian
Contenuti/Content Summary
- Architettura delle reti informatiche locali, incluse reti wireless - Servizi multimediali in rete - Principi di base sull’architettura delle applicazioni distribuite basate su microservizi - Internet of Things - Sviluppo di un’applicazione distribuita basata su microservizi
- Local Area Network architectures, including wireless LANs - Network based multimedia services. - Basic principles on the architecture of distributed applications based on microservices - Internet of Things - Practical implementation of a distributed application based on microservices architecture
Testi di riferimento/Textbooks
Libro di testo: James F. Kurose, Keith W. Ross, Reti di Calcolatori e Internet - Un approccio top-down , Settima o Ottava Edizione, Addison Wesley (2017 o 2022) Per consultazione: C. Richardson Microservices Patterns. With Examples in Java Manning Publications (2018)
Textbook course James F. Kurose, Keith W. Ross, Computer networking - A top-down approach , 7th or 8th Edition, Addison Wesley (2017 or 2021) In addition C. Richardson Microservices Patterns. With Examples in Java Manning Publications (2018)
Obiettivi formativi/Mission
Conoscere le principali tecniche e protocolli alla base del funzionamento delle reti locali con e senza fili. Conoscere le principali caratteristiche e i protocolli specifici delle applicazioni multimediali in rete. Acquisire le competenze necessarie a progettare un'applicazione distribuita basata su microservizi, dalla specifica dei requisiti, alla progettazione, alla implementazione e collaudo dell’applicazione. Sviluppare la capacità di lavorare in gruppo per lo svolgimento del progetto, utilizzando strumenti di lavoro collaborativo in rete per interagire e organizzare il lavoro in team.
Know the main techniques and protocols on which wired and wireless Local Area Networks are based. Know the main properties and the specific protocols of the net-based multimedia applications. Acquire the necessary skills to design and implement a distributed application based on microservices, from the requirements specification phase, to the design, implementation, and test of the whole application. Develop the ability to work in a team using distributed computer supported cooperative work tools to interact and organize the teamwork.
Prerequisiti/Required background knowledge
La studentessa o lo studente deve avere acquisito le nozioni base relative alle reti informatiche (corso di Reti -I), la progettazione del software (Ingegneria del Software e Programmazione ad Oggetti), della programmazione WEB (Metodologie di Programmazione per il Web) e Sicurezza (Cybersecurity I).
The student should have already acquired the fundamental notions in software engineering, in computer networks, web application development and cybersecurity thought in the courses of Software Engineering, Object Oriented Programming, Web Programming Metodologies, Computer networks-I and Cybersecurity-I
Metodi didattici/Teaching methods
Il corso si avvale di: - Lezioni frontali - Fasi di lavoro guidato in laboratorio - Fasi di lavoro in laboratorio individuali e in gruppo autogestite
The course includes: - Lectures - Lab activity assisted by the teachers - Self-organized laboratory individual activity and team work
Altre informazioni/Further information
Sulla piattaforma DIR sono disponibili le slide utilizzate a lezione, esempi di esercizi simili a quelli proposti all'esame scritto sulla parte di teoria, esempi di programmi completi da utilizzare per il lavoro in laboratorio. Attraverso la piattaforma gitlab del dipartimento gli studenti e le studentesse possono condividere on-line la documentazione e il software prodotto durante lo sviluppo dell’applicazione richiesta come progetto finale. Le studentesse e gli studenti con disabilità o con Disturbi Specifici dell’Apprendimento (DSA) o con Bisogni Educativi Speciali (BES) possono richiedere servizi e strumenti specifici a loro dedicati, rivolgendosi allo "Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti" e consultando la pagina dedicata del sito di Ateneo: https://uniupo.it/it/servizi/servizi-studenti-disabili-e-dsa. Le studentesse e gli studenti con disabilità, DSA, BES, una volta preso contatto con lo Staff di Ateneo, possono contattare la/il docente titolare dell'insegnamento in relazione alla declinazione delle modalità di esame, in merito agli aspetti didattici.
On the DIR platform the students can find the slides used in classes, examples of exercises similar to those proposed in the written exam on the theory part of the program, examples of simple working programs to be used in the lab sessions . Using the gitlab platform of the department, the students can share on-line the artifacts produced along all development phases of the final project. Students with physical disabilities, Learning Disabilities or Special Education Needs can request specific services and tools via the "Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti", consulting the University webpage: https://www.uniupo.it/en/services/services-students-physical-or-learning-disabilities. Students with disabilities, learning disabilities or special education needs, once they have contacted the University Staff, can refer to the tutor in charge of the course to define the examination modalities, concerning academic aspects.
Modalità di verifica dell'apprendimento/Assessment methods
La verifica dell'apprendimento di conoscenze e competenze si articola in due fasi: - Un esame scritto sulla parte del programma di teoria con domande ed esercizi. - Dimostrazione del funzionamento del progetto sviluppato con colloquio di gruppo che include la verifica delle competenze acquisite a livello individuale. Il voto finale viene concordato dai docenti del corso tenendo conto del risultato raggiunto in ciascuna fase di verifica. E’ necessario raggiungere la sufficienza su entrambi gli aspetti: teoria e progetto. Nella valutazione finale la teoria e la parte pratica hanno uguale peso.
The assessment of the concepts and skills acquired by the student includes two steps: - A written test on the theory part of the program, including questions and exercises. - A demonstration of the working prototype developed by the teams, including an individual evaluation of the acquired skills. The final grade is established by the course teachers taking into account the results reached in both verification steps. It is required a sufficient level of knowledge and skills on both aspects: theory and project work. In the final evaluation theory and project have the same weight.
Programma esteso/Content
Il corso comprende due parti: 1. Teoria delle reti locali con e senza fili e applicazioni multimediali in rete: a) Il livello data-link: - Caratterizzazione del servizio e delle funzionalità. - Interfacciamento al livello rete: ARP Principi dei protocolli per l'accesso a mezzi condivisi: CSMA/CD, CSMA/CA, CDMA. - Ethernet, Ethernet-switch. - Wi-Fi, Access Point, protocolli della classe 802.11. - Bluetooth (cenni): architettura, utilizzazione nella IoT - ZigBee (cenni): architettura, utilizzazione nell'IoT b) Trasmissione multimediale su rete Internet: - Requisiti del traffico multimediale in contrapposizione al traffico dati tradizionale - Streaming audio-video. c) Architetture per applicazioni distribuite in rete: - Caratterizzazione dell’ambiente: reti private, IoT - Architetture guidate dagli eventi contrapposte alle architetture Client- Server. - Comunicazione tramite relay in rete pubblica con particolare riferimento ai message-broker - API Rest: principi generali 2. Modulo di Laboratorio: Sviluppo di un'applicazione distribuita in rete basata su microservizi. a) Ambiente a disposizione: - Rete locale “privata” dotata di un insieme di nodi adatti alla implementazione di applicazioni IoT. - Protocollo di comunicazione supportato: MQTT + HTTP - Autorizzazione basata su OAuth 2.0 usando token b) Lavoro da svolgere da parte dello studente. Nel percorso didattico del modulo di laboratorio lo studente deve sviluppare il progetto utilizzando le tecniche di progettazione apprese nel corso di ingegneria del software, metodologie di programmazione web, programmazione a oggetti e sicurezza. Il linguaggio di implementazione consigliato è Java (eventualmente appoggiandosi a framework adatti allo scopo) ma può anche essere scelto liberamente dallo studente (per esempio C#, Javascript, Python). c) Attività preliminare guidata dal docente: - Preparazione metodologica al progetto: analisi della struttura delle moderne applicazioni di rete basate su message-brokers, con sperimentazione del broker open source Mosquitto. - Paradigma di comunicazione basato su Publish-Subscribe (protocollo MQTT) d) Sviluppo del Progetto: Agli studenti e alle studentesse verrà assegnata un’applicazione distribuita nel dominio IoT che dovrà essere sviluppata in gruppo secondo le classiche fasi previste nell'ingegneria del software (potendo contare in ogni fase sulla possibilità di verificare le scelte compiute con i docenti): - Analisi dei requisiti che devono essere soddisfatti e definizione delle specifiche per il software da progettare. - Progettazione dell'architettura, specifica dei componenti, dei moduli e delle classi. Interazione dei componenti. - Implementazione del software progettato. - Validazione e analisi delle prestazioni ottenute - Stesura della documentazione relativa ad ogni fase.
The course comprises two parts: Part 1. Theory of Local Area Networks (both wired and wireless) and net-based multimedia applications: a) The data-link layer: - Service and functionality characterization. - Network to data-link interface: ARP Medium Access Control principles: CSMA/CD, CSMA/CA, CDMA. - Ethernet, Ethernet switches. - Wi-Fi, Access-point, 802.11 protocol suite. - Bluetooth (basic notions). Application to Internet of Things. - ZigBee (basic notions). Application to Internet of Things. b) Multimedia communication on IP networks: - Requirement characterization. - Audio-video streaming. c) Network Application Architectures: - Event-Driven architectures versus Client-Server architectures. - Relay in public networks, in particular through message brokers -API-rest: main principles Part 2. Lab work and Project development: Development of a Network Application based on microservices. a) Environment: - Local Area Network provided with hosts oriented to IoT applications: - Communication protocol: MQTT + HTTP - Authorization based on OAuth 2.0 using tokens b) Assignment: the student is required to develop a project applying the methods learned in the courses of software engineering, object oriented programming, computer networks, cybersecurity and WEB programming. The suggested computer language for the software implementation is Java (possibly using appropriate frameworks), but the students can freely choose other languages (e.g. C#, Javascript, Python). c) Preliminary activity: - Familiarization with the methodological aspects of the project: message- broker based architectures including practical experiments with the open source broker Mosquitto. - Experimentation with the public-subscribe paradigm (MQTT protocol) d) Project development: the students are required to developed an application in the IoT domain, which will be developed in team following the typical software engineering approach (in each phase the teams can check the validity of the chosen solutions with the course teachers): - Requirement analysis and general software specification. - Architecture design, components, modules and class specification. Components interaction. - Implementation of the designed software artifacts. - Validation and analysis of the performances - Production of the documentation for each project step.
Risultati di apprendimento attesi/Intended learning objectives
Conoscenza e capacità di comprensione: gli studenti e le studentesse dovranno conoscere le principali architetture e caratteristiche delle reti informatiche locali con e senza fili; i servizi offerti dal livello data-link ed il loro interfacciamento con il livello di rete; le caratteristiche ed i requisiti della trasmissione di dati multimediali; i principi base e le tecniche usate per realizzare applicazioni distribuite a microservizi. Capacità di applicare conoscenza e comprensione: gli studenti e le studentesse dovranno essere in grado di applicare le conoscenze acquisite per sviluppare un’applicazione basata su microservizi che si interfacci con dispositivi IoT connessi ad una rete locale. Nella progettazione dell’applicazione dovranno essere adottate le tecniche/ metodologie acquisite durante il corso di ingegneria del software. Autonomia di giudizio: nello sviluppo dell’applicazione gli studenti e le studentesse dovranno essere in grado in modo autonomo di analizzare differenti soluzioni architetturali e scelte implementative, identificarne i vantaggi e svantaggi e selezionare le soluzioni più appropriate. Abilità comunicative: gli studenti e le studentesse dovranno essere in grado di esporre in modo sintetico le caratteristiche della propria applicazione e le scelte architetturali o implementative fatte argomentandone la loro efficacia. Capacità di apprendere: gli studenti e le studentesse dovranno interagire con diversi dispositivi e piattaforme sviluppati in accordo ai principi generali acquisiti durante il corso, ma che offrono interfacce specifiche differenti. Dovranno quindi essere in grado di apprendere in modo autonomo le caratteristiche peculiari dei servizi offerti e sviluppare un’applicazione capace di interagire con essi.
Knowledge and understanding: students will learn the main architectures and features of local and wifi computer networks; the services provided by the data link layer and their interactions with the network layer; the characteristics and requirements of multimedia data transmission; the principles and techniques used in computer networks security and the characteristics of microservice applications. Applying knowledge and understanding: students will be able to apply the acquired knowledge to develop a microservice application capable to interface with IoT devices connected to a LAN. During the application design the students will be able to use the techniques/methodologies acquired in the software engineering course. Making judgments: students will be able to autonomously analyze different architectural and implementation solutions, identify their pros and cons and choose the most suitable solutions. Communication skills: students will learn to synthetically explain the features of their application and the architectural or implementation choices and reasoning about their effectiveness. Learning skills: students will be capable to interact with different devices and platforms, developed according to the general principles acquired in the courses, but with different specific interfaces. Thus students will be able to autonomously learn the specific characteristics of provided services in order to develop an application capable to interact with them.
×
Stampa
Insegnamento
INGEGNERIA DEL SOFTWARE
Codice
MF0221
Anno Accademico
2025/2026
Anno regolamento
2023/2024
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
NICOLAZZO SERENA
CFU
6.0
Ore di lezione
48.0
Ore di studio individuale
102.0
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OBB
Categoria insegnamento
B
Anno
3
Periodo
Primo Semestre
Sede
VERCELLI
Tipo di valutazione
V
Lingua insegnamento/Teaching language
ITALIANO
Italian
Contenuti/Content Summary
Il corso tratta le fasi del processo di sviluppo di sistemi software: specifica, progettazione, implementazione, test. Inoltre viene introdotto il linguaggio UML per la specifica e la progettazione di sistemi. L'attività di laboratorio consiste nella preparazione di diagrammi UML tramite un apposito editor, e la loro traduzione in codice.
The course deals with the stages of the development of software systems: specification, design, implementation, validation and testing. Moreover, the UML language for the specification and design of systems is introduced. The activity in the laboratory consists of preparing UML diagrams by means of a specific editor, and their translation into code.
Testi di riferimento/Textbooks
- I. Sommerville, "Ingegneria del software", Pearson Education Italia - M. Fowler, "UML distilled", Pearson Education Italia
- I. Sommerville, "Software Engineering", Addison Wesley - M. Fowler, "UML distilled", Addison Wesley
Obiettivi formativi/Mission
La Studentessa/lo Studente deve conoscere: 1) i passi necessari per realizzare un sistema software a partire dalla richiesta di un committente, fino alla consegna, secondo il processo dell'Ingegneria; 2) i diagrammi UML necessari per modellare il dominio applicativo, i requisiti, l'architettura e il comportamento del sistema; 3) terminologia dell'Ingegneria. La Studentessa/lo Studente deve essere in grado di: 1) organizzare un processo di lavoro secondo le fasi dell'Ingegneria, individuando e definendo tutte le informazioni propedeutiche all'implementazione del sistema (requisiti, architettura, comportamento); 2) rappresentare tali informazioni sotto forma di diagrammi UML in modo da essere comprensibili da altri sviluppatori, e scrivere il codice rispettando il contenuto di tali diagrammi; 3) comprendere e utilizzare il linguaggio tipico dagli ingegneri.
The student must know: 1) the steps necessary to realize a software system, from the customer's requests, to the delivery, according to the engineering process; 2) the UML diagrams necessary to model the application domain, the requirements, the architecture, and the behaviour of the system; 3) terminology of engineering. The student must be able to: 1) organize a working process according to the steps of Engineering, identifying and defining all the information necessary to implement the system (requirements, architecture, behaviour); 2) represent such information in terms of UML diagrams in order to be read by other developers, and write the code respecting the contents of such diagrams; 3) understand and use the language of engineers.
Prerequisiti/Required background knowledge
Conoscenze acquisite nei corsi di Paradigmi di programmazione e Basi di dati.
Knowledge acquired in the Programming paradigms course and Databases course.
Metodi didattici/Teaching methods
Il corso prevede lezioni frontali in aula e lezione pratiche in laboratorio. Le lezioni frontali occupano circa 32 ore. Le lezioni di laboratorio occupano circa 16 ore. Modalità: le lezioni frontali si occupano di spiegare le fasi dell'Ingegneria e come queste si possono applicare allo sviluppo di un sistema software. Inoltre si presenta il linguaggio UML sia dal punto di vista formale sia dal punto di vista applicativo mostrando come può essere utilizzato per modellare il dominio applicativo, i requisiti, l'architettura, il comportamento del sistema, e per supportare la scrittura del codice. Le lezioni pratiche prevedono la preparazione di un progetto dove si definiscono dei diagrammi UML e si traducono in codice. Strumenti: Diversi casi di studio vengono utilizzati durante le lezioni frontali per mostrare come progettare il sistema a partire dalla deduzione dei requisiti dal dominio applicativo. Lo scopo dei casi di studio è fornire alle Studentesse/agli Studenti un esempi concreti di applicazione delle procedure viste nel corso. La preparazione da parte delle Studentesse/degli Studenti di un proprio progetto in UML è richiesto durante le ore in laboratorio. Tale progetto deve avere gli stessi contenuti in termini di specifica e progettazione. Lo scopo del progetto è l'applicazione pratica da parte delle Studentesse/degli Studenti delle stesse procedure viste durante le lezioni frontali. Il corso ha una propria pagina nella piattaforma DIR (Didattica in Rete) che contiene le slide del Corso.
The course consists of frontal lectures and laboratory lectures. Frontal lectures take 32 hours. Laboratory lectures take 16 hours. Modality: the frontal lectures explain the stages of Engineering and how they can be applied to the development of a software system. Moreover the UML language is presented from both the formal point of view and the application point of view, showing how it can be used to model the application domain, the requirements, the system architecture and behaviour, and to support code writing. The laboratory lectures are dedicated to preparing a project where UML diagrams are defined and translated into code. Tools: Specific case studies are used during the frontal lectures to show how to design the system, starting from the elicitation of requirements from the application domain. The case studies are gradually developed during the lectures about the practical application of Engineering stages and UML. The goal of the case studies is providing concrete examples of application of the procedures presented in the course. The preparation by the students of their own project in UML, is required during the laboratory lectures. Such project must have the same contents in terms of specification and design. The goal of the project is the practical application by the students, of the same procedures presented during the frontal lectures. The course has its own page in the platform DIR (Didattica in Rete) which contains the slides of the lessons.
Altre informazioni/Further information
Almeno cinque giorni prima della prova scritta le studentesse e gli studenti devono consegnare il Progetto complete tramite una piattaforma di condivisione dei file (Gitlab). Le studentesse e gli studenti con disabilità o con Disturbi Specifici dell’Apprendimento (DSA) o con Bisogni Educativi Speciali (BES) possono richiedere servizi e strumenti specifici a loro dedicati rivolgendosi allo Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti e consultando la pagina dedicata del sito di Ateneo: https://uniupo.it/it/servizi/servizi-studenti-disabili-e-dsa Le studentesse e gli studenti con disabilità, DSA, BES, una volta preso contatto con lo Staff di Ateneo, possono contattare la/il docente titolare dell'insegnamento in relazione alla declinazione delle modalità di esame, in merito agli aspetti didattici.
At least five days before the exam the students must delivery the project by means of a file sharing tool (Gitlab). Students with physical disabilities, Learning Disabilities or Special Education Needs can requestspecific services and tools via the Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti, consulting the University webpage: https://www.uniupo.it/en/services/services-students-physical-or-learning-disabilities Students with disabilities, learning disabilities or special education needs, once they have contacted the University Staff, can refer to the tutor in charge of the course to define the examination modalities, concerning academic aspects.
Modalità di verifica dell'apprendimento/Assessment methods
Per le Studentesse/gli Studenti l'esame è composto da due parti: 1) la consegna, alla fine del corso, del progetto realizzato durante le lezioni di laboratorio; 2) una prova scritta riguardante la parte di teoria da sostenere agli appelli. Per essere ammessi alla prova scritta il progetto deve essere consegnato. 1) La valutazione del progetto si basa sulla qualità dei diagrammi UML realizzati, in termini di precisione (circa 10 punti), coerenza (circa 10 punti) e completezza (circa 10 punti). Per precisione si intende la correttezza formale dei diagrammi, un livello di dettaglio accettabile e l'assenza di ambiguità di interpretazione del contenuto. Per coerenza si intende che non ci devono essere discrepanze tra un diagramma e l'altro, e tra i diagrammi e il codice implementato. Per completezza si intende che tutti i diagrammi richiesti devono essere presenti, assieme al codice corrispondente e ai test-case. 2) Nella prova scritta si verificano la conoscenza delle varie fasi del processo dell'Ingegneria, l'acquisizione della terminologia dell'Ingegneria e l'applicazione di alcuni metodi. L'esame scritto prevede sia domande (circa 20) sui concetti teorici, sia esercizi applicativi (circa 3) relativi ai metodi. Una domanda può valere 1 o 2 punti; ogni esercizio vale 3 punti. Durante la prova scritta non è consentita la consultazione del materiale del corso o di manuali. Sulla piattaforma DIR, nella pagina del corso, ci sono esempi di prove scritte del passato. Il voto finale è dato dalla media tra i voti del progetto consegnato e dell'esame scritto ed è massimo 31 (30 e lode) e minimo 18.
The exam is composed by two parts: 1) the delivery, at the end of the course, of the project realized during the laboratory lectures; 2) a written test concerning the theory. In order to be admitted to the written test the project must be delivered. 1) The evaluation of the project is based on the quality of the UML diagrams realized, in terms of precision (about 10 points), coherence (about 10 points), and completeness (about 10 points). Precision means the formal correctness of the diagrams, an acceptable detail level, and the absence of ambiguity in the interpretation of the contents. Coherence means that there are no discrepancies between a diagram and another one, and between the diagrams and the code implemented. Completeness means that all the required diagrams are present, together with the corresponding code and the test-cases. 2) The knowledge of the Engineering stages, the knowledge of the Engineering terminology, and the application of specific methods, are verified in the written test which is composed by both questions (about 20) about theoretical concepts, and practical exercises (about 3) about the methods. The score of every question can be 1 or 2 points over 30; the score of every exercise is 3 points. During the written test, consulting the course materials or manuals is not allowed. The DIR platform, in the course page, contains examples of written tests in the past. The final score is given by the average of the scores of the delivered project and the written test and it is max 31 and minimum 18.
Programma esteso/Content
- Introduzione all'Ingegneria del Software - Processo software (ciclo di vita del software) - Specifica dei requisiti - Specifica con UML - Progettazione - Progettazione con UML - Implementazione -Testing - Design patterns - Progetto di laboratorio
- Introduction to the Software Engineering - Software process (software life-cycle) - Requirements specification - Specification using UML - System design - Design using UML - Testing - Design patters - Lab. project
Risultati di apprendimento attesi/Intended learning objectives
Il corso prevede una parte teorica e una parte di laboratorio. La parte teorica tratta il processo dell'Ingegneria strutturato nelle fasi di specifica, progettazione, implementazione, collaudo e manutenzione. Lo scopo e' mostrare come tale processo puo' essere applicato allo sviluppo di sistemi software. La parte di laboratorio introduce il linguaggio UML per la specifica e la progettazione di sistemi. L'attività in laboratorio consiste nella preparazione di diagrammi UML relativi ad un determinato sistema software, attraverso l'uso di un editor UML, e la loro traduzione in codice. Questo permette di prendere confidenza con tali diagrammi e approfondirne la conoscenza. Conoscenza e comprensione: fasi dell'Ingegneria, aspetti formali dei vari tipi di diagrammi UML. Capacità di applicare conoscenza e comprensione: applicazione delle fasi dell'Ingegneria allo sviluppo di un sistema software, ed in particolare, - studio del dominio applicativo; - deduzione dei requisiti dal dominio; - modellazione del dominio e dei requisiti in UML; - definizione e modellazione in UML di un'architettura software adatta a realizzare i requisiti; - definizione e modellazione in UML del comportamento dei componenti del sistema durante l'esecuzione di un certo requisito, con un livello di dettaglio tale da consentire l'implementazione del requisito in un linguaggio di programmazione. Autonomia di giudizio: studio e definizione in modo autonomo del dominio applicativo, dei requisiti, dell'architettura e del comportamento del sistema. Abilità comunicative: - comunicazione e coordinazione all'interno del gruppo di lavoro; - esprimere i requisiti del sistema con diversi gradi di dettaglio; - stesura dei diagrammi UML in modo completo, dettagliato e coerente, al fine di renderli comprensibili a qualunque programmatore. Capacita' di apprendimento: acquisire la terminologia dell'Ingegneria, organizzare lo sviluppo di un sistema secondo le fasi dell'Ingegneria, modellare gli aspetti di specifica e progettazione tramite un linguaggio formale quale UML.
The course consists of a theoretical section and a laboratory section. The theoretical section deals with the Engineering process structured in the following stages: specification, design, implementation, verification & validation, maintenance. The aim is showing how such process can be applied to the development of software systems. The laboratory section introduces the UML language for the specification and the design of systems. The activity in the laboratory consists of preparing UML diagrams about a certain software system, by means of an UML editor, and translating them into code. This allows the students to become familiar with such diagrams and improve the knowledge of them. Knowledge and comprehension: stages of Engineering, formal aspects of the several kinds of UML diagrams. Ability to apply knowledge and comprehension: application of the Engineering stages and UML to the development of a system software, and in particular, - the study of the application domain; - the requirement elicitation from the domain; - UML modeling of the domain and the requirements; - definition and UML modeling of a software architecture able to realize the requirements; - definition and UML modeling of the component behaviour during the execution of a specific requirement, with a detail level allowing the programmer to implement the requirement. Judgement autonomy: study and definition in an autonomous way, of the application domain, the requirements, the system architecture and behaviour. Communication abilities: - communication and coordination inside the working group; - expressing the system requirements with different levels of detail; - designing the UML diagrams in a complete, detailed, and coherent way, with the goal of making them clear to any programmer. Learning capacity: acquiring the terminology of Engineering, planning the development of a system according to the stages of Engineering, modeling specification and design aspects by means of a formal language such as UML.
×
Stampa
Insegnamento
CALCOLO NUMERICO
Codice
S0515
Anno Accademico
2025/2026
Anno regolamento
2023/2024
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
ACETO LIDIA
Docenti
CFU
6.0
Ore di lezione
48.0
Ore di studio individuale
102.0
Settore Scientifico Disciplinare (SSD)
MAT/08 - ANALISI NUMERICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OPZ
Categoria insegnamento
D
Anno
3
Periodo
Secondo Semestre
Sede
ALESSANDRIA
Tipo di valutazione
V
Lingua insegnamento/Teaching language
Italiano
Italian
Contenuti/Content Summary
Il corso fornisce nozioni sull'analisi degli errori, l'aritmetica di macchina, l'approssimazione numerica della soluzione di equazioni non lineari, metodi efficienti per la soluzione di sistemi di equazioni lineari. Il corso affronta anche le principali questioni relative all'approssimazione delle funzioni e all'integrazione numerica.
The course provides notions on error analysis, finite precision number system and arithmetic, numerical approximation of the solution of nonlinear equations, efficient methods for the solution of systems of linear equation. The course also approaches the main issues related to function approximation and numerical integration.
Testi di riferimento/Textbooks
Appunti del docente caricati sulla piattaforma DIR.
Teacher's notes available on the DIR platform.
Obiettivi formativi/Mission
L'insegnamento si propone di fornire alle studentesse e agli studenti la conoscenza dei metodi numerici di base e la analisi delle loro principali proprietà. Scopo dell'insegnamento è che le/gli studentesse/studenti acquisiscano e sappiano utilizzare un linguaggio matematico appropriato in relazione agli argomenti trattati nel corso e che sviluppino la capacità di utilizzare in maniera corretta e consapevole le nozioni imparate. Obiettivo formativo dell’insegnamento è quello di sviluppare la capacità di implementare su calcolatore gli strumenti matematici introdotti a lezione. In particolare, la/lo studentessa/studente sarà in grado di valutare uno schema numerico sia dal punto di vista dell'accuratezza dell'approssimazione che fornisce sia dal costo computazionale della sua implementazione.
The course aims to provide students with knowledge of basic numerical methods and an analysis of their main properties. The goal is for students to acquire and be able to use an appropriate mathematical language in relation to the topics covered in the course, and to develop the ability to use the concepts learned correctly and consciously. The educational objective of the course is to develop the ability to implement the mathematical tools introduced in class on a computer. In particular, students will be able to evaluate a numerical scheme both in terms of the accuracy of the approximation it provides and the computational cost of its implementation.
Prerequisiti/Required background knowledge
Conoscenza delle nozioni fondamentali fornite durante corsi matematica. In maggior dettaglio: funzioni e successioni, limiti, calcolo differenziale in una variabili, sviluppi di Taylor, calcolo integrale in una variabile, problemi ai valori iniziali per sistemi di equazioni differenziali ordinarie. Spazi vettoriali, sistemi lineari, algebra delle matrici, autovalori ed autovettori.
The knowledge of the main notions provided during a basic course of Mathematics is required. In more details: Functions and sequences, Limits, Differential calculus, Taylor expansion, Integral calculus in one variable, Initial value problems for ordinary differential equations; Vector spaces, Linear systems, Matrix algebra, Eigenvalues.
Metodi didattici/Teaching methods
La didattica si svolgerà mediante lezioni frontali alla lavagna ed esercitazioni in laboratorio informatico. Oltre alle lezioni teoriche verranno svolte esercitazioni in laboratorio informatico da parte del docente con il coinvolgimento attivo delle/degli studentesse/studenti per approfondire gli argomenti trattati durante le lezioni teoriche. I concetti oggetto del corso verranno discussi collegialmente in aula e applicati direttamente durante le esercitazioni in laboratorio per stimolare nelle/negli studentesse/studenti il senso critico e l’autonomia di giudizio. Frequenza: consigliata
Teaching will take place through lectures on the blackboard and exercises in the computer lab. In addition to the theoretical lessons, the teacher will carry out exercises in the computer lab with the active involvement of the students to deepen the topics covered during the theoretical lessons. The concepts covered by the course will be discussed collegially in the classroom and applied directly during laboratory exercises to stimulate students' critical sense and autonomy of judgment. Attendance: Advised
Altre informazioni/Further information
Le studentesse e gli studenti con disabilità o con Disturbi Specifici dell’Apprendimento (DSA) o con Bisogni Educativi Speciali (BES) possono richiedere servizi e strumenti specifici a loro dedicati rivolgendosi allo Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti e consultando la pagina dedicata del sito di Ateneo: https://uniupo.it/it/servizi/servizi-studentidisabili-e-dsa Le studentesse e gli studenti con disabilità, DSA, BES, una volta preso contatto con lo Staff di Ateneo, possono contattare la/il docente titolare dell'insegnamento in relazione alla declinazione delle modalità di esame, in merito agli aspetti didattici.
Students with physical disabilities, Learning Disabilities or Special Education Needs can request specific services and tools via the __Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti__, consulting the University webpage: https://www.uniupo.it/en/services/servicesstudents-physical-or-learning-disabilities. Students with disabilities, learning disabilities or special education needs, once they have contacted the University Staff, can refer to the tutor in charge of the course to define the examination modalities, concerning academic aspects.
Modalità di verifica dell'apprendimento/Assessment methods
Prova orale sugli argomenti trattati durante le lezioni teoriche e pratiche (laboratorio informatico). Durante la prova orale la/lo studentessa/studente dovrà dimostrare di aver acquisito conoscenze sui contenuti del corso utilizzando strumenti e terminologia appropriata.
Oral exam on the topics covered during the theoretical and practical lessons (computer lab). During the oral exam, the student must be able to demonstrate his/her knowledge of the main course contents using the appropriate terminology. He/She must also demonstrate ability of putting into practice, with critical awareness, some of the activities carried out in laboratory during the course.
Programma esteso/Content
ANALISI DELL'ERRORE: errore assoluto ed errore relativo. Tipologie di errore. Numeri di macchina. Rappresentazione mediante troncamento ed arrotondamento. Precisione di macchina. Overflow ed Underflow. Aritmetica finita. Condizionamento di un problema. Condizionamento delle quattro operazioni algebriche fondamentali; APPROSSIMAZIONE DI ZERI DI FUNZIONE: Il metodo di bisezione: criteri di arresto, condizionamento del problema ed ordine di convergenza. Il metodo di Newton: convergenza locale ed ordine di convergenza quadratico per radici semplici. Il caso di radici multiple: convergenza lineare e ripristino dell'ordine quadratico per il caso di molteplicità esatta nota a priori. Metodi quasi-Newton. RISOLUZIONE DI SISTEMI LINEARI: Casi semplici. Fattorizzazione LU: esistenza, unicità e costo computazionale. Matrici a diagonale dominante. Matrici simmetriche e definite positive: metodo di Cholesky. Pivoting. Condizionamento del problema. Metodi iterativi di base. Sistemi lineari sovradeterminati: soluzione nel senso dei minimi quadrati, metodo delle equazioni normali e cenni sul metodo basato sulla fattorizzazione QR. APPROSSIMAZIONE DI FUNZIONI: Interpolazione polinomiale: esistenza ed unicità del polinomio interpolante. Forma di Lagrange. Cenni sulla analisi dell'errore. Il metodo dei minimi quadrati nel discreto. INTEGRAZIONE NUMERICA: Formule di quadratura di tipo interpolatorio. Formule di Newton-Cotes: il metodo dei trapezi ed il metodo di Simpson semplici. Analisi dell'errore. Grado di precisione di una formula di quadratura. Analisi del condizionamento di un integrale definito e di una formula di quadratura. Metodo dei trapezi e di Simpson compositi e relativa analisi dell'errore. AMBIENTE DI CALCOLO MATLAB: Definizione di variabili scalari, vettori e matrici. Tipo di una variabile. Operatore due punti. Sottovettori e sottomatrici. Operatori aritmetici, relazionali e logici. Espressioni. Principali funzioni built-in. M-files di tipo script. Comandi per l'input e l'output dei dati. Comandi per il controllo del flusso di esecuzione. M-files di tipo function: parametri di input e di output. Principali comandi per la grafica in 2D.
ERROR ANALYSIS: Absolute error and relative error. Types of errors. Machine numbers. Representation through truncation and rounding. Machine precision. Overflow and Underflow. Finite arithmetic. Conditioning of a problem. Conditioning of the four fundamental algebraic operations. APPROXIMATION OF FUNCTION ZEROS: The bisection method: stopping criteria, problem conditioning, and convergence order. Newton's method: local convergence and quadratic convergence order for simple roots. The case of multiple roots: linear convergence and restoration of quadratic convergence when exact multiplicity is known a priori. Quasi-Newton methods. SOLVING LINEAR SYSTEMS: Simple cases. LU factorization: existence, uniqueness, and computational cost. Diagonally dominant matrices. Symmetric and positive-definite matrices: Cholesky method. Pivoting. Problem conditioning. Basic iterative methods. Overdetermined linear systems: least squares solution, normal equations method, and a brief mention of the method based on QR factorization. FUNCTION APPROXIMATION: Polynomial interpolation: existence and uniqueness of the interpolating polynomial. Lagrange form. Brief analysis of error. The discrete least squares method. NUMERICAL INTEGRATION: Interpolatory quadrature formulas. Newton-Cotes formulas: the trapezoidal method and the simple Simpson's method. Error analysis. Precision degree of a quadrature formula. Conditioning analysis of a definite integral and a quadrature formula. Composite trapezoidal and Simpson’s methods and their error analysis. MATLAB COMPUTING ENVIRONMENT: Definition of scalar variables, vectors, and matrices. Variable types. Colon operator. Subvectors and submatrices. Arithmetic, relational, and logical operators. Main built-in functions. Script-type M-files. Input and output commands for data. Commands for controlling the execution flow. Function-type M-files: input and output parameters. Main 2D graphics commands.
Risultati di apprendimento attesi/Intended learning objectives
Al termine del corso la/lo studentessa/studente dovrà aver acquisito le tecniche di base per lo sviluppo di metodi numerici e lo studio delle loro principali proprietà. La/lo studentessa/studente dovrà essere in grado di saper individuare i metodi più appropriati per la risoluzione di alcuni specifici problemi numerici anche in rapporto all'accuratezza richiesta ed alle risorse di calcolo a disposizione. Dovrà quindi essere in grado di passare dallo sviluppo ed analisi dei metodi alla loro implementazione, al loro utilizzo ed ai relativi test di correttezza ed accuratezza. La/lo studentessa/studente, sulla base dell'analisi dei metodi studiati, dovrà essere in grado di fornire una valutazione di pro e contro di ciascun metodo in modo da effettuare scelte consapevoli nella risoluzione dei problemi. Dovrà inoltre essere in grado di valutare la bontà dei risultati forniti dalle prove numeriche effettuate per mezzo dei codici presentati dal docente in aula o realizzati dalla/o studentessa/studente stessa/o. La/lo studentessa/studente dovrà acquisire la capacità di descrivere, per ciascun problema studiato, la natura del problema stesso, le difficoltà nella sua risoluzione al calcolatore e le modalità con cui tali difficoltà sono affrontate. Dovrà inoltre acquisire la capacità di presentare in maniera efficace i risultati delle proprie esperienze numeriche. Sulla base dei problemi, dei metodi studiati e della loro analisi, la/lo studentessa/studente dovrà acquisire la capacità di elaborare in proprio strategie risolutive da applicare a nuovi problemi.
At the end of the course the student must have acquired the basic techniques for the development of numerical methods and the study of their main properties. The student must be able to identify the most appropriate methods for solving some specific numerical problems also in relation to the required accuracy and the available computing resources. He/she must therefore be able to pass from the development and analysis of the methods to their implementation, their use and the related correctness and accuracy tests. The student, on the basis of the analysis of the methods studied, must be able to provide an evaluation of the pros and cons of each method in order to make informed choices in solving problems. The student must also be able to evaluate the quality of the results provided by the numerical tests carried out by means of the codes presented by the teacher in the classroom or made by the student himself. The student will have to acquire the ability to describe, for each problem studied, the nature of the problem itself, the difficulties in solving it on the computer and the ways in which these difficulties are faced. He/she will also have to acquire the ability to effectively present the results of his/her numerical experiences. On the basis of the problems, the methods studied and their analysis, the student will have to acquire the ability to independently develop solution strategies to be applied to new problems.
×
Stampa
Insegnamento
SUPPORTO ALLE DECISIONI E ALLA GESTIONE DEI PROCESSI
Codice
MF0742
Anno Accademico
2025/2026
Anno regolamento
2023/2024
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
MONTANI Stefania
CFU
3.0
Ore di lezione
24.0
Ore di studio individuale
51.0
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OPZ
Categoria insegnamento
D
Anno
3
Periodo
Annuale
Sede
ALESSANDRIA
Tipo di valutazione
V
Lingua insegnamento/Teaching language
ITALIANO
Italian
Contenuti/Content Summary
Il corso presenterà le principali metodologie e tecniche per sviluppare un sistema di supporto alle decisioni in campo bio-medico. In particolare, il primo modulo si concentrerà su sistemi basati sulla rappresentazione della conoscenza esplicita, mentre il secondo modulo sarà dedicato principalmente ai sistemi basati sulla conoscenza operativa (i dati). Per la parte di Bioinformatica verranno invece esaminate le principali metodologie e tecniche basate su AI e ML per l’analisi di dati relativi a sequenze biologiche, espressione genica, genomica e proteomica.
The course will present the main methodologies and techniques to develop a decision support system in the bio-medical field. In particular, the first module will focus on systems based on the representation of explicit knowledge, while the second module For what regards the Bioinformatics module, the course will take care to present the main methodologies and techniques based on AI and ML for the analysis of data relating to biological sequences, gene expression, genomics and proteomics.
Testi di riferimento/Textbooks
Z. Michalewicz et al., Adaptive Business Intelligence, Springer. Robert Greenes. Clinical Decision Support. The Road to Broad Adoption 2nd Edition – 2014. ISBN: 9780128100240 Hiroshi Mamitsuka: Textbook of Machine Learning and Data Mining: with Bioinformatics Applications. ISBN-13: 978-4991044502 Pierre Baldi & Soren Brunak: Bioinformatics: The Machine Learning Approach, Second Edition.: Mit Press, 2001 Philip Compeau & Pavel Pevzner: Bioinformatics Algorithms. An active Learning Approach. Volumi I e II. Active Learning Publishers. 2018
Z. Michalewicz et al., Adaptive Business Intelligence, Springer. Robert Greenes. Clinical Decision Support. The Road to Broad Adoption 2nd Edition – 2014. ISBN: 9780128100240 Hiroshi Mamitsuka: Textbook of Machine Learning and Data Mining: with Bioinformatics Applications. ISBN-13: 978-4991044502 Pierre Baldi & Soren Brunak: Bioinformatics: The Machine Learning Approach, Second Edition.: Mit Press, 2001 Philip Compeau & Pavel Pevzner: Bioinformatics Algorithms. An active Learning Approach. Volumi I e II. Active Learning Publishers. 2018
Obiettivi formativi/Mission
Occorre aver acquisito le seguenti conoscenze, competenze, ed abilita': principali tipologie di sistemi basati sulla conoscenza per il supporto alle decisioni cliniche, con particolare riferimento alla diagnosi ed al trattamento dei pazienti; principali metodologie e tecniche adottate in tali ambiti; analisi dei fattori abilitanti e delle criticità per l’adozione di tali sistemi nella pratica medica; metodologie e tecniche per rappresentazione e gestione della conoscenza, predizione, ottimizzazione, adattamento; capacità di identificare, interpretare, codificare e processare varie tipologie di dati biologici per applicazioni di apprendimento automatico. Occorre inoltre essere in grado di dimostrare la capacita' di applicarle tali conoscenze nel rispondere a quesiti di teoria, o nello svolgere alcuni esercizi, o nell’illustrare (oralmente) un approfondimento svolto in autonomia.
Students must acquire the following knowledge, competences, and abilities: principal types of knowledge-based systems for supporting clinical decisions, with particular attention to the diagnosis and patient treatment; principal methodologies and techniques adopted in this field; analysis of enabling factors and of critical issues for the adoption of these systems in medical practice; methodologies and techniques for: knowledge representation and management, prediction, optimization, adaptation; ability to identify, interpret, encode and process various types of biological data for machine learning applications. Students must also be able to apply such notions in answering theoretic questions as well as exercises, or in illustrating (orally) an in-depth study carried out independently
Prerequisiti/Required background knowledge
Nozioni di basi di dati
Database fundamentals
Metodi didattici/Teaching methods
Lezione frontale in aula o in laboratorio. Le lezioni frontali contempleranno anche la risposta a quesiti o la risoluzione di esercizi esemplificativi per lo svolgimento dell'esame. Esempi di test d'esame potranno essere forniti. Le slide delle lezioni, i testi consigliati, ed altro materiale saranno forniti anche sulla piattaforma DIR, per consentire anche a chi non frequenta di tenersi al passo con lo svolgimento del corso.
Direct lessons in classroom or in lab. Classroom lessons will also include example questions or exercises useful for the final test. Example tests can also be provided to students. Slides, textbooks indications and additional material will be provided also through the DIR platform. In this way, the students who do not attend will be allowed to easily follow the course progression.
Altre informazioni/Further information
Le studentesse e gli studenti con disabilità o con Disturbi Specifici dell’Apprendimento (DSA) o con Bisogni Educativi Speciali (BES) possono richiedere servizi e strumenti specifici a loro dedicati rivolgendosi allo Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti e consultando la pagina dedicata del sito di Ateneo: https://uniupo.it/it/servizi/servizi-studenti- disabili-e-dsa Le studentesse e gli studenti con disabilità, DSA, BES, una volta preso contatto con lo Staff di Ateneo, possono contattare la/il docente titolare dell'insegnamento in relazione alla declinazione delle modalità di esame, in merito agli aspetti didattici.
Students with physical disabilities, Learning Disabilities or Special Education Needs can request specific services and tools via the Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti, consulting the University webpage: https://www.uniupo.it/en/services/services- students-physical-or-learning-disabilities Students with disabilities, learning disabilities or special education needs, once they have contacted the University Staff, can refer to the tutor in charge of the course to define the examination modalities, concerning academic aspects.
Modalità di verifica dell'apprendimento/Assessment methods
L’esame relativo alla prima parte del corso (approcci basati su rappresentazione esplicita della conoscenza) sarà in forma scritta, e prevederà domande teoriche ed eventuali piccoli esercizi applicativi. Eventualmente (ad esempio, per richiesta dello/a studente/studentessa), la stessa tipologia di esame potra' essere svolta oralmente. L'esame relativo al modulo sulla conoscenza operativa è scritto e prevede un minimo di 3 domande o esercizi, che verteranno su argomenti scelti tra: gestione della conoscenza operativa, predizione, ottimizzazione, adattamento. Il voto terra' conto dei risultati parziali ottenuti nelle singole domande (ad esempio eseguendone una media). La sufficienza corrisponde ad una risposta corretta (ma eventualmente incompleta) a 2 domande. L’eccellenza corrisponde ad una risposta corretta e completa a tutte e 3 le domande. Eventualmente (ad esempio, per richiesta dello/a studente/studentessa), la stessa tipologia di esame potra' essere svolta oralmente. Per la parte di bioinformatica occorre presentare un approfondimento sotto forma di seminario su una tematica inerente agli argomenti trattati.
The examination about the first part of the course (knowledge-based approaches) will be written, and will contain theoretical questions and, possibly, small exercises. Possibly (e.g., on student's request), the same exam type will be executed orally. The test about the operative knowledge module will be written and composed of three questions or exercises at least, focused on different course topics chosen among operative knowledge management, prediction, optimization, adaptation. The final score will take into account the partial scores of the different questions (e.g., calculating the average). A passing grade is achieved by answering at least two questions correctly, even if not completely; an excellent grade is achieved by answering all three questions correctly and completely. Possibly (e.g., on student's request), the same exam type will be executed orally. For the bioinformatics part, the student will have to present an in-depth study in the form of a seminar on a topic related to the topics covered.
Programma esteso/Content
Il modulo dedicato ai sistemi basati su rappresentazione esplicita della conoscenza affronterà le seguenti problematiche: architetture e caratteristiche generali dei CDSS, sorgenti ed acquisizione di conoscenza, regole decisionali, sistemi per la diagnostica, sistemi per la gestione informatizzata di linee guida cliniche, vocabolari ed ontologie, sistemi per la gestione di clinical trial, analisi di fattori critici e fattori abilitanti per l’adozione pratica di CDSS. Nel modulo sulla conoscenza operativa l’esposizione sarà organizzata in quattro parti: 1. gestione della conoscenza operativa: Case-based Reasoning; soluzioni di Case-based Reasoning avanzate (dati in forma di serie temporali, fuzzy CBR, process-oriented CBR); 2. predizione: classificazione, regressione, serie temporali; metodi matematici, basati su distanze, logici, reti neurali; metodi ibridi;3. ottimizzazione: metodi matematici, algoritmi evoluzionistici, ant systems, metodi ibridi; 4. adattamento: tecniche per migliorare le prestazioni del modulo di previsione. Per il modulo di bioinformatica verranno trattati i seguenti argomenti: Introduzione alla biologia cellulare e computazionale. Competenze bioinformatiche essenziali (database, API, framework). Feature Engineering. Data imputation, Dimensionality Reduction, Applicazioni alle metodologie di regressione lineare e logistica a dati biologici. Alberi decisionali, Random Forest ed eXtreme Gradient Boosting per dati biologici. Utilizzo di Hidden Markov Models per l’identificazione di geni codificanti per proteine. Esempi di approcci basati su Deep Learning all’analisi di dati biologici.
The module dedicated to knowlege-based CDSS will face the following aspects: CDSS architectures and generalities, knowledge sources and knowledge acquisition, decision rules, diagnostic systems, computer-interpretable guideline systems, ontologies and vocabularies, systems for the management of clinical trials, analysis of critical and enabling factors for the practical applicability of CDSS. The operative knowledge module will be organised in four parts: 1. operative knowledge management: Case-based Reasoning; advanced Case-based Reasoning solutions (time series data, fuzzy CBR, process-oriented CBR); 2. prediction: classification, regression, time series; mathematical models, distance-based models, logic models, neural networks; hybrid methods; 3. optimisation: mathematical methods, evolutionary algorithms, ant systems, hybrid methods; 4. adaptation: techniques to improve the prediction module performances. For the bioinformatics module the following topics will be covered: Introduction to cellular and computational biology. Essential bioinformatics skills (databases, APIs, frameworks). Feature Engineering. Data imputation, Dimensionality Reduction, Applications to linear and logistic regression methodologies to biological data. Decision Trees, Random Forest, and eXtreme Gradient Boosting for biological data. Use of Hidden Markov Models for the identification of protein coding genes. Examples of Deep Learning-based approaches to analyzing biological data.
Risultati di apprendimento attesi/Intended learning objectives
Conoscenza e capacità di comprensione: Occorre dimostrare di aver acquisito:i concetti di base relativi alle principali tipologie di sistemi basati sulla conoscenza per il supporto alle decisioni cliniche, per la diagnosi e\o il trattamento dei pazienti, metodologie e tecniche adottate in tali ambiti; Analisi dei fattori abilitanti e delle criticità per l’adozione di tali sistemi nella pratica medica; i concetti di base per la gestione della conoscenza, la predizione, l’ottimizzazione e l’adattamento; le conoscenze necessarie per comprendere e interpretare le varie problematiche e le varie tipologie di dati biologici presentati durante il corso. Occorre essere inoltre in grado di dimostrare di aver compreso ed acquisito i principi di funzionamento delle varie metodologie e tecniche presentate. Capacità di applicare conoscenza e comprensione: Occorre aver acquisito la capacità di valutare l’adeguatezza delle tecniche e metodologie sviluppate nel corso per il trattamento di case studies reali, e di applicarle su case studies. Occorre dimostrare di saper criticamente individuare il migliore approccio di analisi, sulla base dei relativi pregi e difetti, da applicare alla tipologia di dato biologico da analizzare. Autonomia di giudizio: capacità di lavorare in maniera autonoma, anche in situazioni complesse o a fronte di informazioni incomplete. Abilità comunicative: capacità di descrivere in modo chiaro le metodologie e tecniche studiate, e le loro applicazioni, sia ad utenti esperti sia ad utenti non tecnici; saper giustificare le scelte progettuali o implementative fatte comunicandole in modo chiaro anche a utenti meno esperti e non tecnici; capacità di descrivere in modo chiaro i principi di funzionamento delle metodologie studiate, i possibili vantaggi e svantaggi e la loro applicabilità a problemi reali a diverse tipologie di audience con diversi livelli di esperienza. Capacita' di apprendere: occorre aver sviluppato adeguate conoscenze delle metodologie di base e la capacità di analizzare le caratteristiche principali dei sistemi di supporto alla decisione clinica e delle metodologie proposte per analisi di dati biologici per poter in futuro apprendere, valutare e\o sviluppare nuovi sistemi; aver sviluppato la capacità di descrivere e saper scegliere le più opportune tecniche per la realizzazione di un sistema di supporto alle decisioni in ambito bio-medico; aver acquisito i principi di funzionamento delle metodologie analizzate al fine di proporne modifiche e adattamenti per migliorare l’applicabilità al caso specifico. Individuare e valutare criticamente le informazioni scientifiche provenienti dalle pubblicazioni in questo campo.
Knowledge and understanding: The student must have acquired: the notion relating to the main types of knowledge-based systems for supporting clinical decisions, for the diagnosis and/or patients treatment, to the methodologies and techniques adopted in these fields. Analysis of enabling factors and critical issues for the adoption of these systems in medical practice; the notions of: knowledge management, prediction, optimisation, adaptation; the knowledge to understand and interpret the various problems and the various types of biological data presented during the course. They must also be able to demonstrate the understanding and the acquisition of the operating principles of the various methodologies and techniques presented. Ability to apply knowledge and understanding: The student must have acquired the ability to evaluate the suitability of the techniques and methodologies developed in the course for the management of real-world case studies. Students must demonstrate the ability to critically identify the best analysis approach, based on the relative strengths and weaknesses, to be applied to different types of biological data. Judgement autonomy: ability to work in an autonomous way, and deal with complex situations or with incomplete information Communication abilities: ability to clearly describe the methodologies and techniques studied, and their applications, to both expert and non-technical users; ability to justify design or implementation choices and clearly communicate them also to a non-expert audience; ability to clearly describe the operating principles of the studied methodologies, the possible advantages and disadvantages and their applicability to real problems to different types of audiences with different levels of experience. Learning capability: Students must have developed adequate knowledge of basic methodologies and the ability to analyze the main characteristics of clinical decision support systems and of the proposed methodologies for the analysis of biological data, to be able to learn, evaluate and/or develop new systems. Students must be able to describe and properly choose the correct techniques to realize an healthcare decision support system. Students must have acquired the operating principles of the methodologies analyzed to propose changes and adaptations for improving their applicability to the specific case. Identify and critically evaluate scientific information from publications in this field
×
Stampa
Insegnamento
ETICA DIGITALE
Codice
MF0741
Anno Accademico
2025/2026
Anno regolamento
2023/2024
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
BENZI MARGHERITA
CFU
3.0
Ore di lezione
24.0
Ore di studio individuale
51.0
Settore Scientifico Disciplinare (SSD)
M-FIL/02 - LOGICA E FILOSOFIA DELLA SCIENZA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OPZ
Categoria insegnamento
D
Anno
3
Periodo
Primo Semestre
Sede
ALESSANDRIA
Tipo di valutazione
V
Lingua insegnamento/Teaching language
ITALIANO
Italian
Contenuti/Content Summary
Il corso verterà su alcuni dei principali problemi etici legati alla trasformazione digitale e alla diffusione dell'Intelligenza artificiale, e sulle possibilità di affrontare tali problemi con gli strumenti teorici dell'etica contemporanea. Tra i temi affrontati vi saranno il modo in cui la digitalizzazione modifica la percezione che abbiamo di noi stessi, le relazioni sociali, il possesso delle informazioni che ci riguardano e l’ambiente, sia virtuale che reale. Discuteremo inoltre quali decisioni possiamo affidare ad agenti artificiali e analizzeremo alcuni casi esemplari di conflitto tra principi etici.Verranno anche esaminati casi reali e si metterà in luce la relazione tra diversi orientamenti etici e la produzione di leggi, atti regolativi e codici deontologici in ambito digitale.
The course will focus on some of the main ethical issues related to digital transformation and the spread of artificial intelligence, exploring the potential of contemporary ethical theory to address these issues. Topics will include the ways in which digitisation changes our perception of ourselves, our social relationships, our ownership of information and our virtual and real environments. We will also discuss which decisions can be entrusted to artificial agents, analysing some exemplary cases of conflict between ethical principles. Real-life examples will be examined, and the relationship between different ethical perspectives and the creation of laws, regulatory acts, and codes of ethics in the digital sphere will be explored.
Testi di riferimento/Textbooks
Fabio Fossa, Viola Schiaffonati e Guglielmo Tamburrini (a cura di), Automi e persone. Introduzione all'etica dell'intelligenza artificiale e della robotica. Carocci 2021, cinque capitoli a scelta.Luciano Floridi, Etica dell'intelligenza artificiale: sviluppi, opportunità, sfide, Raffaello Cortina 2023, 2 capitoli scelti tra i seguenti:4, 5, 6, 7, 8, 9. Slides e altre letture inserite dalla docente su DIR durante il corso.
Fabio Fossa, Viola Schiaffonati and Guglielmo Tamburrini (eds.), Automi e persone. Introduzione all'etica dell'intelligenza artificiale e della robotica. Carocci 2021, five chapters of your choice . Luciano Floridi, Etica dell'intelligenza artificiale: sviluppi, opportunità, sfide, Raffaello Cortina 2023 (Also English edition: The Ethics of Artificial Intelligence, 2022), two chapters chosen from the following: 4, 5, 6, 7, 8,9. PPT presntations and other readings posted by the teacher on DIR during the course.
Obiettivi formativi/Mission
- Introduzione all’etica digitale e ai suoi fondamenti concettuali - Analisi delle principali teorie etiche e dei loro applicazioni nel contesto digitale - Sviluppo di capacità di argomentazione etica basata su una solida comprensione dei principi etici e delle loro applicazioni nel mondo digitale - Promozione dell'auto-riflessione e della consapevolezza critica sull'impatto etico delle proprie azioni digitali
- Introduction to digital ethics and its conceptual foundations - Analysis of the main ethical theories and their applications in the digital context - Development of ethical argumentation skills based on a sound understanding of ethical principles and their applications in the digital world - Promotion of self-reflection and critical awareness of the ethical impact of one's digital actio
Prerequisiti/Required background knowledge
Nessuno
None
Metodi didattici/Teaching methods
Lezioni frontali, discussioni in classe, uso di strumenti audiovisivi. Nelle lezioni in aula saranno introdotti i concetti fondamentali e i problemi oggetto delle letture in programma. Saranno inoltre presentati e sottoposti a discussione case studies che esemplificano le tematiche affrontate. Sul DIR saranno pubblicati test facoltativi di autovalutazione che saranno discussi durante la lezione.
Lectures, class discussions, use of audiovisual tools. Classroom sessions will introduce the fundamental concepts and issues covered in the assigned readings. Case studies illustrative of the topics addressed will also be presented and discussed. Self-assessment tests will be published on the DIR to be discussed in class.
Altre informazioni/Further information
Le studentesse egli studenti sono invitati a seguire gli aggiornamenti della pagina del corso pubblicata su DIR per il materiale integrativo e di supporto alle lezioni nonché per il programma dettagliato. Le studentesse e gli studenti con disabilità o con disturbi specifici dell’apprendimento (DSA) o con bisogni educativi speciali (BES) possono richiedere servizi e strumenti specifici a loro dedicati rivolgendosi allo Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti e consultando la pagina dedicata del sito di Ateneo: https://uniupo.it/it/servizi/servizi-studenti-disabili-e-dsa Le studentesse e gli studenti con disabilità, DSA, BES, una volta preso contatto con lo Staff di Ateneo, possono contattare la/il docente titolare dell'insegnamento in relazione alla declinazione delle modalità di esame, in merito agli aspetti didattici.
Students are strongly recommended to follow the course page updates posted on DIR for supplementary and supporting lecture material as well as the detailed syllabus. Students with physical disabilities, Learning Disabilities or Special Education Needs can request specific services and tools via the Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti, consulting the University webpage: https://www.uniupo.it/en/services/services- students-physical-or-learning-disabilities Students with disabilities, learning disabilities or special education needs, once they have contacted the University Staff, can refer to the tutor in charge of the course to define the examination modalities, concerning academic aspects.
Modalità di verifica dell'apprendimento/Assessment methods
Esame Orale. L'esame consisterà in quattro domande sugli argomenti del corso, oppure, per chi lo desidera, in tre domande e la presentazione in classe di un seminario di approfondimento su uno degli argomenti trattati nel corso. Per ottenere la sufficienza occorre mostrare, rispondendo ad almeno tre domande, o a due domande e con la presentazione, di aere compreso almeno i concetti e i problemi fondamentali della materia.
Oral Examination. The examination will consist of four questions on the course topics or, for those who wish, three questions and the presentation of a seminar on one of the topics covered. Students will receive a passing grade if they demonstrate, by answering at least three questions or two questions plus the presentation, that they have grasped at least the fundamental concepts and issues of the subject.
Programma esteso/Content
1. Etica digitale: che cosa è e perché è importante. Gli strumenti dell'etica contemporanea per i problemi della società digitali. Esempio di dilemma morale e due tipi di soluzione. Dal 'problema del vagone ferroviario' ai veicoli a guida autonoma. 2. Noi e i nostri dati: identità dell'individuo (dati informativi e dati biometrici); nudge, deep nudge e autonomia decisionale. 3. L'ambiente: a) l'ambiente digitale: come i large language models inquinano il web;b) l'ambientel fisico: la sostenibilità dei big data; i limiti dello scaling. 4. Noi e gli altri nell'infosfera: hate speech e polarizzazione; socialità e affettività nell'infosfera; luci ed ombre della 'gamificazione'. 5. La società: il capitalismo della sorveglianza; stereotipi e pregiudizi; la crescita delle disuguaglianze; artefatti e responsabilità. 6. La conoscenza: Large Language Models e post-verità; bias cognitivi e bias algoritmici. 7. Dall'etica alle norme: il dibattito sulla regolamentazione; leggi, regolamenti e codici deontologici; i diversi approcci di EU, USA, CINA. Cenni sul GDPR e sull'AI-ACT europeo. NOTA:Integrazione della dimensione di genere: nella parte dedicata ai bias algoritmici saranno illustrati casi di discriminazione basata sul genere.
1. Digital ethics: what it is and why it matters. The tools of contemporary ethics for the problems of digital society. Example of a moral dilemma and two types of solution. From the “train car problem” to self-driving vehicles. 2. Us and our data: identity of the individual (information data and biometric data); nudges, deep nudges and autonomous decision-making. 3. The environment: a) the digital environment: how large language models pollute the web; b) the physical environment: the sustainability of big data; the limits of scaling. 4. Us and others in the infosphere: hate speech and polarisation; sociality and affectivity in the infosphere; lights and shadows of “gamification”. 5. Society: surveillance capitalism; stereotypes and prejudice; the growth of inequality; artefacts and responsibility. 6. Knowledge: Large Language Models and post-truth; cognitive biases and algorithmic biases. 7. From ethics to standards: the regulatory debate; laws, regulations and codes of ethics; the different approaches of EU, US, CHINA. Hints on GDPR and European AI-ACT. NOTE: Gender mainstreaming: cases of gender-based discrimination will be illustrated in the part on algorithmic bias.
Risultati di apprendimento attesi/Intended learning objectives
1. Conoscenza e comprensione: • Introduzione all'etica digitale e ai suoi fondamenti concettuali. • Studio delle implicazioni etiche dei progressi tecnologici digitali. • Analisi delle principali teorie etiche e delle loro applicazioni nel contesto digitale. • Esame delle questioni legate alla privacy, all’accessibilità digitale e all'equità nell'era digitale. 2. Applicazione della conoscenza e comprensione: • Studio dei casi concreti riguardanti dilemmi etici nel contesto digitale. • Analisi e discussione di scenari etici derivanti dall'uso di tecnologie digitali in settori specifici. • Sviluppo di capacità critiche per valutare e risolvere problemi etici in ambito digitale. 3. Giudizio autonomo: • Approfondimento delle competenze etiche per prendere decisioni informate e responsabili in contesti digitali complessi. • Valutazione critica delle politiche, delle leggi e delle norme etiche esistenti nell'ambito digitale. • Sviluppo di capacità di argomentazione etica basata su una solida comprensione dei principi etici e delle loro applicazioni nel mondo digitale. 4. Abilità comunicative: • Sviluppo di competenze di comunicazione efficace nella presentazione e nella discussione di questioni etiche legate al mondo digitale. • Pratica della scrittura accurata e persuasiva di testi che affrontano dilemmi etici nel contesto digitale. • Utilizzo di mezzi di comunicazione digitali per promuovere il dibattito e la consapevolezza sull’etica digitale. 5. Capacità di apprendimento: • Sviluppo di una mentalità di apprendimento continuo per rimanere aggiornati sulle questioni etiche emergenti nel contesto digitale. • Promozione dell'auto-riflessione e della consapevolezza critica sull'impatto etico delle proprie azioni digitali. • Capacità di adattarsi e rispondere ai cambiamenti etici che derivano dalle innovazioni tecnologiche nel mondo digitale.
1. Knowledge and understanding: - Introduction to digital ethics and its conceptual foundations. - Study of the ethical implications of digital technological advances. - Analysis of the main ethical theories and their applications in the digital context. - Examination of issues of privacy, digital accessibility and fairness in the digital age. 2. Application of knowledge and understanding: - Case study regarding ethical dilemmas in the digital context. - Analysis and discussion of ethical scenarios arising from the use of digital technologies in specific sectors. - Development of critical skills to evaluate and solve ethical problems in the digital environment. 3. Autonomous judgement: - Deepening ethical skills to make informed and responsible decisions in complex digital contexts. - Critical evaluation of existing ethical policies, laws and rules in the digital environment. - Development of ethical argumentation skills based on a sound understanding of ethical principles and their applications in the digital world. 4. Communication skills: - Development of effective communication skills in presenting and discussing ethical issues related to the digital world. - Practice in accurate and persuasive writing of documents addressing ethical dilemmas in the digital context. - Use of digital media to promote debate and awareness on digital ethics. 5. Learning skills: - Development of a continuous learning mindset to stay abreast of emerging ethical issues in the digital context. - Promotion of self-reflection and critical awareness of the ethical impact of one's digital actions. - Ability to adapt and respond to ethical changes resulting from technological innovations in the digital world.
×
Stampa
Insegnamento
PROGRAMMAZIONE DI APPLICAZIONI INTELLIGENTI
Codice
MF0781
Anno Accademico
2025/2026
Anno regolamento
2023/2024
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
MANTOVANI DANIELE
CFU
6.0
Ore di lezione
48.0
Ore di studio individuale
102.0
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OPZ
Categoria insegnamento
D
Anno
3
Periodo
Secondo Semestre
Sede
VERCELLI
Tipo di valutazione
V
Lingua insegnamento/Teaching language
Italiano
Italian
Contenuti/Content Summary
Il contenuto traccia l'evoluzione dell'intelligenza artificiale, con un forte focus sugli LLM e le loro applicazioni pratiche. Copre brevemente i tipi di apprendimento automatico e le reti neurali, per poi approfondire tecniche avanzate degli LLM, come tokenization, embeddings e transformers, prompt engineering, agenti. Si pone particolare enfasi sulle applicazioni pratiche degli LLM, in particolare in due ambiti: - utilizzo come assistenti alla scrittura di applicazioni - infusione di intelligenza in applicazioni.
The content traces the evolution of artificial intelligence, with a strong focus on LLMs and their practical applications. It briefly covers machine learning and neural network types and then delves into advanced LLM techniques, such as tokenization, embeddings, transformers, prompts engineering, and agents. Particular emphasis is placed on the practical applications of LLMs, in particular in two areas: - I use them as application writing assistants - infusion of intelligence into applications.
Testi di riferimento/Textbooks
"Hands-On Large Language Models" by Jay Alammar, Maarten Grootendorst - O’Reilly Media, 2024 "Build a Large Language Model (From Scratch)" by Sebastian Raschka - Manning, 2024 "Super Study Guide: Transformers & Large Language Models" by Afshine Amidi / Shervine Amidi - 2024
"Hands-On Large Language Models" by Jay Alammar, Maarten Grootendorst - O’Reilly Media, 2024 "Build a Large Language Model (From Scratch)" by Sebastian Raschka - Manning, 2024 "Super Study Guide: Transformers & Large Language Models" by Afshine Amidi / Shervine Amidi - 2024
Obiettivi formativi/Mission
Sviluppare competenze nella progettazione e implementazione di applicazioni basate su AI, con particolare focus sui LLMs e le loro architetture. Acquisire la capacità di valutare criticamente le prestazioni e i limiti dei modelli AI, distinguendo tra diverse soluzioni di deployment. Approfondire strumenti e tecniche avanzate per l’ottimizzazione e l’integrazione degli LLMs nelle applicazioni, come Prompt Engineering, Retrieval Augmented Generation, Workflow e Agenti.
Develop skills in designing and implementing AI-based applications, with a particular focus on LLMs and their architectures. Acquire the ability to critically evaluate the performance and limitations of AI models, distinguishing between different deployment solutions. Explore advanced tools and techniques for optimizing and integrating LLMs into applications, such as Prompt Engineering, Retrieval Augmented Generation, Workflows, and Agents.
Prerequisiti/Required background knowledge
Conoscenze base del linguaggio di programmazione Python. Conoscenze base di algebra lineare.
Basic knowledge of the Python programming language. Basic knowledge of linear algebra.
Metodi didattici/Teaching methods
Il corso è articolato in circa 36h di didattica erogativa e 12h di didattica interattiva da svolgere in laboratorio.
The course is divided into approximately 36 hours of didactic teaching and 12 hours of interactive teaching to be carried out in the laboratory.
Altre informazioni/Further information
Le studentesse e gli studenti con disabilità o con Disturbi Specifici dell’Apprendimento (DSA) o con Bisogni Educativi Speciali (BES) possono richiedere servizi e strumenti specifici a loro dedicati, rivolgendosi allo "Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti" e consultando la pagina dedicata del sito di Ateneo: https://uniupo.it/it/servizi/servizi-studenti-disabili-e-dsa. Le studentesse e gli studenti con disabilità, DSA, BES, una volta preso contatto con lo Staff di Ateneo, possono contattare la/il docente titolare dell'insegnamento in relazione alla declinazione delle modalità di esame, in merito agli aspetti didattici.
Students with physical disabilities, Learning Disabilities or Special Education Needs can request specific services and tools via the "Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti", consulting the University webpage: https://www.uniupo.it/en/services/services-students-physical-or-learning-disabilities. Students with disabilities, learning disabilities or special education needs, once they have contacted the University Staff, can refer to the tutor in charge of the course to define the examination modalities, concerning academic aspects.
Modalità di verifica dell'apprendimento/Assessment methods
L’esame del corso sugli LLM si articola in due parti: - Progetto pratico (2/3 del voto finale), svolto singolarmente o in gruppo (massimo 3 persone). - Prova scritta (1/3 del voto finale), da sostenere individualmente. La consegna e discussione del progetto è condizione necessaria per poter accedere allo scritto. Per superare l’esame, sia il progetto sia lo scritto devono ottenere almeno 18/30. Conoscenza e comprensione - La prova scritta verifica la comprensione teorica e metodologica dei Large Language Models, inclusi principi architetturali, tecniche di addestramento, strumenti e metodi di applicazione. - Il docente accerta la conoscenza dei fondamenti alla base del progetto durante la fase di consegna/discussione. - La relazione del progetto deve documentare in modo chiaro le scelte architetturali, gli strumenti impiegati, le tecniche utilizzate e i principi progettuali adottati. Capacità di applicare conoscenza e comprensione - Il progetto valuta la capacità di applicare tecniche di AI e LLM per risolvere casi concreti, garantendo funzionalità, correttezza dei risultati e assenza di bug nei casi d’uso comuni. - Gli studenti possono proporre liberamente un progetto, previa approvazione del docente, incentivando creatività e autonomia progettuale. - La consegna e discussione del progetto permette di verificare l’effettivo funzionamento del sistema sviluppato e la padronanza degli strumenti utilizzati. Abilità comunicative - La relazione del progetto richiede la capacità di presentare in modo chiaro obiettivi, scelte, risultati e limiti del lavoro svolto, con adeguato linguaggio tecnico. - La fase di discussione durante la consegna del progetto accerta la capacità di illustrare il funzionamento del sistema, le scelte implementative e le motivazioni. - Lo scritto include domande che richiedono comprensione e capacità di sintetizzare concetti, alcune eventualmente a risposta aperta breve. Autonomia di giudizio - Gli studenti devono dimostrare autonomia e consapevolezza nelle scelte progettuali, illustrandone e motivandone gli aspetti chiave nella relazione e nella discussione. - La possibilità di definire un proprio progetto stimola pensiero critico e autonomia decisionale. - Lo scritto verifica la capacità di riconoscere, confrontare e valutare tecniche e metodologie presentate nel corso. Capacità di apprendimento - La prova scritta accerta la capacità dello studente di apprendere, integrare e rielaborare autonomamente i contenuti del corso. - Il progetto consolida e amplia le competenze tramite l’applicazione pratica a un problema reale e la gestione end-to-end di un sistema basato su LLM. - La lode richiede il punteggio massimo sia nel progetto sia nella prova scritta, oltre a un livello eccellente nella qualità della relazione e del sistema sviluppato.
The exam of the course on LLMs consists of two parts: - Practical project (2/3 of the final grade), carried out individually or in groups (maximum 3 people). - Written exam (1/3 of the final grade), taken individually. The submission and discussion of the project is required to access the written exam. To pass the exam, both parts must achieve at least 18/30. Knowledge and understanding - The written exam verifies theoretical and methodological understanding of LLMs, including architectures, training techniques, tools, and applications. - During submission/discussion, the instructor assesses knowledge of the concepts underlying the project. - The project report must clearly document architectural choices, tools, techniques, and design principles. Applying knowledge and understanding - The project evaluates the ability to apply AI and LLM techniques to solve concrete cases, ensuring functionality and correctness of results. - Students may propose their own project, subject to instructor approval, encouraging creativity and autonomy. - The submission and discussion verify the actual functioning of the system and mastery of the tools used. Communication skills - The project report must clearly present objectives, choices, results, and limitations using appropriate technical language. - The discussion verifies the ability to explain system functioning and implementation choices. - The written exam includes questions requiring understanding and concept synthesis, possibly with short open-ended items. Autonomy of judgment - Students must show autonomy and awareness in project decisions, justifying key aspects in the report and discussion. - The possibility of a self-proposed project promotes critical thinking and independent decision-making. - The written exam verifies the ability to recognize and evaluate techniques and methodologies covered in the course. Learning skills - The written exam assesses the ability to learn, integrate, and autonomously re-elaborate the course content. - The project strengthens skills through practical application and end-to-end development of an LLM-based system. - Honors require the maximum score in both parts and excellent quality in the report and the developed system.
Programma esteso/Content
Breve storia dell’intelligenza artificiale dall’origine ai giorni nostri Introduzione al Machine Learning - Apprendimento supervisionato - Apprendimento non supervisionato - Apprendimento per rinforzo Introduzione alle Reti Neurali - Reti feedforward - Apprendimento (Backpropagation) - Generalizzazione / Overfitting - Teorema di Approssimazione Universale - Introduzione a PyTorch: implementazione a apprendimento di una semplice rete neurale Large Language Models - Trasformazione di testo in vettori di numeri (Tokenization / Embeddings) - Introduzione all'architettura Transformers - Caratteristiche, capacità e limiti dei Large Language Models - Ciclo di vita di un Large Language Model - Prompt Engineering Programmazione assistita da AI Retrieval Augmented Generation (RAG) Agenti
Brief history of artificial intelligence from its origins to the present day Introduction to Machine Learning - Supervised learning - Unsupervised learning - Reinforcement learning Introduction to Neural Networks - Feedforward networks - Learning (Backpropagation) - Generalization / Overfitting - Universal Approximation Theorem - Introduction to PyTorch: implementation and training of a simple neural network Large Language Models - Transforming text into numerical vectors (Tokenization / Embeddings) - Introduction to the Transformers architecture - Characteristics, capabilities and limitations of Large Language Models - Life cycle of a Large Language Model - Prompt Engineering AI-assisted programming Retrieval Augmented Generation (RAG) Agents
Risultati di apprendimento attesi/Intended learning objectives
Conoscenza e comprensione: gli studenti acquisiranno una solida conoscenza delle metodologie e delle architetture alla base delle applicazioni basate su AI, con particolare attenzione ai LLMs e alle loro implicazioni pratiche. Capacità di applicare conoscenza e comprensione: gli studenti saranno in grado di sviluppare e implementare soluzioni AI di media complessità, integrando modelli pre-addestrati in applicazioni reali. Saranno capaci di applicare tecniche di ottimizzazione, come il Prompt Engineering e la Retrieval Augmented Generation, per migliorare l’efficacia dei modelli. Abilità comunicative: gli studenti svilupperanno la capacità di documentare e presentare il proprio lavoro in modo chiaro e strutturato, utilizzando un lessico tecnico appropriato. Autonomia di giudizio: gli studenti acquisiranno la capacità di valutare in maniera critica l’efficacia di diversi modelli AI, individuandone i punti di forza e di debolezza. Saranno in grado di scegliere il modello più adatto a un determinato contesto applicativo, considerando aspetti tecnici, etici ed economici. Capacità di apprendimento: gli studenti svilupperanno un approccio autonomo nell’aggiornamento delle proprie competenze, sapendo identificare le risorse più appropriate per approfondire tematiche emergenti nell’ambito dell’AI e dei LLMs.
Knowledge and Understanding: Students will acquire a solid understanding of the methodologies and architectures underlying AI-based applications, with a particular focus on LLMs and their practical implications. Ability to Apply Knowledge and Understanding: Students will be able to develop and implement medium-complexity AI solutions, integrating pre-trained models into real-world applications. They will be capable of applying optimization techniques, such as Prompt Engineering and Retrieval Augmented Generation, to enhance model effectiveness. Communication Skills: Students will develop the ability to document and present their work in a clear and structured manner, using appropriate technical terminology. Independent Judgment: Students will acquire the ability to critically assess the effectiveness of different AI models, identifying their strengths and weaknesses. They will be able to select the most suitable model for a given application context, considering technical, ethical, and economic aspects. Learning Skills: Students will develop an autonomous approach to updating their skills, knowing how to identify the most appropriate resources to explore emerging topics in AI and LLMs.
×
Stampa
Insegnamento
APPLICAZIONI MOBILI
Codice
MF0739
Anno Accademico
2025/2026
Anno regolamento
2023/2024
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
CANONICO Massimo
CFU
6.0
Ore di lezione
48.0
Ore di studio individuale
102.0
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OPZ
Categoria insegnamento
D
Anno
3
Periodo
Primo Semestre
Sede
ALESSANDRIA
Tipo di valutazione
V
Lingua insegnamento/Teaching language
ITALIANO
Italian
Contenuti/Content Summary
Durante il corso lo/la studente/studentessa avrà modo di conoscere e sperimentare tutti i principali layout e widget che il sistema operativo Android oltre che sfruttare i servizi cloud. Nella parte finale del corso, verrà introdotto il sistema operativo iOS attraverso lo sviluppo di semplici app.
During the course the student will have the opportunity to learn about and experiment with all the main layouts and widgets of the Android operating system as well as taking advantage of cloud services. In the final part of the course, the iOS operating system will be introduced through the development of simple apps.
Testi di riferimento/Textbooks
Android and iOS sono sistemi operativi ancora molto in evoluzione, quindi oltre alle slide del corso, il docente fornirà link alla documentazione ufficiale online.
The Android and iOS Operating system are still evolving very fast, so besides the slides of the course, the lecturer will provide to the students web links to the official online documentation.
Obiettivi formativi/Mission
Il corso si prefigge di fornire allo/alla studente/studentessa nozioni sia teoriche che sperimentali di come si progetta e sviluppa una applicazione per i dispositivi mobili.
The course focuses on theoretic and practical aspects concerning the development of mobile applications.
Prerequisiti/Required background knowledge
Conoscenze acquisite dai corsi di algoritmi.
Knowledge acquired from algorithm courses.
Metodi didattici/Teaching methods
Lezioni frontali e sperimentazione in laboratorio che possono essere erogate in modalità in presenza.
Lectures and laboratory sessions that can be held in classroom.
Altre informazioni/Further information
Durante il corso vengono svolti esercizi che riguardano l'implementazione di semplici app. Le studentesse e gli studenti con disabilità o con Disturbi Specifici dell’Apprendimento (DSA) o con Bisogni Educativi Speciali (BES) possono richiedere servizi e strumenti specifici a loro dedicati rivolgendosi allo Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti e consultando la pagina dedicata del sito di Ateneo: https://uniupo.it/it/servizi/servizi-studenti- disabili-e-dsa Le studentesse e gli studenti con disabilità, DSA, BES, una volta preso contatto con lo Staff di Ateneo, possono contattare la/il docente titolare dell'insegnamento in relazione alla declinazione delle modalità di esame, in merito agli aspetti didattici.
During the course, the students have to implement simple mobile apps. Students with physical disabilities, Learning Disabilities or Special Education Needs can request specific services and tools via the Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti, consulting the University webpage: https://www.uniupo.it/en/services/services- students-physical-or-learning-disabilities Students with disabilities, learning disabilities or special education needs, once they have contacted the University Staff, can refer to the tutor in charge of the course to define the examination modalities, concerning academic aspects.
Modalità di verifica dell'apprendimento/Assessment methods
Consegna di un progetto Android e di un progetto iOS.
Delivery of an Android and an iOS projects.
Programma esteso/Content
0- Informazioni generali sul corso 1- Il linguaggio Kotlin 2- Concetti base 3- Piattaforma Android 4- Emulatore Android 5- XML-based Layout 6- Widget di base 7- Lavorare con i container 8- Metodi di input: Framework 9- Messaggi Pop-up 10- Gestione delle Thread 11- Ciclo di vita di una app 12- Creazione di Intent filter 13- Gestione schermi 14 -Menus & Preferences 15 - Accessing Files 16 -Notification 17 - Maps 18 - Firebase services 19 - Manage picture 20 - iOS first apps
0- About the course 1- The Kotlin programming language 2- How to get started 3- Android platform 4- Android emulator 5- Using XML-based layout 6- Basic widgets 7- Working with containers 8- Input Method Framework 9- Pop-up messages 10- Dealing with Threads 11- Handling activity lifecycle 12- Creating Intent filter 13- Handling Multiple Screen Sizes 14 -Menus & Preferences 15 - Accessing Files 16 -Notification 17 - Maps 18 - Firebase services 19 - Manage picture 20 - iOS first apps
Risultati di apprendimento attesi/Intended learning objectives
Imparare a creare applicazioni mobili utilizzando vari widget e servizi cloud.
Students will learn how to create mobile applications by exploiting various widgets and cloud services.
×
Stampa
Insegnamento
LOGICA AVANZATA
Codice
MF0836
Anno Accademico
2025/2026
Anno regolamento
2023/2024
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
LAGUZZI Giorgio
Docenti
CFU
3.0
Ore di lezione
24.0
Ore di studio individuale
51.0
Settore Scientifico Disciplinare (SSD)
MAT/01 - LOGICA MATEMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OPZ
Categoria insegnamento
D
Anno
3
Periodo
Secondo Semestre
Sede
ALESSANDRIA
Tipo di valutazione
V
Lingua insegnamento/Teaching language
ITALIANO
Italian
Contenuti/Content Summary
Aritmetica di Peano. Teorema di incompletezza di Goedel. Indefinibilità della verità di Tarski. Modelli non-standard. Analisi e risoluzione di alcuni: paradosso di Russel, Burali-Forti, Richard. Metodo della risoluzione.
Peano Arithmetic. Goedel's incompleteness theorem. Tarski's undefinibility of truth. Non-standard models. Analusis and resolutions of some logical paradoxa: Russel, Burali-Forti, Richard. Resolutions mothod.
Testi di riferimento/Textbooks
Gabriele Lolli, "Introduzione alla logica formale", editore: Il Mulino.
Gabriele Lolli, "Introduzione alla logica formale", editore: Il Mulino.
Obiettivi formativi/Mission
Consolidare i metodi acquisiti nel corso di base di Logica matematica e accrescere le conoscenze e gli strumenti per la comprensione e gestione dei sistemi formali, indagandone anche i limiti.
Consolidate the methods acquired in the first year basic course in Mathematical Logic and increase knowledge and tools for understanding and managing formal systems, also investigating their intrinsic limitations.
Prerequisiti/Required background knowledge
Logica matematica (3 CFU. corso base del primo anno)
Mathematical Logic (3 CFU, basic course, fisrt semester)
Metodi didattici/Teaching methods
Lezioni con slide
Lectures
Altre informazioni/Further information
Nessuna
None
Modalità di verifica dell'apprendimento/Assessment methods
Esame scritto o orale
Written or oral exams
Programma esteso/Content
Aritmetica di Peano. Teorema di incompletezza di Goedel. Indefinibilità della verità di Tarski. Modelli non-standard. Analisi e risoluzione di alcuni: paradosso di Russel, Burali-Forti, Richard. Metodo della risoluzione.
Peano Arithmetic. Goedel's incompleteness theorem. Tarski's undefinibility of truth. Non-standard models. Analusis and resolutions of some logical paradoxa: Russel, Burali-Forti, Richard. Resolutions mothod.
Risultati di apprendimento attesi/Intended learning objectives
Aver appreso ulteriori strumenti per la comprensione dei sistemi formali utili sia da un punto di vista teorico sia alla programmazione logica
Learn further tools for understanding formal systems both from a theoretical point of view and for logic programming
×
Stampa
Insegnamento
QUANTUM COMPUTING
Codice
MF0875
Anno Accademico
2025/2026
Anno regolamento
2023/2024
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
GRASSI PIETRO
Docenti
CFU
3.0
Ore di lezione
24.0
Ore di studio individuale
51.0
Settore Scientifico Disciplinare (SSD)
FIS/02 - FISICA TEORICA, MODELLI E METODI MATEMATICI
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OPZ
Categoria insegnamento
D
Anno
3
Periodo
Secondo Semestre
Sede
VERCELLI
Tipo di valutazione
V
Lingua insegnamento/Teaching language
INGLESE
ENGLISH
Contenuti/Content Summary
Viene data una introduzione alle nozioni teoriche e alle tecniche sperimentali della computazione quantistica.
The course provides an introduction to the theoretical ground and experimental techniques in quantum computation.
Testi di riferimento/Textbooks
M.A. Nielsen, I.L. Chuang, "Quantum computation and quantum information", CUP (2000); J. Preskill, Lecture Notes for Phys. 229, Quantum information and computation, http://theory.caltech.edu/~preskill/ph219/; Note del docente W. Sherer, Mathematics of Quantum Computing: An Introduction, Springer; 1st ed. 2019 edizione (22 novembre 2020)
M.A. Nielsen, I.L. Chuang, "Quantum computation and quantum information", CUP (2000); J. Preskill, Lecture Notes for Phys. 229, Quantum information and computation, http://theory.caltech.edu/~preskill/ph219/; Lecture notes W. Sherer, Mathematics of Quantum Computing: An Introduction, Springer; 1st ed. 2019 edizione (22 novembre 2020)
Obiettivi formativi/Mission
Acquisizione delle conoscenze teoriche e introduzione alle tecniche sperimentali più importanti per la computazione quantistica.
Acquisition of basic theoretical knowledge and experimental techniques for quantum computation.
Prerequisiti/Required background knowledge
Algebra lineare e analisi di base, fisica di base.
Linear algebra and calculus, introductory physics.
Metodi didattici/Teaching methods
Lezioni frontali, esercizi per casa con correzione in classe, programmazione di calcolatori quantistici in rete (IBM-Quantum)
Frontal lessons, take home exercises, practice in quantum programming with online quantum computers (IBM-Quantum)
Altre informazioni/Further information
Verranno messe a disposizione le note sintetiche delle lezioni sul sito del corso
Lecture notes will be available on the site of the course
Modalità di verifica dell'apprendimento/Assessment methods
L'esame consiste nella stesura di un progetto di computazione quantistica seguendo l'implementazione di algoritmi analoghi sulla piattaforma GitHub/qiskit. La studentessa/lo studente sceglie l'algoritmo che vuole provare ad implementare, lo riproduce e lo fara' girare sulle piattaforme free online di IMB-quantum o produce un report dei risultati.
The exam consists of writing a quantum computation project following the implementation of similar algorithms on the GitHub/qiskit platform. The student chooses the algorithm she/he wants to try to implement, reproduce it and run it on the free online IMB-quantum platforms or produce a report of the results.
Programma esteso/Content
1. Introduzione. Numeri complessi, formula di Taylor, formula di Eulero. Matrici e loro operazioni. 2. Ripasso sintetico di algebra lineare: spazi vettoriali, operatori, prodotto scalare. Le regole di base della Meccanica Quantistica. 3. Quantum bits, sfera di Bloch, qubits multipli, porte a singolo qubit e porte a qubits multipli. 4. Circuiti quantistici. Stati intrecciati. Algoritmi quantistici. Cenni alla teoria dell' informazione quantistica. 5. Crittografia quantistica. Teletrasporto. 6. Algoritmo di Deutsch-Josza. Trasformata di Fourier Quantistica. Algoritmo di Shor per la fattorizzazione di numeri interi. Algoritmo di Grover per la ricerca in un database.
1. Introduction. Complex numbers, Taylor's formula, Euler's formula. Matrices and their operations. 2. Recap of linear algebra: vector spaces, linear operators, scalar product. The basic rules of quantum mechanics. 3. Quantum bits, Bloch sphere, multiple qubits, single qubit gates and multiple qubit gates. 4. Quantum circuits. Entangled states. Quantum algorithms. Notions of quantum information. 5. Quantum cryptography. Quantum teleportation. 6. Deutsch-Josza algorithm. Quantum Fourier Transform. Shor's algorithm for factorization. Grover's algorithm for searching non structured databases.
Risultati di apprendimento attesi/Intended learning objectives
Acquisizione dei principi di base della computazione quantistica, e capacità di applicarli alla programmazione di calcolatori quantistici.
Understanding of the basic principles of quantum computation, and ability to apply them in programming quantum computers.
×
Stampa
Insegnamento
PRINCIPI DI CONTROLLO DI GESTIONE
Codice
MF0884
Anno Accademico
2025/2026
Anno regolamento
2023/2024
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
SONGINI LUCREZIA
CFU
3.0
Ore di lezione
24.0
Ore di studio individuale
51.0
Settore Scientifico Disciplinare (SSD)
ECON-06/A -
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OPZ
Categoria insegnamento
D
Anno
3
Periodo
Secondo Semestre
Sede
ALESSANDRIA
Tipo di valutazione
V
Lingua insegnamento/Teaching language
Italiano
Italian
Contenuti/Content Summary
- Le performance chiave dell’impresa: le dimensioni reddituale, patrimoniale e finanziaria - La riclassificazione dello stato patrimoniale - Lo stato di salute dell’impresa: le analisi di solidità e liquidità - La riclassificazione del conto economico - Lo stato di salute dell’impresa: le analisi redditività - L’analisi per segmento: il conto economico a ricavi e margine di contribuzione
- The firm’s key performance: the income, asset and financial dimensions - The balance sheet - Solidity and liquidity indexes - The income statement - Profitability analyses - The segment analysis: the income statement at revenue and contribution margin
Testi di riferimento/Textbooks
- SONGINI L., Come impostare un sistema di programmazione e controllo (lettura) - Arcari A. M. Programmazione e controllo, McGraw-Hill, 2023, IV edizione, cap. 7
- SONGINI L., Come impostare un sistema di programmazione e controllo (lettura) - Arcari A. M. Programmazione e controllo, McGraw-Hill, 2023, IV edizione, cap. 7
Obiettivi formativi/Mission
Dopo aver seguito il corso, il/la partecipante sarò in grado di: - comprendere le dimensioni rilevanti della performance aziendale - analizzare in modo critico le performance aziendali - comprendere l’impatto delle decisioni manageriali sulle performance aziendali - leggere e comprendere le performance di segmenti dell’azienda (prodotti, servizi, clienti, mercati, etc.) - comprendere e confrontare le performance di imprese concorrenti, di clienti, di fornitori
After taking the course, the participant will be able to: - understand relevant dimensions of business performance - critically analyse business performance - understand the impact of managerial decisions on company performance - read and understand the performance of segments of the company (products, services, customers, markets, etc.) - understand and compare the performance of competing firms, customers, suppliers
Prerequisiti/Required background knowledge
Nessuno
None
Metodi didattici/Teaching methods
Lezioni frontali. Analisi e discussione di casi aziendali in piccoli gruppi e in plenaria.
Lectures. Analysis and discussion of business cases in small groups and plenary.
Altre informazioni/Further information
Le studentesse e gli studenti con disabilità o con Disturbi Specifici dell’Apprendimento (DSA) o con Bisogni Educativi Speciali (BES) possono richiedere servizi e strumenti specifici a loro dedicati rivolgendosi allo Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti e consultando la pagina dedicata del sito di Ateneo: Le studentesse e gli studenti con disabilità, DSA, BES, una volta preso contatto con lo Staff di Ateneo, possono contattare la/il docente titolare dell'insegnamento in relazione alla declinazione delle modalità di esame, in merito agli aspetti didattici
Students with physical disabilities, Learning Disabilities or Specific Education Needs can request specific services and tools via the Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti, consulting the University web site: https://uniupo.it/it/servizi/servizi-studentidisabilie-dsa Students with disabilites, learning disabilites or special educaton needs, once they have contacted the University Staff, can refer to the tutor in charge of the course to define the examination modalities
Modalità di verifica dell'apprendimento/Assessment methods
Esame scritto con domande aperte e test con domande a risposta multipla.
Written exam: open questions and multiple choice questions
Programma esteso/Content
Gli argomenti trattati nel corso sono i seguenti: A) Le performance chiave dell’impresa: 1. Le dimensioni reddituale, patrimoniale e finanziaria 2. Il bilancio d’esercizio: Il Conto Economico e lo Stato Patrimoniale B) La riclassificazione del bilancio 1. La riclassificazione del conto economico: Il conto economico a ricavi e costo del venduto 3. La riclassificazione dello stato patrimoniale: Il criterio finanziario C) L’analsi di bilancio per indici 1. La solidità 2. La liquidità 3. La redditività D) La redditività per segmento 1. Il conto economico per area di risultato e a ricavi e margine di contribuzione 2. Costi specifi e comuni; costi variabili e fissi
The topics covered in the course are as follows: A) Key firm performance: 1. The income, asset and financial dimensions 2. The financial statements: The income statement and the balance sheet B) The reclassification of financial statements. 1. The reclassification of the income statement: The income statement to revenue and cost of sales 3. The reclassification of the balance sheet: The financial criterion C) The financial statement analysis by ratios. 1. Solidity 2. Liquidity 3. Profitability D) The segment analysis 1. The income statement by segment and to revenue and contribution margin 2. Specific and common costs; variable and fixed costs
Risultati di apprendimento attesi/Intended learning objectives
Alla fine dell’intervento formativo gli studenti saranno in grado di: 1. leggere e interpretare un bilancio 2. comprendere le dimensioni rilevanti della performance aziendale 3. analizzare in modo critico le performance aziendali 4. comprendere l’impatto delle decisioni manageriali sulle performance aziendali 5. leggere e comprendere le performance di segmenti dell’azienda 6. comprendere e confrontare le performance di imprese concorrenti, di clienti, di fornitori
At the end of the course, students will be able to: 1. read and interpret a financial statement 2. understand the relevant dimensions of corporate performance 3. critically analyse corporate performance 4. understand the impact of managerial decisions on corporate performance 5. read and understand the performance of segments of the company 6. understand and compare the performance of competing firms, customers, suppliers
×
Stampa
Insegnamento
DISCRETE EVENT SIMULATION
Codice
MF0787
Anno Accademico
2025/2026
Anno regolamento
2023/2024
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
FRANCESCHINIS Giuliana Annamaria
CFU
4.0
Ore di lezione
32.0
Ore di studio individuale
68.0
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OPZ
Categoria insegnamento
D
Anno
3
Periodo
Secondo Semestre
Sede
ALESSANDRIA
Tipo di valutazione
V
Lingua insegnamento/Teaching language
Inglese
English
Contenuti/Content Summary
Il corso fornisce le motivazioni per lo studio di prestazione di sistemi tramite modelli di simulazione; illustra i principali concetti e metodi per la costruzione di modelli di simulazione, la loro esecuzione e l’analisi dell’output. I concetti sono illustrati attraverso numerosi esempi applicativi e proponendo esercizi pratici da realizzare tramite ambienti di simulazione software open source. Le nozioni di probabilità e statistica di base, necessarie ad effettuare l’analisi dei risultati degli esperimenti di simulazione, sono brevemente trattate nel corso.
The course provides motivation for performing simulation studies, illustrates the main concepts and methods for building simulation models, executing them and analysing the output. This is done presenting several application examples and proposing hands-on exercises using open source simulation environments. The basic background notions on probability and statistics needed to perform the analysis of the simulation output are reviewed in the course.
Testi di riferimento/Textbooks
Libro di testo (Open Access): Manuel D. Rosetti, Simulation Modeling and Arena. https://rossetti.github.io/RossettiArenaBook/ Libri di consultazione: J. Banks, J. S. Carson II, B. L. Nelson, David M. Nicol, Discrete-Event System Simulation , Fifth edition, Pearson Education 2010 Simulation Modeling and Analysis, 5th Edition, A. Law, Mc Graw Hill, 2015
Text Book (Open Access): Manuel D. Rosetti, Simulation Modeling and Arena. https://rossetti.github.io/RossettiArenaBook/ Books for consultation: J. Banks, J. S. Carson II, B. L. Nelson, David M. Nicol, Discrete-Event System Simulation , Fifth edition, Pearson Education 2010 Simulation Modeling and Analysis, 5th Edition, A. Law, Mc Graw Hill, 2015
Obiettivi formativi/Mission
Si tratta di un corso introduttivo sulla simulazione ad eventi discreti Si focalizza sullo scopo e le possibili applicazioni della simulazione. Introduce i concetti di modello discreto e dinamico, di stato di un modello e delle leggi operazionali che definiscono il comportamento dinamico dei modelli. Lo scopo di uno studio basato su modelli di simulazione viene presentato attraverso esempi in diversi domini applicativi caratterizzati da diversi tipi di proprietà (misure) di interesse. Viene discusso il problema della scelta del livello di astrazione appropriato in funzione dei risultati attesi e delle informazioni disponibili sul sistema oggetto dello studio. Viene poi presentata la differenza tra modelli deterministici e stocastici; vengono quindi illustrati alcuni importanti aspetti che riguardano i modelli stocastici come la generazione di valori casuali, la caratterizzazione probabilistica del flusso di lavoro in input al sistema, e l’analisi statistica dei dati prodotti tramite gli esperimenti di simulazione Vengono inoltre presentati alcuni strumenti software per la progettazione e l’esecuzione di modelli di simulazione discreti e dinamici sottolineandone le similitudini e le differenze. Tra gli obiettivi del corso vi è anche l’apprendimento delle funzionalità e dei meccanismi di funzionamento di diversi strumenti software di simulazione e la loro sperimentazione attraverso lo sviluppo dei principali passi di uno studio di simulazione da condurre realizzando un progetto sufficientemente semplice ma realistico.
This is an introductory course on Discrete Event Simulation. It focuses on the purpose and possible applications of simulation. The concepts of dynamic discrete model, its state and the operational laws defining the model dynamics are first introduced. The goal of a model-based simulation study is then defined providing examples of possible application domains and of the properties (measures) of interest that can be investigated through such study. The problem of choosing the appropriate abstraction level as a function of the desired results and of the available information on the system under study is also discussed. The difference between deterministic and stochastic models is presented; workload characterization, random numbers and random variate generation as well as statistical analysis of simulation output are introduced as relevant aspects to be considered when performing a simulation study through stochastic models. A few tools for the design and simulation of discrete dynamic stochastic models are presented highlighting similarities and differences. Getting acquainted with one tool and going through the main steps of a simulation study on a simple but realistic project is also a goal of the course.
Prerequisiti/Required background knowledge
Matematica, statistica e programmazione di base.
Basic mathematics, statistics and programming notions and skills
Metodi didattici/Teaching methods
Questo è un corso blended, composto da una prima parte da svolgere on-line ed una finale in presenza. Nella parte On-line si svolgeranno lezioni a distanza sincrone (con l’uso di slide e di strumenti per il coinvolgimento dei/delle partecipanti come Wooclap), saranno forniti materiali di studio pubblicati on-line per consentire l’interiorizzazione e la sperimentazione dei concetti introdotti nelle lezioni sincrone, quiz di autovalutazione, esercizi che utilizzano strumenti software open source per le attività di laboratorio. Sarà inoltre incoraggiata la partecipazione attiva e l’uso di vari strumenti on-line per la comunicazione e l’apprendimento collaborativo tra pari. La fase in presenza sarà dedicata principalmente allo sviluppo di un progetto in gruppo che sarà presentato a presentato a tutte le studentesse e a tutti gli studenti al termine del corso.
This is a blended course, with a first on-line part and a final residential part. In the on-line part: On-line synchronous classes (use of slides and student engagement tool Wooclap), self study on material published on-line, on-line self-assessment quizzes, exercises using open source software tools, on-line support for lab activities. Use of diverse on-line tools for communication and collaborative learning. In the final residential part of the course: Teamwork on a project. The result of the project work will be presented to all course participants at the end of the residential part of the course.
Altre informazioni/Further information
Si tratta di un corso ERASMUS+ BIP, svolto in collaborazione con tre altre università europee (Spagna, Francia, Romania): nel 2025/26 la Università organizzatrice è l’Universidad de Zaragoza in Spagna. La partecipazione da parte degli studenti è limitata a 6 studenti per ogni partner, selezionati tramite un bando. Il corso è blended con una parte on-line (della durata di circa 13 settimane, a tempo parziale) e una parte intensiva, prevalentemente laboratoriale, in presenza (1 settimana a tempo pieno, presso la sede dell’Università organizzatrice). Il progetto finale dovrà essere sviluppato in gruppo. La piattaforma LMS di supporto è moodle.unizar.eu (la piattaforma Moodle dell’Università di Zaragoza) sarà utilizzata come punto centrale per la condivisione di tutto il materiale e i link agli strumenti per la comunicazione on-line e gli strumenti software “open source” che i partecipanti dovranno utilizzare per gli esercizi. Le lezioni (a distanza) sincrone saranno erogate utilizzando uno strumento per teleconferenza (per es. Meet, Zoom, .) Il supporto on-line per le attività di laboratorio saranno svolte tramite il sistema Mariotel https://tel.marionnet.org/info.php
This is an Erasmus+ Blended Intensive Program course, held in cooperation with three other European universities (in Spain, France and Romania): in 2025/26 the organizing institution is the Universidad de Zaragoza in Spain. Only 6 students for each partner institution are admitted, and are chosen among those applying to a specific call. The course is blended, with an on-line part (13 weeks, part-time) and an intensive residential part (1 week). Final project to be developed in groups. The DIR (Moodle) platform will be used as a shared point where all the material and links to all on-line communication tools and open source software tools will be available for the participants. Synchronous classes will be given using a video-conferencing tool (e.g., Meet, Zoom, .). On-line support for laboratory activities will be performed through Mariotel https://tel.marionnet.org/info.php
Modalità di verifica dell'apprendimento/Assessment methods
La valutazione si baserà su tre aspetti: (1) la qualità degli artefatti prodotti durante tutto lo svolgimento del corso (30%), (2) la qualità dell’interazione, specialmente per quanto riguarda le discussioni on-line e il lavoro collaborativo in gruppo. (10%); (3) la qualità del progetto finale, sviluppato in gruppo principalmente durante la settimana intensiva di fine corso, ed illustrato tramite una presentazione finale (60%). Al termine vengono assegnati due open badge, uno relativo agli skill tecnici (codificati secondo i framework europei ESCO e DigComp) e uno sulle soft skills.
The assessment will be based on three aspects: (1) the quality of artifacts produced along the whole course (30%), (2) the quality of interactions, in particular concerning on-line discussion and group work collaborative activities (10%), (3) the quality of the final project work (in group) developed mainly during the residential intensive week and illustrated in a final presentation (60%). Finally the students receive two open badges, one concerning the acquired technical skills (among those found in the ESCO and DigComp competency frameworks), and another one concerning the soft skills.
Programma esteso/Content
Motivazioni che giustificano lo studio di sistemi tramite simulazione, con esempi di diversi campi applicativi. Simulazione ad eventi discreti: definizione dello stato di un modello e delle regole operazionali che ne regolano l’evoluzione nel tempo (discreto). Definizione di misure di prestazione / affidabilità. Simulazione manuale di alcuni semplici esempi. Algoritmo di base per la simulazione ad eventi discreti di tipo Next Event Time Advance (la Future Event List, i metodi per la gestione degli eventi e per la raccolta le misure da cui si deriva l’output degli esperimenti di simulazione. Vengono proposti esercizi di laboratorio da sviluppare tramite lo strumenti software open source, con particolare riferimento a JaamSim. Revisione dei concetti di base su probabilità e statistica. Metodi per la generazione di numeri pseudo-casuali e campionamento di valori dalle distribuzioni che caratterizzano le variabili casuali nei modelli stocastici. Esperimenti con modelli stocastici: osservazione della variabilità dell’input e dell’output. Dedurre la distribuzione di variabili casuali a partire da dati in input. Analisi dell’output di esperimenti di simulazione (di modelli stocastici): calcolo di intervalli di confidenza su campioni ottenuti attraverso esecuzioni ripetute. Analisi delle misure in transitorio e a regime. Presentazione di alcuni casi di studio attraverso esperimenti guidati su diversi strumenti software. Assegnazione di un progetto finale: si tratta di un caso di studio (variazione sul tema di un caso di studio presentato nelle precedenti fasi); lo studio dovrà essere sviluppato all’interno di gruppi di 3-4 studenti, descritto in una relazione finale ed in una presentazione da discutere con tutti/e i/le partecipanti.
Motivation for developing simulation studies, with examples in diverse application fields. Discrete Event Simulation: definition of model state and operational rules for state evolution in (discrete) time. Definition of performance/reliability measures. Manual simulation of simple examples. Discrete Event Simulation: basic Next Event Time Advance algorithm (Future Event List, Event handling methods, Measures computation). Simulation model implementation tasks are proposed, to be completed through general purpose programming languages or within application oriented open source simulation environments, in particular with examples using JaamSim. Review of basic probability and statistics notions. (Pseudo)Random numbers and Random variates generation methods. Experiments with stochastic models: observing input and output variability. Fitting distributions on input data. Simulation output analysis (of stochastic models): computing confidence intervals on multiple run output. Transient versus steady state analysis of measures. Presentation of a few case studies through guided experiments on a few case studies with different software tools. Final project assignment concerning a variation on the theme of one case study proposed in the previous phases: this will be developed within groups (3-4 students ), and comprises the production of a complete simulation study, of a report describing it and a presentation to be discussed with all participants.
Risultati di apprendimento attesi/Intended learning objectives
Alla fine del corso i/le partecipanti saranno in grado di: Definire lo scopo di uno studio di simulazione e fornire esempi di possibili applicazioni. Definire cosa è un modello di simulazione discreto e dinamico: elencare gli elementi che definiscono un modello; fornire esempi di modelli in diversi domini applicativi. Costruire un modello utilizzando uno strumento software per la modellazione e la simulazione ed eseguire esperimenti di simulazione. Confrontare le caratteristiche di diversi strumenti di simulazione. Confrontare modelli a diversi livelli di astrazione e discutere quali proprietà o misure si possono ricavare simulando tali modelli Definire lo scopo e le caratteristiche di un metodo per la generazione di numeri casuali e di istanze di variabili casuali, e il suo ruolo nell’esecuzione di modelli di simulazione. Derivare i parametri di un modello di simulazione stocastico a partire da dati raccolti su un sistema reale: in particolare applicare metodi di fitting di distribuzioni di probabilità a partire da dataset. Spiegare perché e come occorre applicare metodi di analisi statistica al risultato di (numerose esecuzioni di) esperimenti di simulazione. Applicare tutte le abilità sopra descritte a un caso di studio realistico. Svolgere una analisi what-if per osservare e spiegare come cambiano i risultati degli esperimenti di simulazione quando si considerano varianti del modello (dovute a diverse configurazioni o diversi valori dei parametri). Infine durante il corso gli studenti e le studentesse svilupperanno soft skills come lavorare in gruppo, comunicazione (sia mediata dalla tecnologia sia in presenza) e l’abilità di ampliare la propria conoscenza sugli argomenti del corso attraverso lo studio autonomo.
After the course the participants will be able to: Define the purpose of a simulation study and provide examples of possible applications. Define what a dynamic discrete simulation model is; list the elements that define a model; provide examples of models in different application domains. Build a model using a modeling and simulation tool and execute it. Compare the characteristics of different simulation tools. Compare models at different abstraction levels and discuss what properties or measures can be derived by simulating such models. Define the purpose and the characteristics of a random number/variate generation method and its role in the execution of a stochastic simulation model. Derive the parameters of a stochastic simulation model from data gathered on a real system: in particular apply probability distribution fitting methods from datasets. Explain why and how statistical analysis methods should be applied to the results of (multiple executions of) a stochastic model simulation esperiments.. Apply all the above abilities to a realistic case study. Perform what-if analysis to observe and explain how the simulation results change when considering variations of the model (different configurations or parameter values). Finally along the course the participants will develop soft skills such as team work, communication skills (both technology mediated and in-presence) and the ability to expand their knowledge on the subject through autonomous learning.
×
Stampa
Insegnamento
SISTEMI OPERATIVI
Codice
MF0368
Anno Accademico
2025/2026
Anno regolamento
2024/2025
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
GUAZZONE Marco
CFU
12.0
Ore di lezione
96.0
Ore di studio individuale
0.0
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Attività formativa integrata
Fruizione insegnamento
OBB
Anno
2
Periodo
Annuale
Sede
VERCELLI
Tipo di valutazione
V
Lingua insegnamento/Teaching language
Italiano
Italian
Contenuti/Content Summary
Il corso si compone di due moduli: SISTEMI OPERATIVI 1 e SISTEMI OPERATIVI 2. Il programma del modulo SISTEMI OPERATIVI 1 si articola sulle seguenti tematiche: introduzione ai sistemi operativi, gestione e sincronizzazione dei processi e programmazione concorrente, gestione della memoria. Il programma del modulo SISTEMI OPERATIVI 2 si articola sulle seguenti tematiche: gestione dell'I/O, progettazione e realizzazione dei file system, tecniche di virtualizzazione.
The course consists of two modules: OPERATING SYSTEMS 1 and OPERATING SYSTEMS 2. The module OPERATING SYSTEMS 1 focuses on the following topics: introduction to operating systems, process management and synchronization and concurrent programming, and memory management. The module OPERATING SYSTEMS 2 focuses on the following topics: I/O management, design and implementation of file systems, and virtualization techniques.
Testi di riferimento/Textbooks
Andrew S. Tanenbaum & Herbert Bos, "Modern Operating Systems: Global Edition, 5/E", Pearson, 2023. ISBN-13: 9781292459660. Disponibile anche in italiano: Andrew S. Tanenbaum & Herbert Bos, "I moderni sistemi operativi, 5/Ed," Pearson, 2023. ISBN: 9788891931955.
Andrew S. Tanenbaum & Herbert Bos, "Modern Operating Systems: Global Edition, 5/E", Pearson, 2023. ISBN-13: 9781292459660. Also available in Italian: Andrew S. Tanenbaum & Herbert Bos, "I moderni sistemi operativi, 5/Ed," Pearson, 2023. ISBN: 9788891931955.
Obiettivi formativi/Mission
Il corso ha l’obiettivo di illustrare I principi, le diverse problematiche e le attuali soluzioni tecniche e metodologiche per la progettazione e realizzazione dei componenti dei sistemi operativi moderni che si occupano (1) della gestione e sincronizzazione dei processi e dei thread, (2) della gestione della memoria, (3) della gestione dei dispositivi di I/O, (4) della gestione della memoria di massa, e (5) della virtualizzazione delle risorse hardware.
The course aims to illustrate the principles, the various issues and current technical and methodological solutions for the design and management of the components of modern operating systems in charge of (1) managing and synchronizing processes and threads, (2) managing memory, (3) managing I/O devices, (4) managing mass storage, and (5) virtualizing hardware resources.
Prerequisiti/Required background knowledge
Programmazione 1 e 2, Architetture degli Elaboratori.
Programming 1 and 2, Computer Architecture.
Metodi didattici/Teaching methods
Modulo SISTEMI OPERATIVI 1: lezioni frontali ed esercitazioni in laboratorio. Modulo SISTEMI OPERATIVI 2: solo lezioni frontali.
Module OPERATING SYSTEMS 1: both class lectures and lab lectures. Module OPERATING SYSTEMS 2: class lectures only.
Altre informazioni/Further information
Monitoraggio del processo di apprendimento: le studentesse e gli studenti svolgeranno delle esercitazioni in laboratorio sotto la supervisione del docente. Le studentesse e gli studenti con disabilità o con Disturbi Specifici dell’Apprendimento (DSA) o con Bisogni Educativi Speciali (BES) possono richiedere servizi e strumenti specifici a loro dedicati, rivolgendosi allo "Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti" e consultando la pagina dedicata del sito di Ateneo: https://uniupo.it/it/servizi/servizi-studenti-disabili-e-dsa. Le studentesse e gli studenti con disabilità, DSA, BES, una volta preso contatto con lo Staff di Ateneo, possono contattare la/il docente titolaredell'insegnamento in relazione alla declinazione delle modalità di esame, in merito agli aspetti didattici.
Monitoring of the learning process: students will complete assignments in the computer lab under the supervision of the teacher. Students with physical disabilities, Learning Disabilities or Special Education Needs can requestspecific se rvices and tools via the "Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti", consulting the University webpage: https://www.uniupo.it/en/services/services-students-physical-or-learning-disabilities. Students with disabilities, learning disabilities or special education needs, once they have contacted the University Staff, can refer to the tutor in charge of the course to define the examination modalities, concerning academic aspects.
Modalità di verifica dell'apprendimento/Assessment methods
Ciascuno dei due moduli ha un suo esame (che può essere scritto o orale): - Modulo SISTEMI OPERATIVI 1: esame scritto o orale con alcune (da 4 a 6) domande sui diversi argomenti trattati nel corso e alcuni (da 1 a 3) esercizi di programmazione riguardanti le esercitazioni pratiche svolte in laboratorio. Il voto finale dell'esame di questo modulo terrà conto della valutazione ottenuta sulle singole domande e esercizi. - Modulo SISTEMI OPERATIVI 2: esame scritto obbligatorio e orale facoltativo (solo se il voto dello scritto è maggiore o uguale a 27/30). La prova d'esame prevede uno o più quesiti posti sotto forma di domande teoriche o esercizi,; a ciascun quesito è associato uno specifico punteggio (espresso in trentesimi); il voto finale dell'esame di questo modulo sarà ottenuto come la somma dei punteggi ottenuti in ogni quesito. Gli argomenti della prova d’esame (sia scritta che orale) comprendono quelli presentati durante le lezioni frontali e dettagliati nel programma del corso. Per superare l’esame complessivo di SISTEMI OPERATIVI, è necessario conseguire un esito sufficiente in ciascun modulo. Il voto finale è stabilito in modo collegiale dai docenti dei due moduli, tenendo conto dell’esito ottenuto in ciascun modulo e attribuendo lo stesso peso a entrambi i moduli, consistentemente con il numero di crediti erogati.
Each module has its own exam: - Module OPERATING SYSTEMS 1: written or oral exam consisting of 4-6 questions and 1-3 programming assignments on different course topics. The exam grade for this module will be based on the score obtained on the single questions and assignments. - Module OPERATING SYSTEMS 2: mandatory written examination and optional oral examination (only if the grade of the written examination is greater than or equal to 27/30). The examination consists in one or more questions posed in the form of theoretical questions or exercises; each question is associated with a specific score (expressed out of 30); the final exam grade for this module will be determined as the sum of the scores got in each question. Topics of the examination (both written and oral) include those presented during classroom lessons and detailed in the course program. In order to pass the exam of the whole OPERATING SYSTEM course, it is required to get a passing grade in each module. The final grade is agreed upon by the teachers of the two modules, taking into account the final result obtained in each one of them and weighting both modules equally, consistently with the number of credits.
Programma esteso/Content
Modulo SISTEMI OPERATIVI 1: il programma di questo module si compone dei seguenti argomenti: 1) Nozioni fondamentali sull'architettura del sistema operativo di un elaboratore multiutente. 2) Nucleo del sistema operativo. 3) Gestione e sincronizzazzione di processi e thread, e programmazione concorrente. 4) Deadlock. 5) Gestione della memoria. 6) Chiamate di sistema per la gestione e sincronizzazione di processi e thread nei sistemi Unix. Modulo SISTEMI OPERATIVI 2: il programma di questo modulo corso si articola in tre macro-argomenti: 1) Gestione dell'I/O: architettura del sottosistema di I/O; interfaccia di I/O per le applicazioni; sottosistema di I/O del kernel; struttura dei dispositivi di memorizzazione; struttura dei dischi; scheduling del disco; gestione dell'unità a disco; sistemi RAID; gestione del risparmio energetico. 2) Progettazione e realizzazione di file system: il concetto di file e di file system; struttura della directory e del disco; condivisione di file; meccanismi di protezione dei file; struttura del file system; implementazione di file e directory; metodi di allocazione; gestione dello spazio libero; metodi di allocazione; efficienza e prestazioni; consistenza; backup e ripristino. 3) Progettazione e realizzazione di tecniche di virtualizzazione: il concetto di macchina virtuale e di hypervisor; virtualizzare la CPU; problematiche e soluzioni per la virtualizzazione dell'architettura x86; virtualizzare la memoria; virtualizzare l'I/O; il Cloud.
Module OPERATING SYSTEMS 1: the program of this module consists of the following topics: 1) General notions on the architecture of a multi-user system. 2) Operating system kernel. 3) Process and thread management and synchronization, and concurrent programming. 4) Deadlocks. 5) Memory management. 6) System calls for process and thread managements and synchronization in Unix systems. Module OPERATING SYSTEMS 2: the program of this module consists of three main topics: 1) I/O Management: the architecture of the I/O subsystem; I/O interface; kernel I/O subsystems; storage devices; disk structure, management, and scheduling; RAID systems. power management. 2) File systems: file system organizations; file system structures; file system design and implementation techniques; mechanisms for file sharing and protection; disk free space management; disk space allocation; performance and efficiency of file systems; consistenza; backup and restore. 3) Virtualization: virtual machines and hypervisors; CPU virtualization, issues and solution for the virtualization of the x86 architecture; Memory virtualization; I/O virtualization; the Cloud.
Risultati di apprendimento attesi/Intended learning objectives
Conoscenza e capacità di comprensione: apprendere il ruolo e i principi chiave che sono alla base del comportamento, della progettazione, e dello sviluppo dei componenti dei sistemi operativi moderni che si occupano (1) della gestione dei processi e dei thread (ad es., scheduling della CPU), (2) della gestione della memoria (ad es., memoria virtuale), (3) della gestione dei dispositivi di I/O (ad es., il sotto-sistema di I/O), (4) della gestione della memoria di massa (ad es., i file system), e (5) della virtualizzazione delle risorse hardware (ad es., gli hypervisor). Capacità di applicare conoscenza e comprensione: applicare i principi generali in un sistema reale. Autonomia di giudizio: valutare autonomamente, in termini di efficienza di gestione e di prestazioni, le migliori tecniche per la gestione dei processi, della memoria, dei dispositivi di I/O e della memoria secondaria, e quelle per la virtualizzazione. Abilità comunicative: comunicare e spiegare i principi fondamentali dei sistemi operativi legati alla gestione dei processi, della memoria, dei dispositivi di I/O e della memoria di massa, e alla tecniche per la virtualizzazione delle risorse hardware. Capacità di apprendere: acquisire in modo autonomo quelle conoscenze metodologiche necessarie per valutare e utilizzare le chiamate di sistema e le tecniche per la gestione dei processi, della memoria, dei dispositivi di I/O e della memoria secondaria, così come tecniche per la virtualizzazione delle risorse hardware, non affrontate nel corso.
Knowledge and understanding: learning the role and the key principles underneath the behavior, the design and the development of the components of modern operating systems in charge of (1) managing processes and threads (e.g., CPU scheduling), (2) managing memory (e.g., virtual memory), (3) managing I/O devices (e.g., I/O subsystems), (4) managing mass storage (e.g., file systems), and (5) virtualizing hardware resources (e.g., hypervisors). Applying knowledge and understanding: applying the general principles in a real system, in particular, using Unix system calls and tools. Making judgements: autonomously evaluating, in terms of efficiency of management and performance, the best techniques to manage processes, memory, I/O devices and mass storage, as well as for the virtualization of hardware resources. Communication skills: communicating and justifying the fundamentals principles of operating systems related to the management of processes, memory, I/O devices and mass storage as well as to the techniques for the virtualization of hardware resources. Learning skills: autonomously learning the methodological skills needed to evaluate and use system calls and techniques for the management of processes, memory, I/O devices and mass storage, as well as for the virtualization of hardware resources, not studied during the course.
Moduli
Codice Insegnamento Settore Scientifico Disciplinare (SSD) Docenti Agenda web
MF0369SISTEMI OPERATIVI: SISTEMI OPERATIVI 1 INF/01 - INFORMATICA Nicolazzo Serena
MF0370SISTEMI OPERATIVI: SISTEMI OPERATIVI 2 INF/01 - INFORMATICA Belloni Paolo
Mostra scheda insegnamento padre
×
Stampa
Insegnamento
SISTEMI OPERATIVI: SISTEMI OPERATIVI 1
Codice
MF0369
Anno Accademico
2025/2026
Anno regolamento
2024/2025
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
NICOLAZZO SERENA
CFU
6.0
Ore di lezione
48.0
Ore di studio individuale
102.0
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Modulo di sola Frequenza
Fruizione insegnamento
OBB
Categoria insegnamento
B
Anno
2
Periodo
Primo Semestre
Sede
VERCELLI
Tipo di valutazione
G
Lingua insegnamento/Teaching language
ITALIANO
Italian
Contenuti/Content Summary
- Introduzione ai sistemi operativi - Gestione e sincronizzazione dei processi e programmazione concorrente, - Gestione della memoria. - Gestione di processi e memoria in ambienti Unix.
Introduction to operating system, process management, process synchronization and concurrent programming, memory management. Process management and synchronization in Unix.
Testi di riferimento/Textbooks
Andrew S. Tanenbaum & Herbert Bos, "Modern Operating Systems: Global Edition, 5/E", Pearson, 2023. ISBN-13: 9781292459660. Disponibile anche in italiano: Andrew S. Tanenbaum & Herbert Bos, "I moderni sistemi operativi, 5/Ed," Pearson, 2023. ISBN: 9788891931955.
Andrew S. Tanenbaum & Herbert Bos, "Modern Operating Systems: Global Edition, 5/E", Pearson, 2023. ISBN-13: 9781292459660. Also available in Italian: Andrew S. Tanenbaum & Herbert Bos, "I moderni sistemi operativi, 5/Ed," Pearson, 2023. ISBN: 9788891931955.
Obiettivi formativi/Mission
Lo scopo del modulo è presentare le caratteristiche dei moderni sistemi operativi, illustrarne i principali compenenti, la loro organizzazione e i servizi forniti. In particolare verranno analizzati (1) la gestione dei processi e thread, (2) la loro comunicazione e sincronizzazione e (3) la gestione della memoria.
The module aims to show the features of modern operating systems, to illustrate its main components, their organization and provided services. In particular will be analyzed: (1) process and thread management, (2) communication and synchronization and (3) memory management.
Prerequisiti/Required background knowledge
I concetti spiegati durante Programmazione 1 e 2, Architetture degli Elaboratori.
The contents of a first course in computer architecture and in programming.
Metodi didattici/Teaching methods
Lezioni frontali ed esercitazione in laboratorio.
Standard lectures and programming sessions in the computer lab.
Altre informazioni/Further information
Controllo dell'apprendimento in itinere: durante il corso vengono svolte delle esercitazioni in laboratorio sotto la supervisione di un docente. Le studentesse e gli studenti con disabilità o con Disturbi Specifici dell’Apprendimento (DSA) o con Bisogni Educativi Speciali (BES) possono richiedere servizi e strumenti specifici a loro dedicati, rivolgendosi allo "Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti" e consultando la pagina dedicata del sito di Ateneo: https://uniupo.it/it/servizi/servizi-studenti-disabili-e-dsa. Le studentesse e gli studenti con disabilità, DSA, BES, una volta preso contatto con lo Staff di Ateneo, possono contattare la/il docente titolaredell'insegnamento in relazione alla declinazione delle modalità di esame, in merito agli aspetti didattici.
Learning process monitoring: during the course the students will complete assignments in the computer lab under the supervision of a teacher. Students with physical disabilities, Learning Disabilities or Special Education Needs can requestspecific se rvices and tools via the "Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti", consulting the University webpage: https://www.uniupo.it/en/services/services-students-physical-or-learning-disabilities. Students with disabilities, learning disabilities or special education needs, once they have contacted the University Staff, can refer to the tutor in charge of the course to define the examination modalities, concerning academic aspects.
Modalità di verifica dell'apprendimento/Assessment methods
Esame scritto obbligatorio con alcune domande a scelta multipla (circa 15) e esercizi sui diversi argomenti trattati nel corso e riguardanti le esercitazioni pratiche svolte in laboratorio (circa 7). Ad ogni domanda è associato un punteggio (1, 2 o 3 punti) in base alla correttezza e completezza della risposta data dalla studentessa / dallo studente. Il voto finale è calcolato come somma dei punteggi ottenuti sulle singole domande ed esercizi. L’esame è superato solo se si raggiunge il punteggio minimo di 18. La lode si ottiene con il punteggio di 31.
A mandatory written exam with several multiple-choice questions (about 15) and exercises covering the various topics addressed in the course and relating to the practical activities carried out in the laboratory (about 7). Each question is assigned a score (1, 2, or 3 points) based on the accuracy and completeness of the student’s answer. The final grade is calculated as the sum of the points obtained on the individual questions and exercises. The exam is passed only if the minimum score of 18 is reached. A score of 31 results in “cum laude”.
Programma esteso/Content
Nozioni fondamentali sull'architettura del sistema operativo di un elaboratore multiutente. Nucleo del sistema operativo. Gestione di processi e threads. Sincronizzazione di processi e threads e programmazione concorrente. Deadlocks. Gestione della memoria. Processi nel sistema Unix. Generalità sull'utilizzo delle chiamate di sistema Unix; chiamate di sistema per gestione di processi, libreria per threads. Chiamate di sistema e funzioni di libreria per sincronizzazione di processi e threads.
General notions on the architecture of a multi-user system. Operating system kernel. Process and thread management. Process and thread synchronization, concurrent Programming. Deadlocks. Memory management. Processes in the Unix systems. General notions on Unix system calls. System calls for process management, thread library. System calls and library functions for process and thread synchronization.
Risultati di apprendimento attesi/Intended learning objectives
Raggiungimento degli obiettivi formativi, nel modo misurato dal voto d'esame. Conoscenza e capacità di comprensione: Comprendere i principi generali e il ruolo dei sistemi operativi, fornire le nozioni fondamentali relative ai processi e alla gestione della memoria. Capacità di applicare conoscenza e comprensione: Applicare i principi generali in un sistema reale in particolare mediante le chiamate di sistema di Unix. Le studentesse e gli studenti dovranno raggiungere l'autonomia di giudizio rispetto al migliore uso dei processi e delle tecniche di gestione della memoria. Le studentesse e gli studenti dovranno essere in grado di comunicare e spiegare i principi fondamentali dei sistemi operativi. Le studentesse e gli studenti dovranno acquisire quelle conoscenze metodologiche necessarie per utilizzare anche chiamate di sistema e tecniche di gestione dei processi e della memoria non svolte a lezione.
Achievement of the learning targets, as measured by the examination grade. Knowledge and understanding: Understanding the role and the main principles of operating systems, providing basic notions on process management and memory management. Applying knowledge and understanding: Applying the general principles in a real system, in particular, using Unix system calls. Making judgments: students will be able to autonomously evaluate the best strategies to use processes and manage system memory. Communication skills: students will learn to communicate and justify the basic principles of operative systems. Learning skills: students will be able to autonomously learn how use system calls and processes management techniques not studied during the course.
Mostra scheda insegnamento padre
×
Stampa
Insegnamento
SISTEMI OPERATIVI: SISTEMI OPERATIVI 2
Codice
MF0370
Anno Accademico
2025/2026
Anno regolamento
2024/2025
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
BELLONI PAOLO
Docenti
CFU
6.0
Ore di lezione
48.0
Ore di studio individuale
102.0
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Modulo di sola Frequenza
Fruizione insegnamento
OBB
Categoria insegnamento
B
Anno
2
Periodo
Secondo Semestre
Sede
VERCELLI
Tipo di valutazione
G
Lingua insegnamento/Teaching language
Italiano
Italian
Contenuti/Content Summary
Il programma del corso si articola su tre tematiche principali, ovvero gestione dell'I/O, progettazione e realizzazione dei file system, e tecniche di virtualizzazione.
The course focuses on three main topics, namely I/O management, design and implementation of file systems, and virtualization techniques.
Testi di riferimento/Textbooks
Andrew S. Tanenbaum & Herbert Bos, "Modern Operating Systems: Global Edition, 5/E", Pearson, 2023. ISBN-13: 9781292459660. Disponibile anche in italiano: Andrew S. Tanenbaum & Herbert Bos, "I moderni sistemi operativi, 5/Ed," Pearson, 2023. ISBN: 9788891931955.
Andrew S. Tanenbaum & Herbert Bos, "Modern Operating Systems: Global Edition, 5/E", Pearson, 2023. ISBN-13: 9781292459660. Also available in Italian: Andrew S. Tanenbaum & Herbert Bos, "I moderni sistemi operativi, 5/Ed," Pearson, 2023. ISBN: 9788891931955.
Obiettivi formativi/Mission
Enunciare i principi generali inerenti il funzionamento, la progettazione e la realizzazione delle componenti del sistema operativo preposte alla gestione delle memorie secondarie, dei dispositivi di I/O e delle macchine virtuali, con particolare riferimento al file system. al sottosistema di I/O e al gestore di macchine virtuali. Analizzare i requisiti di un sistema operativo da progettare per individuare le soluzioni progettuali e implementative più adatte ad esso. Saper applicare concretamente le metodologie e le tecniche per la progettazione e realizzazione dei meccanismi e delle politiche per la gestione delle memorie secondarie, dei dispositivi di I/O, dei file system e delle macchine virtuali. Saper descrivere i principi fondamentali del funzionamento, della progettazione e della realizzazione dei driver delle periferiche, dei file system e di gestori di macchine virtuali.
State the general principles concerning the functioning, the design and the creation of the operating system components responsible for managing secondary memories, I/O devices and virtual machines, with particular reference to the file system, the I/O subsystem and the virtual machine hypervisor. Analyze the requirements of an operating system to be designed to identify design solutions and implementations best suited to it. Knowing how to concretely apply the methodologies and techniques for the design and implementation of mechanisms and policies for managing secondary storage, I/O devices, file systems and virtual machines. Knowing how to describe the fundamental principles of the operation, design and implementation of device, file system drivers and virtual machine hypervisors.
Prerequisiti/Required background knowledge
Architetture degli Elaboratori, Sistemi Operativi 1.
Computer Architecture, Operating Systems 1
Metodi didattici/Teaching methods
Lezioni in aula nelle quali vengono esposte le nozioni fondamentali, corredate di esempi. Per ciascuno dei tre macro-argomenti del corso (ovvero, gestione delle periferiche di input/out, file system e virtualizzazione) vengono confrontate diverse soluzioni progettuali e implementative. Nel corso delle lezioni in aula sono anche svolti, per i vari argomenti trattati, diversi quesiti tipici delle prove d'esame. Sulla piattaforma DIR sono indicati i libri di testo suggeriti ed è a disposizione del materiale, che ricalca gli argomenti trattati a lezione, risultando di aiuto anche per chi non fosse stato presente. Sono inoltre forniti alcuni esercizi ed esempi di prove d’esame.
Classroom lessons in which the fundamental notions are exposed, accompanied by examples. For each of the three macro-topics of the course (i.e. management of input/output devices, file system and virtualization) different design and implementation solutions are compared. During the lessons in the classroom, various questions typical of the exams are also asked for the various topics covered. The suggested textbooks are indicated on the DIR platform, and material is available, which follows the topics treated in class, being of help even for those who were not present. Some exercises and exam examples are also provided.
Altre informazioni/Further information
Le studentesse e gli studenti con disabilità o con Disturbi Specifici dell’Apprendimento (DSA) o con Bisogni Educativi Speciali (BES) possono richiedere servizi e strumenti specifici a loro dedicati, rivolgendosi allo "Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti" e consultando la pagina dedicata del sito di Ateneo: https://uniupo.it/it/servizi/servizi-studenti-disabili-e-dsa. Le studentesse e gli studenti con disabilità, DSA, BES, una volta preso contatto con lo Staff di Ateneo, possono contattare la/il docente titolare dell'insegnamento in relazione alla declinazione delle modalità di esame, in merito agli aspetti didattici.
Students with physical disabilities, Learning Disabilities or Special Education Needs can requestspecific se rvices and tools via the "Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti", consulting the University webpage: https://www.uniupo.it/en/services/services-students-physical-or-learning-disabilities. Students with disabilities, learning disabilities or special education needs, once they have contacted the University Staff, can refer to the tutor in charge of the course to define the examination modalities, concerning academic aspects.
Modalità di verifica dell'apprendimento/Assessment methods
Esame scritto obbligatorio e, a seguire, un esame orale facoltativo rivolto a coloro che intendono migliorare il voto dell'esame scritto. L'esame scritto obbligatorio prevede uno o più quesiti (tipicamente, da quattro a sei quesiti) posti sotto forma di domande teoriche o esercizi per valutare la conoscenza della studentessa / dello studente su (1) i concetti alla base del funzionamento dei dispositivi di I/O, (2) i meccanismi impiegati dal sistema operativo per gestire i dispositivi di I/O, (3) le metodologie di progettazione e implementazione di file system, e (4) le tecniche per la virtualizzazione delle risorse hardware. A ogni quesito è associato un punteggio il cui valore (che va da zero a uno specifico valore massimo) è determinato in base alla qualità della risposta fornita dalla studentessa / dallo studente. Il voto dell'esame scritto è la somma dei punteggi ottenuti in ogni quesito, espressa in trentesimi (da zero a trenta e lode). L’esame orale facoltativo può essere sostenuto solo se il voto dell’esame scritto è uguale o superiore a 27/30. La studentessa / lo studente che intende sostenere l'esame orale deve comunicarlo al docente via email entro due giorni dalla pubblicazione dei voti dell'esame scritto. L'esame orale prevede uno o più quesiti (tipicamente 3) posti sotto forma di domande teoriche o esercizi relativi agli argomenti trattati nel corso. Il voto dell'esame orale parte dal voto ottenuto nell'esame scritto e può aumentare, diminuire o rimanere invariato a seconda del grado di preparazione della studentessa / dallo studente. Gli argomenti dell'esame (sia scritto che orale) comprendono quelli presentati durante le lezioni frontali e dettagliati nel programma del corso.
Mandatory written exam and, subsequently, an optional oral exam aimed at those who intend to improve their written exam grade. The mandatory written exam includes one or more questions (typically, four to six questions) posed in the form of theoretical questions or exercises to evaluate the student’s knowledge about (1) the concepts underlying the operation of I/O devices, (2) the mechanisms employed by the operating system to manage the above devices, (3) the design and implementation methodologies of file systems, and (4) the techniques for the virtualization of hardware resources. Each question is associated with a score whose value (ranging from zero to a specific maximum value) is determined based on the quality of the response provided by the student. The grade of the written exam is the sum of the scores obtained in each question, expressed in thirtieths (from zero to thirty with honors). The optional oral exam can be taken only if the written exam grade is equal to or higher than 27/30. The student who intends to take the oral exam must communicate this to the teacher via email within two days of the publication of the written exam grades. The oral exam includes one or more questions (typically 3) posed in the form of theoretical questions or exercises related to the topics covered in the course. The grade of the oral exam starts from the grade obtained in the written exam and can increase, decrease or remain unchanged depending on the level of preparation of the student. The topics of the exam (both written and oral) include those presented during the lectures and detailed in the course program.
Programma esteso/Content
Il programma del corso si articola in tre macro-argomenti: 1) Gestione dell'I/O: architettura del sottosistema di I/O; interfaccia di I/O per le applicazioni; sottosistema di I/O del kernel; struttura dei dispositivi di memorizzazione; struttura dei dischi; scheduling del disco; gestione dell'unità a disco; sistemi RAID; gestione del risparmio energetico. 2) Progettazione e realizzazione di file system: il concetto di file e di file system; struttura della directory e del disco; condivisione di file; meccanismi di protezione dei file; struttura del file system; implementazione di file e directory; metodi di allocazione; gestione dello spazio libero; metodi di allocazione; efficienza e prestazioni; consistenza; backup e ripristino. 3) Progettazione e realizzazione di tecniche di virtualizzazione: il concetto di macchina virtuale e di hypervisor; virtualizzare la CPU; problematiche e soluzioni per la virtualizzazione dell'architettura x86; virtualizzare la memoria; virtualizzare l'I/O; il Cloud.
The course program consists of three main topics: 1) I/O Management: the architecture of the I/O subsystem; I/O interface; kernel I/O subsystems; storage devices; disk structure, management, and scheduling; RAID systems. power management. 2) File systems: file system organizations; file system structures; file system design and implementation techniques; mechanisms for file sharing and protection; disk free space management; disk space allocation; performance and efficiency of file systems; consistenza; backup and restore. 3) Virtualization: virtual machines and hypervisors; CPU virtualization, issues and solution for the virtualization of the x86 architecture; Memory virtualization; I/O virtualization; the Cloud.
Risultati di apprendimento attesi/Intended learning objectives
Raggiungimento degli obiettivi formativi, nel modo misurato dal voto d'esame. * Conoscenza e capacità di comprensione: apprendere i principi generali che sono alla base del comportamento, della progettazione, e dello sviluppo dei componenti dei sistemi operativi moderni che si occupano (1) della gestione dei dispositivi di I/O (ad es., il sotto-sistema di I/O), (2) della gestione della memoria di massa (ad es., i file system), e (3) della virtualizzazione delle risorse hardware (ad es., gli hypervisor). * Capacità di applicare conoscenza e comprensione: applicare i principi generali in un sistema reale. * Autonomia di giudizio: valutare autonomamente, in termini di efficienza di gestione e di prestazioni, le migliori tecniche per la gestione dei dispositivi di I/O e della memoria secondaria, e quelle per la virtualizzazione. * Abilità comunicative: comunicare e spiegare i principi fondamentali dei sistemi operativi legati alla gestione dei dispositivi di I/O e della memoria di massa, e alla tecniche per la virtualizzazione delle risorse hardware. * Capacità di apprendere: acquisire quelle conoscenze metodologiche necessarie per valutare e utilizzare tecniche per la gestione dei dispositivi di I/O e della memoria secondaria, così come tecniche per la virtualizzazione delle risorse hardware, non affrontate nel corso.
Achievement of the learning targets, as measured by the examination grade. * Knowledge and understanding: learning the general principles underneath the behavior, the design and the development of the components of modern operating systems in charge of (1) managing I/O devices (e.g., I/O subsystems), (2) managing mass storage (e.g., file systems), and (3) virtualizing hardware resources (e.g., hypervisors). * Applying knowledge and understanding: applying the general principles in a real system. * Making judgements: autonomously evaluating, in terms of efficiency of management and performance, the best techniques to manage I/O devices and mass storage, as well as for the virtualization of hardware resources. * Communication skills: communicating and justifying the fundamentals principles of operating systems related to the management of I/O devices and of mass storage as well as to the techniques for the virtualization of hardware resources. * Learning skills: autonomously learning the methodological skills needed to evaluate and use techniques for the management of I/O devices and mass storage, as well as for the virtualization of hardware resources, not studied during the course.
×
Stampa
Insegnamento
RETI
Codice
MF0577
Anno Accademico
2025/2026
Anno regolamento
2024/2025
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
GALANTINO STEFANO
CFU
6.0
Ore di lezione
48.0
Ore di studio individuale
102.0
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OBB
Categoria insegnamento
A
Anno
2
Periodo
Secondo Semestre
Sede
VERCELLI
Tipo di valutazione
V
Lingua insegnamento/Teaching language
ITALIANO
Italian
Contenuti/Content Summary
Il tema del corso è la rete Internet, affrontato secondo un approccio che partendo dalle applicazioni di rete scende via via in profondità, descrivendo il livello "trasporto" e quindi il livello "rete" dei protocolli TCP/IP.
The central theme of the course is the Internet approached starting from the network applications down to lower levels of the TCP/IP stack, describing the transport level and the network level.
Testi di riferimento/Textbooks
James F. Kurose, Keith W. Ross, Reti di Calcolatori e Internet - Un approccio top-down, Ottava Edizione
James F. Kurose, Keith W. Ross, Computer Networking: A Top-Down Approach 8th Edition
Obiettivi formativi/Mission
Approfondire le tematiche relative alle reti informatiche.
In depth learning of computer networks.
Prerequisiti/Required background knowledge
Conoscenze acquisite nei corsi di Architetture e Sistemi operativi.
The student should know the topics in the program of the Computer Architecture and Operating Systems courses.
Metodi didattici/Teaching methods
Lezioni e laboratorio in presenza.
Onsite lessons and lab activities.
Altre informazioni/Further information
Durante il corso vengono fatte esercitazioni volte ad approfondire la conoscenza degli strumenti presentati e dei concetti introdotti. Le studentesse e gli studenti con disabilità o con Disturbi Specifici dell’Apprendimento (DSA) o con Bisogni Educativi Speciali (BES) possono richiedere servizi e strumenti specifici a loro dedicati, rivolgendosi allo "Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti" e consultando la pagina dedicata del sito di Ateneo: https://uniupo.it/it/servizi/servizi-studenti-disabili-e-dsa. Le studentesse e gli studenti con disabilità, DSA, BES, una volta preso contatto con lo Staff di Ateneo, possono contattare la/il docente titolare dell'insegnamento in relazione alla declinazione delle modalità di esame, in merito agli aspetti didattici.
Along the course, exercises are done to deepen knowledge of the tools presented and concepts introduced. Students with physical disabilities, Learning Disabilities or Special Education Needs can request specific services and tools via the "Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti", consulting the University webpage: https://www.uniupo.it/en/services/services-students-physical-or-learning-disabilities. Students with disabilities, learning disabilities or special education needs, once they have contacted the University Staff, can refer to the tutor in charge of the course to define the examination modalities, concerning academic aspects.
Modalità di verifica dell'apprendimento/Assessment methods
Esame scritto con domande aperte riguardanti la parte teorica, e chiuse riguardanti il corso (sotto forma di quiz) e i laboratori (sotto forma di codice da completare). Nei quiz, la risposta esatta porta 1 punto, riposta non data 0 punti, risposta errata -0.3 punti.
The exam consists of a written test with open questions regarding the theory part, and closed questions regarding the course (in the form of quizzes) and labs (in the form of code to be completed). In quizzes, correct answer carries 1 point, answer not given 0 points, incorrect answer -0.3 points.
Programma esteso/Content
Il corso tratta i seguenti argomenti: − Introduzione intuitiva alla rete, descrivendone in modo qualitativo la struttura e le funzionalità. − Livello applicazione: protocolli per la gestione della posta elettronica, del WEB e del DNS. − Livello sessione: i socket, programmazione dei socket. − Livello trasporto: protocolli TCP e UDP − Livello rete: protocolli IP e ICMP. − Protocolli di instradamento: algoritmi di instradamento, nozione di Sistema Autonomo, protocolli RIP, OSPF, BGP. Oltre alla descrizione dei protocolli succitati, il corso si propone di fornire allo studente anche un'esperienza diretta delle problematiche connesse con la gestione delle reti informatiche. Pertanto, durante il percorso di studio, vengono tenute anche lezioni pratiche in cui vengono assegnati esercizi da svolgere in aula o a casa.
The course deals with the following: -Intuitive introduction to the network describing in a qualitative way its structure and functionalities. -Application level: protocols for e-mail, web and DNS. -Session level: socket and socket programming. -Transport level: protocols TCP and UDP -Network level: protocols IP and ICMP -Routing protocols: routing algorithms, notion of Autonomous System, protocols RIP, OSPF, BGP. Besides the description of the mentioned protocols, the course aims at endowing the student with a direct experience on management of computer networks and the related issues. Therefore, part of the course consists of practical lessons in which the student is given exercises to complete in lab hours or as a homework.
Risultati di apprendimento attesi/Intended learning objectives
Al fine di raggiungere le conoscenze e le competenze corrispondenti al livello minimo di sufficienza, allo studente si chiederà di dimostrare di conoscere e comprendere - i principi alla base della struttura della rete Internet e delle reti di trasmissione dati moderne, - le scelte progettuali necessarie per la creazione e la gestione di un sistema di trasmissione dati su larga scala, - le principali tecniche per il recupero degli errori e per il trasferimento affidabile dei dati, - la struttura di comunicazione e di programmazione dietro le applicazioni software distribuite secondo il modello client-server. Al termine del corso lo studente dovrà essere in grado di identificare gli aspetti chiave di una rete di trasmissione dati, comprendere i criteri alla base del funzionamento della rete Internet e delle reti con tecnologia IP, eventualmente applicandole all'esperienza quotidiana. Sarà anche in grado di comprendere le dinamiche di comunicazione alla base delle applicazioni distribuite.
To reach the minimum required levels of knowledge associated to the course, and the corresponding skills, the student is required to have a suitable understanding and knowledge of - the structure of the Internet and any modern computer network, - the design choices needed to create and manage a large-scale data transmission system, - the main techniques used for error recovery and to achieve a reliable data transfer - the general communication and programming structures used by distributed client-server applications. At the end of the course the student should be able to identify the key aspects of a data communication network, and to have a general understanding of the workings of the Internet and any network based on the IP technology, with the skill to apply these understandings to everyday scenarios. They will also be able to understand the communication dynamics behind the distributed software applications.
×
Stampa
Insegnamento
METODOLOGIE DI PROGRAMMAZIONE PER IL WEB
Codice
MF0437
Anno Accademico
2025/2026
Anno regolamento
2024/2025
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
RUFFO Giancarlo Francesco
CFU
6.0
Ore di lezione
48.0
Ore di studio individuale
102.0
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OBB
Categoria insegnamento
A
Anno
2
Periodo
Secondo Semestre
Sede
ALESSANDRIA
Tipo di valutazione
V
Lingua insegnamento/Teaching language
Italiano
Italian
Contenuti/Content Summary
Durante il corso saranno illustrati i concetti di base sull'utilizzo di markup languages come HTML5 e CSS3, i concetti più importanti relativi alla programmazione Web lato client (JavaScript) e lato server (Node.js), nonché le modalità di interazione con basi di dati relazionali. Le tecnologie suddette saranno usate anche per applicare i principi fondazionali dell'interazione uomo macchina, usabilità e accessibilità di siti e applicazioni web.
During the course, concepts related to markup languages like HTML5 will be introduced, together with concepts related to style notations like CCS3. The course will also cover client-side programming (JavaScript) and server-side programming (Node.js), as well as methods for interacting with relational databases. The above technologies will also be used to apply the foundational principles of human-machine interaction, usability, and accessibility of Web sites and applications.
Testi di riferimento/Textbooks
Materiale fornito dal docente su DIR. Deitel et al., Internet and World Wide Web: How to program (5th ed.), Prentice Hall R. Connolly, R. Hoar, Fundamentals of Web Development, Pearson R. Sebesta, Programming the World Wide Web, Pearson.
Material provided by the teacher on DIR. Deitel et al., Internet and World Wide Web: How to program (5th ed.), Prentice Hall R. Connolly, R. Hoar, Fundamentals of Web Development, Pearson R. Sebesta, Programming the World Wide Web, Pearson.
Obiettivi formativi/Mission
Scopo del corso è acquisire le capacità di base per progettare e realizzare l'interfaccia utente (front end) e la tecnologia di back end di siti ed applicazioni sul World Wide Web, secondo un'architettura 3-tier (client/application/data).
The course aims to acquire the basic skills to design and implement the user interface (front end) and back end technology of sites and applications on the World Wide Web, according to a 3-tier architecture (client/application/data).
Prerequisiti/Required background knowledge
Paradigmi di Programmazione. Sistemi Operativi
Programming Paradigms. Operating Systems
Metodi didattici/Teaching methods
Lezioni che introducono i concetti teorici ed esercitazioni in laboratorio che li applicano. Nelle lezioni si affrontano gli argomenti di teoria tramite presentazioni diapositive, con esempi e alcune domande per verificare l’apprendimento della classe. Nelle esercitazioni in laboratorio la classe è guidata nella realizzazione di semplici progetti volti a mettere in pratica le conoscenze teoriche acquisite. Le esercitazioni hanno lo scopo di stimolare la partecipazione attiva e lo sviluppo di uno spirito critico e autonomo della classe nel processo di apprendimento.
Lectures that introduce theoretical concepts and laboratory exercises that apply them. In the lessons, theoretical topics are addressed through slide presentations, with examples and some questions to verify students' learning. In laboratory exercises, students are guided in the implementation of simple projects aimed at putting into practice the theoretical knowledge acquired. The laboratory is intended to encourage active participation and the development of a critical and independent mindset among students throughout the learning process.
Altre informazioni/Further information
Monitoraggio del processo di apprendimento: durante l’insegnamento la classe interagirà con il docente per la soluzione di esercizi e di compiti di laboratorio. Le studentesse e gli studenti con disabilità o con Disturbi Specifici dell’Apprendimento (DSA) o con Bisogni Educativi Speciali (BES) possono richiedere servizi e strumenti specifici a loro dedicati rivolgendosi allo Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti e consultando la pagina dedicata del sito di Ateneo: https://uniupo.it/it/servizi/servizi-studenti- disabili-e-dsa Le studentesse e gli studenti con disabilità, DSA, BES, una volta preso contatto con lo Staff di Ateneo, possono contattare la/il docente titolare dell'insegnamento in relazione alla declinazione delle modalità di esame, in merito agli aspetti didattici.
Monitoring the learning process: during the course the students will interact with the teacher to solve exercises and lab assignments. Students with physical disabilities, Learning Disabilities or Special Education Needs can request specific services and tools via the Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti, consulting the University webpage: https://www.uniupo.it/en/services/services- students-physical-or-learning-disabilities Students with disabilities, learning disabilities or special education needs, once they have contacted the University Staff, can refer to the tutor in charge of the course to define the examination modalities, concerning academic aspects.
Modalità di verifica dell'apprendimento/Assessment methods
L'esame valuta le competenze attraverso una prova scritta obbligatoria a sbarramento progressivo e una discussione di progetto facoltativa. La prova scritta si svolge il giorno dell'appello e si articola in tre fasi di difficoltà crescente che determinano l'accesso ai livelli successivi e il voto base. Il superamento della Fase 1 (domande base) garantisce la sufficienza (18-20) e attesta la comprensione minima dei principi della programmazione Web. La Fase 2 (domande intermedie) porta il voto tra 21 e 23, dimostrando la capacità di applicare logiche di programmazione a problemi di media complessità. La Fase 3 (domande avanzate) consente di raggiungere un voto tra 24 e 26 e costituisce il requisito necessario per accedere alla fase successiva. Il Progetto e la relativa discussione orale sono riservati a chi ha superato la terza fase dello scritto e intende elevare il punteggio fino al massimo dei voti. Questa fase richiede lo sviluppo di una Web App full-stack su tema approvato dal docente, che deve essere consegnata via DIR in tempo in modo che il docente abbia a disposizione almeno tre giorni feriali prima del giorno della discussione concordato per valutare il progetto. Il voto finale viene assegnato dall'integrazione del punteggio dello scritto (con una variazione di circa +/- 5 punti) basata sulla completezza e correttezza tecnica dell'applicazione Web sviluppata, e la coerenza rispetto le specifiche che saranno assegnate al termine delle lezioni, oltre che sulla proprietà di linguaggio tecnico mostrata durante l'orale. L'eccellenza (30 e Lode) è riservata a chi, oltre al massimo dei voti nello scritto, presenti un progetto impeccabile e dimostri totale autonomia nella modifica e discussione critica del codice.
The exam assesses skills through a mandatory written test with a progressive threshold and an optional project discussion. The written test takes place during the exam session and is divided into three phases of increasing difficulty, which determine access to the subsequent levels and the base grade. Passing Phase 1 (basic questions) guarantees a passing grade (18-20) and certifies a basic understanding of web programming principles. Phase 2 (intermediate questions) increases the grade between 21 and 23, demonstrating the ability to apply programming logic to problems of medium complexity. Phase 3 (advanced questions) allows for a grade between 24 and 26 and is the necessary requirement for access to the next phase. The project and its oral discussion are reserved for those who have passed the third phase of the written test and intend to raise their score to the maximum grade. This phase requires the development of a full-stack web application on a topic approved by the instructor. The application must be submitted via direct mail in good time, allowing the instructor at least three working days before the agreed-upon discussion date to evaluate the project. The final grade is awarded based on the written exam score (with a variation of approximately +/- 5 points) based on the completeness and technical accuracy of the developed web application, its consistency with the specifications assigned at the end of the lessons, and the technical language demonstrated during the oral exam. Excellence (30 cum laude) is reserved for those who, in addition to achieving top marks in the written exam, present an impeccable project and demonstrate complete autonomy in editing and critically discussing the code.
Programma esteso/Content
Concetti base di programmazione e progettazione per il web Il linguaggio HTML (HTML5) Cascading Style Sheets (CSS3) e il responsive design Interazione Uomo Macchina per il Web Nozioni di Usabilità Accessibilità di pagine e applicazioni web Programmazione client-side: JavaScript, DOM, fetch Web API. Richiami di progettazione di basi di dati. Programmazione server-side: web server e architettura 3-tier, node.js e il framework Express Connessione con base di dati. Sviluppo REST API di tipo CRUD. Strumenti di sviluppo, dentro e fuori dal browser. Strumenti di debugging.
Basic concepts of web programming and design. HTML (HTML5) language. Cascading Style Sheets (CSS3) and responsive design. Human-Machine Interaction for the Web. Usability Concepts. Accessibility of web pages and applications. Client-side programming: JavaScript, DOM, fetch. Web API. Database design references. Server-side programming: web server and 3-tier architecture, node.js and the Express framework. Database connection. CRUD REST API development. Development tools, both inside and outside the browser. Debugging tools.
Risultati di apprendimento attesi/Intended learning objectives
Conoscenza e comprensione: familiarità con i principi alla base della realizzazione di siti ed applicazioni web di media complessità, dotati di interfacce utente usabili e accessibili, costituiti da testi, elementi multimediali e interattivi secondo un'architettura 3-tier (client/application/data). Capacità di applicare conoscenza e comprensione: abilità di progettare e realizzare un progetto usando i su citati strumenti e metodologie della programmazione Web basata su un'architettura 3-tier. Capacità critiche e di giudizio: abilità di riconoscere 1) buone e cattive pratiche di programmazione web, 2) quando è più o meno appropriato adottare una soluzione a livello client, a livello applicazione o a livello dei dati e 3) valutare la qualità architetturale di un progetto. Capacità di comunicare quanto si è appreso: padronanza della terminologia specifica della programmazione Web e miglioramento nell’abilità di lavoro in gruppo. Capacità di proseguire lo studio in modo autonomo: maggior facilità ad apprendere autonomamente l’utilizzo di altri linguaggi e tecnologie specifiche per lo sviluppo per il web, oltre ad altri paradigmi di progettazione architetturale.
Knowledge and understanding: familiarity with the principles of building complex, yet usable and accessible, web sites, interfaces and applications by following a 3-tier architecture (client/application/data). Applying knowledge and understanding: ability to design and implement a project using the above mentioned web programming tools, by following a 3-tier architecture Making judgments: ability to recognize 1) good and bad web programming practices, 2) when it is more appropriate to adopt a solution at client level, application level, or data level, and 3) to evaluate the architectural quality of a project. Communication Skills: mastering the specific terminology of web programming and improving teamwork skills. Learning Skills: ability to learn autonomously the use of other web development languages, technologies, and architectural design patterns
×
Stampa
Insegnamento
PARADIGMI DI PROGRAMMAZIONE
Codice
MF0363
Anno Accademico
2025/2026
Anno regolamento
2024/2025
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
RUFFO Giancarlo Francesco
CFU
9.0
Ore di lezione
72.0
Ore di studio individuale
153.0
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OBB
Categoria insegnamento
B
Anno
2
Periodo
Primo Semestre
Sede
ALESSANDRIA
Tipo di valutazione
V
Lingua insegnamento/Teaching language
Italiano
Italian
Contenuti/Content Summary
Il corso si compone di due parti. Nella prima viene introdotta la programmazione ad oggetti in Java e la metodologia di sviluppo di programmi basata su Test. Nella seconda parte viene introdotta la programmazione funzionale usando il linguaggio Python.
The course consists of two parts. In the first, object-oriented programming in Java and the Test-based program development methodology are introduced. In the second part, functional programming is introduced using the Python language.
Testi di riferimento/Textbooks
Paul J. Deitel - Harvey M. Deitel Programmare in Java, 11° edizione, Pearson. Luciano Ramalho, Fluent Python, 2nd Edition, O'Reilly Testo alternativo parte OO: Programmazione Java Claudio De Sio Cesari, Programmazione Java, Nuove Tecniche e Paradigmi, Hoepli Materiale fornito dai docenti
Paul J. Deitel - Harvey M. Deitel Programmare in Java, 11° edizione, Pearson. Luciano Ramalho, Fluent Python, 2nd Edition, O'Reilly OO alternative textbook: Programmazione Java Claudio De Sio Cesari, Programmazione Java, Nuove Tecniche e Paradigmi, Hoepli Material supplied by the teacher.
Obiettivi formativi/Mission
Scopo dell’insegnamento è quello di fornire alla classe fondamenti teorici della programmazione a oggetti e di quella funzionale. Ci si aspetta che la classe, una volta superato l'esame, sia in grado di: - modellare un applicativo individuandone le componenti e il paradigma migliore per la loro descrizione; - progettare ed implementare la soluzione scelta usando sia Java che Python; - realizzare test con JUnit; - avere padronanza del Collections framework di Java e di Python; - saper riconoscere e gestire i casi non standard tramite eccezioni.
The goal of this teaching is to know the theoretical foundations of object-oriented and functional programming. The student that passes the exam are supposed: - to model an application by identifying the components and the best paradigm for their description; - to design and implement the chosen solution using both Java and Python; - to perform tests with Junit; - to master the Java and Python Collections framework; - to be able to recognize and manage non-standard cases through exception.
Prerequisiti/Required background knowledge
Prerequisiti formali: superamento dei corsi di Programmazione 1 e 2. Prerequisiti sostanziali: padronanza dei principi della programmazione imperativa.
Formal prerequisites: passing grade in the Programming 1 and 2 courses. Substantial prerequisites: mastering the principles of imperative programming.
Metodi didattici/Teaching methods
Lezioni che introducono i concetti teorici ed esercitazioni in laboratorio che li applicano. Nelle lezioni si affrontano gli argomenti di teoria tramite presentazioni, con esempi e alcune domande per verificare l’apprendimento della classe. Nelle esercitazioni in laboratorio la classe viene guidata nella realizzazione di semplici esercizi volti a mettere in pratica le conoscenze teoriche acquisite.
Lectures that introduce theoretical concepts and laboratory exercises that apply them. In the lessons, theoretical topics are addressed through slide presentations, with examples and some questions to verify students' learning. In laboratory exercises, students are guided in the implementation of simple projects aimed at putting into practice the theoretical knowledge acquired.
Altre informazioni/Further information
Alla classe vengono proposti esercizi settimanali (facoltativi), il cui svolgimento, iniziato in laboratorio, deve essere completato a cura del medesimo. Gli esercizi vengono commentati e corretti sia singolarmente che in classe. Le prove finali (descritte nelle "modalità di verifica") valutano l'autonomia della classe nella progettazione, realizzazione e testing di programmi ad oggetti implementati in Java ed in Python. Le studentesse e gli studenti con disabilità o con Disturbi Specifici dell’Apprendimento (DSA) o con Bisogni Educativi Speciali (BES) possono richiedere servizi e strumenti specifici a loro dedicati rivolgendosi allo Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti e consultando la pagina dedicata del sito di Ateneo: https://uniupo.it/it/servizi/servizi-studenti- disabili-e-dsa Le studentesse e gli studenti con disabilità, DSA, BES, una volta preso contatto con lo Staff di Ateneo, possono contattare i docenti titolari dell'insegnamento in relazione alla declinazione delle modalità di esame, in merito agli aspetti didattici.
The student is presented with weekly exercises (optional), which solution is started during the lab sessions and that should be completed by the student. The exercises are discussed and corrected both individually and in the classroom. The final tests (described in " Assesment methods") assess the student autonomy with respect to the design, implementation and testing of object-oriented programs implemented in Java. Students with physical disabilities, Learning Disabilities or Special Education Needs can request specific services and tools via the Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti, consulting the University webpage: https://www.uniupo.it/en/services/services- students-physical-or-learning-disabilities Students with disabilities, learning disabilities or special education needs, once they have contacted the University Staff, can refer to the tutor in charge of the course to define the examination modalities, concerning academic aspects.
Modalità di verifica dell'apprendimento/Assessment methods
L'esame consiste di due parti: un esame scritto sui principi teorici e pratici della programmazione funzionale ed orientata agli oggetti e funzionale; la discussione di un progetto più articolato svolto in Java. L'esame esame scritto è volto ad accertare i concetti presentati a lezione, rispettivamente sugli argomenti di programmazione orientata agli oggetti e programmazione funzionale e devono superare prima che si possa sostenere la discussione del progetto. L'esame scritto è costituito da 4 domande/esercizi sulla parte OO e da 4 domande/esercizi sulla parte funzionale. Durante le lezioni, verranno presentati esempi degli esercizi che saranno assegnati in fase d’esame. La soglia minima per superare per superare lo scritto è di rispondere in modo corretto e completo ad almeno metà delle domande/esercizi. Lo scritto vale per il 65% della valutazione complessiva. La discussione orale sarà sostenibile solo dopo aver superato la soglia minima allo scritto e richiede lo svolgimento di un progetto personale o in gruppo volto ad accertare sia la capacità di strutturazione di un problema che la sua implementazione con l'uso delle librerie Java. Il progetto (consegnato prima della prova) viene discusso durante un esame orale e vale il 35% della valutazione complessiva. Il voto finale è determinato in maniera collegiale, tenendo conto della votazione delle due prove.
The exam consists of two parts: a written exam on the theoretical and practical principles of functional and object-oriented programming; and the discussion of a more complex project carried out in Java. The written exam is aimed at verifying the concepts presented in class, respectively on the topics of object-oriented programming and functional programming and must be passed before the discussion of the project. The written exam consists of 4 questions/exercises on the OO part and 4 questions/exercises on the functional part. During the lessons, examples of the exercises that will be assigned during the exam will be show cased. The minimum threshold to pass the written exam is to answer correctly and completely to at least half of the questions/exercises. The written exam is worth 65% of the overall grade. The oral discussion will be sustainable only after having passed the minimum threshold in the written exam and requires the completion of a personal or group project aimed at verifying both the ability to structure a problem and its implementation with the use of Java libraries. The project (submitted before the test) is discussed during an oral exam and is worth 35% of the overall grade. The final grade is determined collegially, taking into account the grades of the two tests.
Programma esteso/Content
Introduzione a Java. Oggetti, classi, metodi Tipi fondamentali, strutture sintattiche per controllo di flusso, array. Tipi involucro (per tipi primitivi) e auto-boxing/unboxing Interfacce, polimorfismo, ereditarietà Programmazione parametrica Gestione di eccezioni Panoramica delle librerie di base Caratteristiche funzionali di Java 8 e 9 e nuove librerie di collezioni Sviluppo guidato dai Test Pattern di programmazione Model-View-Controller Introduzione alla programmazione funzionale in Python. Funzioni come valori Funzioni di ordine superiore Dati immutabili Valutazione lazy Lavorare con le Collezioni: ricorsione e riduzione
Introduction to Java. Objects, classes, methods Basic types, syntactic structures for flow control, arrays. Wrappers for primitive types and auto-boxing/unboxing Interfaces, polymorphism, inheritance Parametric programming Exception handling Overview of the core libraries New functional features of Java 8 and 9 and new collections libraries Test-Driven Development Pattern Programming Model-View-Controller Introduction to functional programming in Python. Functions as values Higher order functions Immutable data Lazy evaluation Working with Collections: recursion and reduction
Risultati di apprendimento attesi/Intended learning objectives
Conoscenza e comprensione: familiarità con i principi della programmazione ad oggetti e funzionale, le architetture modello/vista/controllore, le metodologie di testing del software. Capacità di applicare conoscenza e comprensione: abilità di progettare e realizzare un progetto usando gli strumenti della programmazione ad oggetti con il linguaggio Java e funzionale con il linguaggio Python, derivando il codice dai test. Capacità critiche e di giudizio: abilità di riconoscere 1) buone e cattive pratiche di programmazione, 2) quando un paradigma è più o meno appropriato e 3) valutare la qualità architetturale di un progetto. Capacità di comunicare quanto si è appreso: padronanza della terminologia specifica della programmazione ad oggetti e funzionale e miglioramento nell’abilità di lavoro in gruppo. Capacità di proseguire lo studio in modo autonomo: maggior facilità ad apprendere autonomamente l’utilizzo di altri linguaggi e altre librerie con strutturazione oggetti e/o funzionale.
Knowledge and understanding: familiarity with the principles of object oriented and functional programming, the model/view/controller architecture and the methodologies for software testing. Applying knowledge and understanding: ability to design and implement a project using object programming tools, with the specific Java language, and functional programming tools, with Python language, and deriving code from tests. Making judgments: ability to recognize 1) good and bad programming practices, 2) when a programming paradigm is appropriate and 3) to evaluate the architectural quality of a project. Communication Skills: mastering the specific terminology of object programming and functional programming and improving teamwork skills. Learning Skills: ability to learn autonomously the use of other languages and other object oriented and/or functionally structured libraries.
×
Stampa
Insegnamento
PARADIGMI DI PROGRAMMAZIONE
Codice
MF0364
Anno Accademico
2025/2026
Anno regolamento
2024/2025
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
GIANNINI Paola
Docenti
CFU
9.0
Ore di lezione
72.0
Ore di studio individuale
153.0
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OBB
Categoria insegnamento
B
Anno
2
Periodo
Primo Semestre
Sede
VERCELLI
Tipo di valutazione
V
Lingua insegnamento/Teaching language
ITALIANO
Italian
Contenuti/Content Summary
Il corso si compone di due parti. Nella prima viene introdotta la programmazione ad oggetti in Java e la metodologia di sviluppo di programmi basata su Test. Nella seconda parte viene introdotta la programmazione funzionale usando il linguaggio Python.
The course consists of two parts. In the first, object-oriented programming in Java and the Test-based program development methodology are introduced. In the second part, functional programming is introduced using the Python language.
Testi di riferimento/Textbooks
Bruno, Corradini, Gervasi. Programmazione in Java, 2° edizione, AOGEO. Consigliati: Programmare con Python. Guida completa di Marco Buttu, pro Dgital Life Style. Core Python Programming (2nd Edition) di Wesley J Chun, Prentice Hall. Materiale fornito dal docente.
Bruno, Corradini, Gervasi. Programmazione in Java, 2° edizione, AOGEO. Recommended: Programmare con Python. Guida completa di Marco Buttu, pro Dgital Life Style. Core Python Programming (2nd Edition) di Wesley J Chun, Prentice Hall. Material supplied by the teacher.
Obiettivi formativi/Mission
Padronanza dei fondamenti teorici della programmazione a oggetti e di quella funzionale. Capacita' di modellare un applicativo individuandone le componenti e il paradigma migliore per la loro descrizione. Saper progettare e implementare la soluzione scelta usando sia Java che Python. Realizzarne test con JUnit. Avere padronanza del Collections framework di Java e di Python. Saper riconoscere e gestire i casi non standard tramite eccezioni.
Mastering of the theoretical foundations of object-oriented and functional programming. Being able to model an application by identifying the components and the best paradigm for their description. Knowing how to design and implement the chosen solution using both Java and Python. Perform tests with JUnit. Master the Java and Python Collections framework. Knowing how to recognize and manage non-standard cases through exceptions.
Prerequisiti/Required background knowledge
Prerequisiti: superamento dei corsi di Programmazione 1 e 2. Prerequisiti sostanziali: padronanza dei principi della programmazione imperativa.
Formal prerequisites: passing grade in the Programming 1 and 2 courses. Substantial prerequisites: mastering the principles of imperative programming.
Metodi didattici/Teaching methods
Lezioni frontali in aula ed esercitazioni in laboratorio. Nelle lezioni frontali si affrontano gli argomenti di teoria tramite presentazioni diapositive, con esempi e alcune domande per verificare l’apprendimento degli studenti. Nelle esercitazioni gli studenti sono guidati nella realizzazione di semplici progetti volti a mettere in pratica le conoscenze teoriche acquisite.
Classroom lessons and lab sessions. In classroom lessons are introduced the theoretical topics through slide presentations, with examples and some question sessions to test student understanding. In the lab sessions, students are guided in the implementation of simple projects designed to put into practice the theoretical knowledge acquired.
Altre informazioni/Further information
Allo studente/Alla studentessa vengono proposti esercizi (facoltativi), il cui svolgimento, iniziato in laboratorio, deve essere completato a cura del medesimo. Gli esercizi vengono commentati e corretti sia singolarmente che in classe. Le prove finali (descritte nelle "modalità di verifica") valutano l'autonomia dello studente/della studentessa nella progettazione, realizzazione e testing di programmi ad oggetti implementati in Java. Le studentesse e gli studenti con disabilità o con Disturbi Specifici dell’Apprendimento (DSA) o con Bisogni Educativi Speciali (BES) possono richiedere servizi e strumenti specifici a loro dedicati rivolgendosi allo Staff "Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti" e consultando la pagina dedicata del sito di Ateneo: https://uniupo.it/it/servizi/servizi-studenti-disabili-e-dsa Le studentesse e gli studenti con disabilità, DSA, BES, una volta preso contatto con lo Staff di Ateneo, possono contattare la/il docente titolare dell'insegnamento in relazione alla declinazione delle modalità di esame, in merito agli aspetti didattici.
The student is presented with weekly exercises (optional), which solution is started during the lab sessions and that should be completed by the student. The exercises are discussed and corrected both individually and in the classroom. The final tests (described in "modalità di verifica") assess the student autonomy with respect to the design, implementation and testing of object-oriented programs implemented in Java. Students with physical disabilities, Learning Disabilities or Special Education Needs can request specific services and tools to the Staff of the "Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti", consulting the University webpage: https://www.uniupo.it/en/services/services-students-physical-or-learning-disabilities Students with disabilities, learning disabilities or special education needs, once they have contacted the University Staff, can refer to the tutor in charge of the course to define the examination modalities, concerning academic aspects.
Modalità di verifica dell'apprendimento/Assessment methods
L'esame consiste di una prova in laboratorio che a sua volta è strutturata in due parti, che lo studente/la studentessa ha la possibilità di svolgere nello stesso appello lo stesso giorno o in appelli separati. Le prove di laboratorio sono una sulla programmazione ad oggetti ed una sulla programmazione funzionale. La prova in laboratorio è volta ad accertare: 1) per la programmazione ad oggetti la padronanza degli strumenti di programmazione introdotti (uso IDE, sviluppo di test) e dei concetti teorici presentati a lezione, 2) per la programmazione funzionale la capacità di interpretare espressioni condizionali, slices e funzioni e prevederne il risultato e quella di scrivere funzioni Python. 1) prevede l’implementazione di 1-2 classi con le relative classi di test usando l’IDE eclipse ed il test sulla conoscenza teorica la risposta a 2-3 domande sulla programmazione orientata ad oggetti in Java (senza uso di documentazione ). Il voto pesa per i 2/3 l'implementazione delle classi e per 1/3 la risposta alle domande. 2) prevede una la risposta (senza uso di documentazione) a 4 domande composte di un numero variabile di quesiti e poi l'implementazione di 4 funzioni (di cui un generatore). Il voto pesa per il 60% l'implementazione delle funzioni e per il 40% la risposta alle domande. La seconda parte richiede lo svolgimento di un progetto personalmente o in gruppo di massimo 2 persone. La consegna del progetto deve essere fatta prima dell'iscrizione alla prova di laboratorio di programmazione ad oggetti. Il progetto viene discusso durante un esame orale. nella valutazione della prova di programmazione ad oggetti il progetto conta per il 50% e la prova in laboratorio per il 50%. Nella valutazione finale la parte di programmazione ad oggetti pesa per i 2/3 del voto e quella di programmazione funzionale per 1/3, in coerenza con il numero di CFU erogati per le tre parti.
The exam consists of a laboratory test which in turn is structured in two parts, which the student has the possibility of carrying out in the same session on the same day or in separate sessions. The laboratory tests are one on object-oriented programming and one on functional programming. The laboratory test is aimed at ascertaining: 1) for object-oriented programming the mastery of the programming tools introduced (use of IDE, test development) and of the theoretical concepts presented in class, 2) for functional programming the ability to interpret expressions conditionals, slices and functions and predicting their results is that of writing Python functions. 1) involves the implementation of 1-2 classes with the related test classes using the eclipse IDE and as test on theoretical knowledge the answer to 2-3 questions on object-oriented programming in Java (without the use of documentation). The score weighs 2/3 on the implementation of the classes and 1/3 on the answer to the questions. 2) involves answering (without the use of documentation) to 4 questions made up of a variable number of sub-questions and then the implementation of 4 functions (of which a generator). The vote weighs 60% on the implementation of the functions and 40% on the answer to the questions. The second part requires carrying out a project personally or in a group of maximum 2 people. The project must be submitted before subscribing to the object-oriented programming laboratory test. The project is discussed during an oral exam. In the evaluation of the object-oriented programming test, the project counts for 50% and the laboratory test for 50%. In the final evaluation, the object-oriented programming part weighs 2/3 of the grade and the functional programming part weighs 1/3, in line with the number of credits awarded for the three parts.
Programma esteso/Content
Introduzione a Java. Oggetti, classi, metodi Tipi fondamentali, strutture sintattiche per controllo di flusso, array. Tipi involucro (per tipi primitivi) e auto-boxing/unboxing Interfacce, polimorfismo, ereditarietà Programmazione parametrica Gestione di eccezioni Panoramica delle librerie di base Caratteristiche funzionali di Java 8 e nuove librerie di collezioni Sviluppo guidato dai Test Pattern di programmazione Model-View-Controller e sviluppo GUI. Introduzione alla programmazione funzionale in Python. Funzioni come valori Funzioni di ordine superiore Dati immutabili Valutazione lazy Lavorare con le Collezioni: ricorsione e riduzione
Introduction to Java. Objects, classes, methods Basic types, syntactic structures for flow control, arrays. Wrappers for primitive types and auto-boxing/unboxing Interfaces, polymorphism, inheritance Parametric programming Exception handling Overview of the core libraries New functional features of Java 8 and new collections libraries Test-Driven Development Pattern Programming Model-View-Controller and development of GUI. Introduction to functional programming in Python. Functions as values Higher order functions Immutable data Lazy evaluation Working with Collections: recursion and reduction
Risultati di apprendimento attesi/Intended learning objectives
Conoscenza e capacità di comprensione: familiarità con i principi della programmazione ad oggetti e funzionale, con il linguaggio Java, le architetture modello/vista/controllore e con il linguaggio Python. Capacità di applicare conoscenza e comprensione: abilità di strutturare e realizzare un progetto usando gli strumenti della programmazione ad oggetti e funzionale derivando il codice dai test. Autonomia di giudizio: abilità di riconoscere 1) buone e cattive pratiche di programmazione, 2) quando un paradigma è più o meno appropriato e 3) e valutare la qualità architetturale di un progetto. Abilità comunicative: padronanza della terminologia specifica della programmazione ad oggetti e funzionale e miglioramento nell’abilità di lavoro in gruppo. Capacità di apprendere: maggior facilità ad apprendere autonomamente l’utilizzo di altri linguaggi e altre librerie con strutturazione oggetti e/o funzionale.
Knowledge and understanding: familiarity with the principles of object oriented and functional programming, with the specific Java language, the model/view/controller architecture and the language Python. Applying knowledge and understanding: ability to design and implement a project using object programming tools and deriving code from tests. Making judgments: ability to recognize 1) good and bad programming practices, 2) when a programming paradigm is more or less appropriate and 3) and to evaluate the architectural quality of a project. Communication Skills: mastering the specific terminology of object programming and functional programming and improving teamwork skills. Learning Skills: ability to learn autonomously the use of other languages and other object oriented and/or functionally structured libraries.
×
Stampa
Insegnamento
SISTEMI OPERATIVI
Codice
MF0365
Anno Accademico
2025/2026
Anno regolamento
2024/2025
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
THESEIDER DUPRE' Daniele
CFU
12.0
Ore di lezione
96.0
Ore di studio individuale
0.0
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Attività formativa integrata
Fruizione insegnamento
OBB
Anno
2
Periodo
Annuale
Sede
ALESSANDRIA
Tipo di valutazione
V
Lingua insegnamento/Teaching language
Italiano
Italian
Contenuti/Content Summary
Introduzione ai sistemi operativi, gestione di processi e threads, sincronizzazione dei processi e thread e programmazione concorrente, gestione della memoria. Gestione e sincronizzazione di processi e threads in Unix. Gestione dell'Input/Output. Progettazione e realizzazione dei file system. Tecniche di virtualizzazione di sistemi.
Introduction to operating system, process and thread management, process and thread synchronization and concurrent programming, memory management. Process and thread management and synchronization in Unix. I/O management. Design and implementation of file systems.
Testi di riferimento/Textbooks
Andrew S. Tanenbaum & Herbert Bos, "Modern Operating Systems: Global Edition, 5/E", Pearson, 2023. ISBN-13: 9781292459660. Disponibile anche in italiano: Andrew S. Tanenbaum & Herbert Bos, "I moderni sistemi operativi, 5/Ed," Pearson, 2023. ISBN: 9788891931955. Sulla piattaforma DIR è a disposizione materiale integrativo.
A. S. Tanenbaum, H. Bos. Modern Operating Systems, 5th edition. On the DIR platform students can find additional material.
Obiettivi formativi/Mission
Comprendere i principi e il ruolo dei sistemi operativi, apprendere le nozioni di base di gestione dei processi e dei threads, della gestione della memoria, della gestione dell'input/output, dei file systems e dei sistemi di virtualizzazione.
Understanding the role and the main principles of operating systems, the basic notions on process and thread managemen, memory management, I/O management, file systems, virtualization techniques.
Prerequisiti/Required background knowledge
Conoscenza degli argomenti di Architettura degli Elaboratori, Programmazione 1 e 2.
The notions from Computer Architecture, Programming 1 & 2
Metodi didattici/Teaching methods
Lezioni frontali in cui si mettono in evidenza gli obiettivi per cui sono state messi a punto i meccanismi le politiche di gestione. Esercitazioni in cui si applicano a casi concreti i concetti illustrati a lezione. Lezioni in laboratorio in cui si illustra il funzionamento di chiamate di sistema.
Lectures pointing out the goals of mechanisms and policies. Practical exercises in which the concepts illustrated during the lectures are applied in practice. Programming sessions in the computer lab where system calls are described and used.
Altre informazioni/Further information
Le studentesse e gli studenti con disabilità o con Disturbi Specifici dell’Apprendimento (DSA) o con Bisogni Educativi Speciali (BES) possono richiedere servizi e strumenti specifici a loro dedicati rivolgendosi allo Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti e consultando la pagina dedicata del sito di Ateneo: https://uniupo.it/it/servizi/servizi-studenti-disabili-e-dsa Le studentesse e gli studenti con disabilità, DSA, BES, una volta preso contatto con lo Staff di Ateneo, possono contattare la/il docente titolare dell'insegnamento in relazione alla declinazione delle modalità di esame, in merito agli aspetti didattici.
Students with physical disabilities, Learning Disabilities or Special Education Needs can request specific services and tools via the Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti, consulting the University webpage: https://www.uniupo.it/en/services/services-students-physical-or-learning-disabilities Students with disabilities, learning disabilities or special education needs, once they have contacted the University Staff, can refer to the tutor in charge of the course to define the examination modalities, concerning academic aspects.
Modalità di verifica dell'apprendimento/Assessment methods
Esame scritto consistente domande su argomenti diversi del corso, compresa la programmazione con l'uso di chiamate di sistema. Il voto finale, stabilito in modo collegiale dai docenti dei due moduli, richiede una valutazione sufficiente per entrambi i moduli, e terrà conto della valutazione ottenuta sulle singole domande, per le quali vengono valutate la correttezza e completezza delle risposte, la capacità di organizzare la conoscenza, la capacità di ragionamento critico, la capacità di applicare i concetti ai problemi applicativi, la qualità dell'esposizione, l'utilizzo appropriato del lessico specialistico. La valutazione complessiva misura la proporzione di raggiungimento dei diversi risultati di apprendimento attesi.
Written exam consisting questions on different course topics, including programming with system calls. The grade, jointly established by the lecturers, requires a sufficient grade for both course modules. It will be based on the score obtained on the single questions and assignments. The evaluation takes into account correctness and completeness of answers, the ability to organize knowledge and to reason, the ability to apply knowedge, the quality of presentation, the correct use of technical terms. The final evaluation measures the proportion of achievement of the learning objectives.
Programma esteso/Content
Nozioni fondamentali sull'architettura del sistema operativo di un elaboratore multiutente. Nucleo del sistema operativo. Gestione di processi e threads. Sincronizzazione di processi e threads e programmazione concorrente. Deadlocks. Gestione della memoria. Processi nel sistema Unix. Generalità sull'utilizzo delle chiamate di sistema Unix; chiamate di sistema per gestione di processi, libreria per threads. Chiamate di sistema e funzioni di libreria per sincronizzazione di processi e threads. Gestione dell'Input/Ouput: architettura del sottosistema di I/O; interfaccia di I/O per le applicazioni; sottosistema di I/O del kernel; struttura dei dispositivi di memorizzazione; struttura dei dischi; scheduling del disco; gestione dell’unitá a disco; sistemi RAID. Progettazione e sviluppo di driver di periferiche di Input/Output: struttura di un driver; i driver nel sistema operativo xv6; il driver IDE nel sistema operativo xv6. Progettazione e realizzazione di file system: il concetto di file e di file system; struttura della directory e del disco; condivisione di file; meccanismi di protezione dei file; struttura del file system; implementazione di file e directory; metodi di allocazione; gestione dello spazio libero; metodi di allocazione; efficienza e prestazioni; backup e ripristino. Tecniche di virtualizzazione delle risorse: virtualizzazione del processore: nozioni generali, tecniche software ed hardware per la virtualizzazione dei processori della famiglia xv6; virtualizzazione della memoria: nozioni generali, tecniche software ed hardware per la virtualizzazione della memoria virtuale.
General notions on the architecture of a multi-user system. Operating system kernel. Process and thread management. Process and thread synchronization, concurrent Programming. Deadlocks. Memory management. Processes in the Unix system. General notions on Unix system calls. System calls for process management, thread library. System calls and library functions for process and thread synchronization. I/O Management: the architecture of the I/O subsystem; I/O interface; kernel I/O subsystems; storage devices; disk structure, management, and scheduling; RAID systems. Device drivers: driver architecture; driver in the xv6 operating system; the IDE driver in the xv6 operating system. File systems: file system organizations; file system structures; file system design and implementation techniques; mechanisms for file sharing and protection; disk free space management; disk space allocation; performance and efficiency of file systems; backup and restore. Resource virtualization techniques: processor virtualization techniques: general concepts, software and hardware techniques for the virtualization of the x86 processor family; memory virtualization techniques: general concepts, software and hardware techniques for the memory virtualization in the x86 processor family
Risultati di apprendimento attesi/Intended learning objectives
Conoscenza e capacità di comprensione: Comprendere i principi generali e il ruolo dei sistemi operativi, le nozioni fondamentali relative ai processi, ai threads, alla gestione della memoria principale, di quelle secondarie e dei dispositivi di I/O, dei file system, alle tecniche di virtualizzazione. Capacità di applicare conoscenza e comprensione: Applicare i principi generali in un sistema reale in particolare mediante le chiamate di sistema di Unix. Raggiungere l'autonomia di giudizio rispetto al migliore uso di processi e threads e delle tecniche di gestione delle memorie, dei dispositivi di I/O e dei file systems. Essere in grado di comunicare e spiegare i principi fondamentali dei sistemi operativi.
Knowledge and understanding: Understanding the role and the main principles of operating systems, the basic notions on process and thread management, management of central memory, secondary storage, I/O devices, virtualization techniques. Applying knowledge and understanding: Applying the general principles in a real system, in particular, using Unix system calls. Making judgements: students will be able to autonomously evaluate the best ways to use processes and threads and manage system memories, I/O devices and file systems. Communication skills: students will learn to communicate and justify the basic principles of operative systems.
Moduli
Codice Insegnamento Settore Scientifico Disciplinare (SSD) Docenti Agenda web
MF0366SISTEMI OPERATIVI: SISTEMI OPERATIVI 1 INF/01 - INFORMATICA Theseider Dupre' Daniele
MF0367SISTEMI OPERATIVI: SISTEMI OPERATIVI 2 INF/01 - INFORMATICA Anglano Cosimo Filomeno
Mostra scheda insegnamento padre
×
Stampa
Insegnamento
SISTEMI OPERATIVI: SISTEMI OPERATIVI 1
Codice
MF0366
Anno Accademico
2025/2026
Anno regolamento
2024/2025
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
THESEIDER DUPRE' Daniele
CFU
6.0
Ore di lezione
48.0
Ore di studio individuale
102.0
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Modulo di sola Frequenza
Fruizione insegnamento
OBB
Categoria insegnamento
B
Anno
2
Periodo
Primo Semestre
Sede
ALESSANDRIA
Tipo di valutazione
G
Lingua insegnamento/Teaching language
ITALIANO
Italian
Contenuti/Content Summary
Introduzione ai sistemi operativi, gestione di processi e threads, sincronizzazione dei processi e thread e programmazione concorrente, gestione della memoria. Gestione e sincronizzazione di processi e threads in Unix.
Introduction to operating system, process and thread management, process and thread synchronization and concurrent programming, memory management. Process and thread management and synchronization in Unix.
Testi di riferimento/Textbooks
Andrew S. Tanenbaum & Herbert Bos, "Modern Operating Systems: Global Edition, 5/E", Pearson, 2023. ISBN-13: 9781292459660. Disponibile anche in italiano: Andrew S. Tanenbaum & Herbert Bos, "I moderni sistemi operativi, 5/Ed," Pearson, 2023. ISBN: 9788891931955.
Andrew S. Tanenbaum & Herbert Bos, "Modern Operating Systems: Global Edition, 5/E", Pearson, 2023. ISBN-13: 9781292459660. Also available in Italian: Andrew S. Tanenbaum & Herbert Bos, "I moderni sistemi operativi, 5/Ed," Pearson, 2023. ISBN: 9788891931955.
Obiettivi formativi/Mission
Comprendere i principi e il ruolo dei sistemi operativi, apprendere le nozioni di base di gestione dei processi e dei threads e della gestione della memoria.
Understanding the role and the main principles of operating systems, the basic notions on process and thread management and memory management.
Prerequisiti/Required background knowledge
Conoscenza degli argomenti di Architettura degli Elaboratori e Programmazione 1 e 2.
Subjects of Computer Architecture, Programming 1 & 2
Metodi didattici/Teaching methods
Lezioni frontali (2/3) in aula e in laboratorio (1/3). Le lezioni mettono in evidenza gli obiettivi per cui sono stati messi a punto i meccanismi e le politiche di gestione di processi e threads e di gestione della memoria. In laboratorio vengono esemplificati semplici programmi che fanno uso di processi e di threads. Sulla piattaforma DIR sono indicati i libri di testo suggeriti ed è a disposizione materiale aggiuntivo.
2/3 standard lectures and 1/3 sessions in the computer lab. Lectures point out the goals of mechanisms and policies for process and thread management and memory management. In the lab students are shown simple programs making use of processes and threads. On the DIR platform students can find the suggested textbooks and additional material.
Altre informazioni/Further information
Le studentesse e gli studenti con disabilità o con Disturbi Specifici dell’Apprendimento (DSA) o con Bisogni Educativi Speciali (BES) possono richiedere servizi e strumenti specifici a loro dedicati rivolgendosi allo Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti e consultando la pagina dedicata del sito di Ateneo: https://uniupo.it/it/servizi/servizi-studenti-disabili-e-dsa Le studentesse e gli studenti con disabilità, DSA, BES, una volta preso contatto con lo Staff di Ateneo, possono contattare la/il docente titolare dell'insegnamento in relazione alla declinazione delle modalità di esame, in merito agli aspetti didattici.
Students with physical disabilities, Learning Disabilities or Special Education Needs can request specific services and tools via the Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti, consulting the University webpage: https://www.uniupo.it/en/services/services-students-physical-or-learning-disabilities Students with disabilities, learning disabilities or special education needs, once they have contacted the University Staff, can refer to the tutor in charge of the course to define the examination modalities, concerning academic aspects.
Modalità di verifica dell'apprendimento/Assessment methods
Esame scritto consistente in 5-8 domande su argomenti diversi del corso, compresa la programmazione con l'uso di chiamate di sistema. Il voto terrà conto della valutazione ottenuta sulle singole domande, per le quali viene valutata fra l'altro la capacità di organizzare la conoscenza e di utilizzare il lessico specialistico. La valutazione misura la proporzione di raggiungimento dei diversi risultati di apprendimento attesi.
Written exam consisting in 5-8 questions on different course topics, including programming with system calls. The grade will be based on the score obtained on the single questions, where the evaluation takes into account the ability to organize knowledge and the appropriate use of technical terms. The evaluation measures the proportion of achievement of the learning objectives.
Programma esteso/Content
Nozioni fondamentali sull'architettura del sistema operativo di un elaboratore multiutente. Nucleo del sistema operativo. Gestione di processi e threads. Sincronizzazione di processi e threads e programmazione concorrente. Deadlocks. Gestione della memoria. Processi nel sistema Unix. Generalità sull'utilizzo delle chiamate di sistema Unix; chiamate di sistema per gestione di processi, libreria per threads. Chiamate di sistema e funzioni di libreria per sincronizzazione di processi e threads.
General notions on the architecture of a multi-user system. Operating system kernel. Process and thread management. Process and thread synchronization, concurrent Programming. Deadlocks. Memory management. Processes in the Unix system. General notions on Unix system calls. System calls for process management, thread library. System calls and library functions for process and thread synchronization.
Risultati di apprendimento attesi/Intended learning objectives
Conoscenza e capacità di comprensione: Comprendere i principi generali e il ruolo dei sistemi operativi, le nozioni fondamentali relative ai processi, ai threads e alla gestione della memoria. Capacità di applicare conoscenza e comprensione: Applicare i principi generali in un sistema reale in particolare mediante le chiamate di sistema di Unix. Raggiungere l'autonomia di giudizio rispetto al migliore uso di processi e threads e delle tecniche di gestione della memoria. Essere in grado di comunicare e spiegare i principi fondamentali dei sistemi operativi.
Knowledge and understanding: Understanding the role and the main principles of operating systems, the basic notions on process and thread management and memory management. Applying knowledge and understanding: Applying the general principles in a real system, in particular, using Unix system calls. Making judgements: students will be able to autonomously evaluate the best ways to use processes and threads and manage system memory. Communication skills: students will learn to communicate and justify the basic principles of operative systems.
Mostra scheda insegnamento padre
×
Stampa
Insegnamento
SISTEMI OPERATIVI: SISTEMI OPERATIVI 2
Codice
MF0367
Anno Accademico
2025/2026
Anno regolamento
2024/2025
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
THESEIDER DUPRE' Daniele
CFU
6.0
Ore di lezione
48.0
Ore di studio individuale
102.0
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Modulo di sola Frequenza
Fruizione insegnamento
OBB
Categoria insegnamento
B
Anno
2
Periodo
Secondo Semestre
Sede
ALESSANDRIA
Tipo di valutazione
G
Lingua insegnamento/Teaching language
ITALIANO
Italian
Contenuti/Content Summary
Il corso affronta il tema della progettazione e realizzazione dei sistemi operativi per quanto riguarda due componenti fondamentali degli stessi, ovvero: 1) la gestione delle periferiche di input/output 2) i file system
The course deals with the theme of design and implementation of operating systems with regard to two fundamental components of the same, namely: 1) management of input/output peripherals 2) file systems
Testi di riferimento/Textbooks
Andrew S. Tanenbaum & Herbert Bos, "Modern Operating Systems: Global Edition, 5/E", Pearson, 2023. ISBN-13: 9781292459660. Disponibile anche in italiano: Andrew S. Tanenbaum & Herbert Bos, "I moderni sistemi operativi, 5/Ed," Pearson, 2023. ISBN: 9788891931955.
Andrew S. Tanenbaum & Herbert Bos, "Modern Operating Systems: Global Edition, 5/E", Pearson, 2023. ISBN-13: 9781292459660. Also available in Italian: Andrew S. Tanenbaum & Herbert Bos, "I moderni sistemi operativi, 5/Ed," Pearson, 2023. ISBN: 9788891931955.
Obiettivi formativi/Mission
Enunciare i principi generali inerenti il funzionamento, la progettazione e la realizzazione delle componenti del sistema operativo preposte alla gestione delle memorie secondarie e dei dispositivi di I/O, con particolare riferimento al file system ed al sottosistema di I/O. Analizzare i requisiti di un sistema operativo da progettare per individuare le soluzioni progettuali e implementative più adatte ad esso. Saper applicare concretamente le metodologie e le tecniche per la progettazione e realizzazione dei meccanismi e delle politiche per la gestione delle memorie secondarie, dei dispositivi di I/O e dei file system. Saper descrivere i principi fondamentali del funzionamento, della progettazione e della realizzazione dei driver delle periferiche e dei file system.
State the general principles concerning the functioning, the design and the creation of the operating system components responsible for managing secondary memories and I/O devices, with particular reference to the file system and the I/O subsystem. Analyze the requirements of an operating system to be designed to identify design solutions and implementations best suited to it. Knowing how to concretely apply the methodologies and techniques for the design and implementation of mechanisms and policies for managing secondary storage, I/O devices, and file systems. Knowing how to describe the fundamental principles of the operation, design and implementation of device and file system drivers.
Prerequisiti/Required background knowledge
Architetture degli Elaboratori 1 e 2, Sistemi Operativi 1
Computer Architetture 1 and 2, Operating Systems 1
Metodi didattici/Teaching methods
Lezioni in aula nelle quali vengono esposte le nozioni fondamentali, corredate di esempi. Per ciascuno dei due macro-argomenti del corso (ovvero, gestione delle periferiche di input/out e file system) vengono confrontate diverse soluzioni progettuali e implementative. Nel corso delle lezioni in aula sono anche svolti, per i vari argomenti trattati, diversi quesiti tipici delle prove d'esame. Sulla piattaforma DIR sono indicati i libri di testo suggeriti ed è a disposizione del materiale, che ricalca gli argomenti trattati a lezione, risultando di aiuto anche per chi non fosse stato presente. Sono inoltre forniti alcuni esercizi ed esempi di prove d’esame.
Classroom lessons in which the fundamental notions are exposed, accompanied by examples. For each of the two macro-topics of the course (i.e. management of input/output devices and file system) different design and implementation solutions are compared. During the lessons in the classroom, various questions typical of the exams are also asked for the various topics covered. The suggested textbooks are indicated on the DIR platform, and material is available, which follows the topics treated in class, being of help even for those who were not present. Some exercises and exam examples are also provided.
Altre informazioni/Further information
Le competenze verificate in sede d'esame, necessarie per il superamento del corso, consistono nella dimostrazione di aver appreso i concetti di base relativi al funzionamento delle periferiche di I/O, dei meccanismi utilizzati dal sistema operativo per interagire con tali periferiche, delle metodologie di progettazione e realizzazione di driver per le periferiche, e delle metodologie di progettazione e realizzazione dei file system. Le studentesse e gli studenti con disabilità o con Disturbi Specifici dell’Apprendimento (DSA) o con Bisogni Educativi Speciali (BES) possono richiedere servizi e strumenti specifici a loro dedicati rivolgendosi allo Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti e consultando la pagina dedicata del sito di Ateneo: https://uniupo.it/it/servizi/servizi-studenti-disabili-e-dsa Le studentesse e gli studenti con disabilità, DSA, BES, una volta preso contatto con lo Staff di Ateneo, possono contattare la/il docente titolare dell'insegnamento in relazione alla declinazione delle modalità di esame, in merito agli aspetti didattici.
To pass the exam, the student has to prove the knowledge of the concepts underlying the operation of I/O devices, of the mechanisms employed by the operating system to manage with the above devices, and of the design and implementation methodologies and techniques for file systems. Students with physical disabilities, Learning Disabilities or Special Education Needs can request specific services and tools via the Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti, consulting the University webpage: https://www.uniupo.it/en/services/services-students-physical-or-learning-disabilities Students with disabilities, learning disabilities or special education needs, once they have contacted the University Staff, can refer to the tutor in charge of the course to define the examination modalities, concerning academic aspects.
Modalità di verifica dell'apprendimento/Assessment methods
L'esame si svolge in forma scritta, e consiste in un insieme di domande (sia aperte, sia chiuse) sugli argomenti trattati nel corso. Saranno presenti domande sia di natura teorico-metodologica, sia di natura applicativa. Gli esami si svolgeranno, ove possibile, mediante l'uso di piattaforme informatiche. Le valutazioni saranno formulate mediante voti espressi in trentesimi, e saranno determinate mediante la valutazione dei seguenti parametri: a) correttezza e completezza delle risposte fornite alle domande di cui si compone l'esame b) capacità di organizzare discorsivamente la conoscenza inerente le risposte formulate per le domande di natura teorico-metodologica, nonché la capacità di ragionamento critico che é necessaria applicare nella formulazione delle risposte a talune domande c) capacità di applicare correttamente concetti di natura teorico-metodologica alla formulazione delle risposte alle domande di natura applicativa d) qualità dell'esposizione e) competenza nell'impiego del lessico specialistico. Durante la prova d'esame non sarà consentita la consultazione di libri di testo, dispense del docente, e altro materiale didattico. I risultati delle prove scritte saranno comunicati mediante l'invio di un messaggio sulla piattaforma DIR. La valutazione misura la proporzione di raggiungimento dei diversi risultati di apprendimento attesi.
The exam takes place in written form, and consists of a set of questions (both open and closed) on the topics covered in the course. There will be questions both of a theoretical-methodological nature and of an applicative nature. The exams will take place, where possible, through the use of IT platforms. The evaluations will be formulated by means of marks expressed out of thirty, and will be determined by evaluating the following parameters: a) correctness and completeness of the answers given to the questions making up the exam b) ability to discursively organize the knowledge inherent in the answers formulated for the questions of a theoretical-methodological nature, as well as the capacity for critical reasoning that is necessary to apply in the formulation of the answers to certain questions c) ability to correctly apply theoretical-methodological concepts to the formulation of answers to applicative questions d) quality of the exposure e) competence in the use of the specialized vocabulary. During the exam, the consultation of textbooks, teacher's handouts and other teaching material will not be allowed. The results of the written tests will be communicated by sending a message on the DIR platform. The evaluation measures the proportion of achievement of the learning objectives.
Programma esteso/Content
1) Gestione dell'Input/Ouput: architettura del sottosistema di I/O; interfaccia di I/O per le applicazioni; sottosistema di I/O del kernel; struttura dei dispositivi di memorizzazione; struttura dei dischi; scheduling del disco; gestione dell’unitá a disco; sistemi RAID. 2) Progettazione e sviluppo di driver di periferiche di Input/Output: struttura di un driver; i driver nel sistema operativo xv6; il driver IDE nel sistema operativo xv6. 3) Progettazione e realizzazione di file system: il concetto di file e di file system; struttura della directory e del disco; condivisione di file; meccanismi di protezione dei file; struttura del file system; implementazione di file e directory; metodi di allocazione; gestione dello spazio libero; metodi di allocazione; efficienza e prestazioni; backup e ripristino.
1) I/O Management: the architecture of the I/O subsystem; I/O interface; kernel I/O subsystems; storage devices; disk structure, management, and scheduling; RAID systems; 2) Device drivers: driver architecture; driver in the xv6 operating system; the IDE driver in the xv6 operating system. 3) File systems: file system organizations; file system structures; file system design and implementation techniques; mechanisms for file sharing and protection; disk free space management; disk space allocation; performance and efficiency of file systems; backup and restore.
Risultati di apprendimento attesi/Intended learning objectives
Conoscenza e capacità di comprensione: familiarità con i principi generali inerenti il funzionamento, la progettazione e la realizzazione delle componenti del sistema operativo preposte alla gestione delle memorie secondarie e dei dispositivi di I/O, con particolare riferimento al file system ed al sottosistema di I/O. Capacitá di applicare conoscenza e comprensione: sapere applicare le tecniche di progettazione e realizzazione di driver per periferiche di I/O e di file system a scenari realistici proposti come esercizi. Autonomia di giudizio: analizzare e valutare autonomamente le soluzioni di progettazione e realizzazione più adeguate negli scenari proposti come esercizi da svolgere in maniera autonoma. Abilitá comunicative: essere in grado di comunicare e spiegare, utilizzando la terminologia formale specifica relativa alle tematiche trattate nel corso, i principi fondamentali del funzionamento, della progettazione e della realizzazione delle componenti del sistema operativo oggetto di trattazione. Capacitá ad apprendere: essere in grado di intraprendere con profitto studi successivi sui sistemi operativi.
Knowledge and understanding: familiarity with the general principles involved the operation, design and implementation of the system components operating system responsible for managing secondary memories and I/O devices, with particular reference to the file system and the I/O subsystem. Ability to apply knowledge and understanding: knowing how to apply techniques of design and implementation of drivers for I/O peripherals and file systems to realistic scenarios proposed as exercises. Making judgements: autonomously analyze and evaluate the design and construction solutions more appropriate in the scenarios proposed as exercises to be carried out autonomously. Communication skills: being able to communicate and explain, using terminology formal specification relating to the topics covered in the course, the fundamental principles of operation, the design and implementation of the operating system components subject of treatment. Ability to learn: being able to profitably undertake further studies on operating systems.
×
Stampa
Insegnamento
INGLESE (SEDE DI VERCELLI)
Codice
MF0397
Anno Accademico
2025/2026
Anno regolamento
2024/2025
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
AIRAGHI Laura
Docenti
CFU
6.0
Ore di lezione
50.0
Ore di studio individuale
100.0
Settore Scientifico Disciplinare (SSD)
NN -
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OBB
Categoria insegnamento
E
Anno
2
Periodo
Secondo Semestre
Sede
VERCELLI
Tipo di valutazione
G
Lingua insegnamento/Teaching language
INGLESE
English
Contenuti/Content Summary
Il corso di inglese di livello B2 è progettato per fornire alle studentesse e agli studenti gli strumenti per sviluppare una competenza linguistica solida, flessibile e autonoma, necessaria per affrontare con successo i contesti accademici e professionali in lingua inglese. Il percorso è diviso in moduli tematici e aiuta a sviluppare in modo completo le abilità di comprensione, produzione, interazione e mediazione della lingua, in situazioni tipiche dell’ambiente accademico. La struttura a moduli permette di affrontare passo dopo passo i diversi aspetti della comunicazione accademica: dall’orientamento iniziale allo studio e all’uso della lingua, alla capacità di comunicare oralmente tramite discussioni di gruppo o presentazioni, all’analisi di testi specialistici, alla scrittura di email formali e brevi testi accademici, all’ascolto di testi audio (o audiovisivi) seguito da esercizi di presa di appunti. L’ultimo modulo è pensato per prepararsi alla prova finale, con esercizi di autovalutazione e ripasso delle competenze apprese. Ogni modulo è sviluppato facendo uso di risorse digitali, che integrano esercitazioni interattive e materiali per lo studio autonomo.
The B2 level English course is designed to provide students with the tools to develop the solid, flexible and self-reliant language skills necessary to successfully interact in academic and professional contexts in English. The course is divided into thematic modules and helps students comprehensively develop their comprehension, production, interaction, and mediation skills in typical academic environment. The modular structure allows students to tackle the different aspects of academic communication step by step: from initial orientation to independent study and use of the language, to the ability to have oral discussions or giving presentations, the analysis of specialized texts, writing formal emails and short academic texts, and to listening to audio (or audiovisual) texts followed by note-taking exercises. The last module is designed to prepare students for the final exam, with self-assessment exercises and review of the skills learned. Each module is developed using digital resources, which integrate interactive exercises and materials for independent study.
Testi di riferimento/Textbooks
Risorse predisposte dal docente tramite la pagina DIR Risorse digitali Piattaforma Macmillan Materiali integrativi e di approfondimento Lessico e grammatica Raymond Murphy, English Grammar in Use, 5th Edition. Cambridge: Cambridge University Press, 2019. Michael McCarthy, Felicity O’Dell, English Collocations in Use Intermediate (Book with Answers): How Words Work Together for Fluent and Natural English. Cambridge: Cambridge University Press, 2017. Inglese per scopi accademici AA. VV. Academic English: Skills for Success, 3nd Edition. Oxford: Oxford University Press, 2025. Dick Smakman, Presenting in English: A Practical Guide. London: Routledge, 2024. Altri testi di riferimento saranno indicati dal docente.
Resources provided by the instructor via the DIR page Digital resources Macmillan platform Recommended textbooks and materials Vocabulary and grammar Raymond Murphy, English Grammar in Use, 5th Edition. Cambridge: Cambridge University Press, 2019. Michael McCarthy, Felicity O’Dell, English Collocations in Use Intermediate (Book with Answers): How Words Work Together for Fluent and Natural English. Cambridge: Cambridge University Press, 2017. English for academic purposes Various authors Academic English: Skills for Success, 3rd Edition. Oxford: Oxford University Press, 2025. Dick Smakman, Presenting in English: A Practical Guide. London: Routledge, 2024. Other recommended texts will be indicated by the lecturer.
Obiettivi formativi/Mission
L’insegnamento si propone di sviluppare la competenza linguistica in inglese a livello B2 del QCER, con particolare attenzione agli usi accademici e professionali della lingua. Al termine del corso, le studentesse e gli studenti saranno in grado di comprendere e utilizzare la lingua inglese in contesti quotidiani e/o accademici, interagendo in forma orale e scritta con coerenza, accuratezza lessicale e sintattica e adeguatezza pragmatica. Svilupperanno la capacità di produrre testi scritti e orali sia in contesti formali che informali. Inoltre, le studentesse e gli studenti avranno la possibilità di utilizzare risorse digitali e materiali multimediali a supporto dell’apprendimento linguistico e della comunicazione. Saranno anche in grado di autovalutare i propri progressi e di sviluppare strategie di apprendimento autonome, in linea con i principi del Quadro Comune Europeo di Riferimento per le Lingue (QCER) e con un approccio all’insegnamento della lingua basato sulle competenze.
The course aims to develop English language skills to CEFR level B2, with a particular focus on academic and professional use of the language. At the end of the course, students will be able to understand and critically use the English language in academic contexts, interacting in oral and written contexts with consistency, lexical and syntactic accuracy, appropriateness and consistency. They will develop the ability to produce written and oral texts, both in formal and informal contexts. In addition, students will have the possibility to use digital resources and multimedia materials to support language learning and communication. They will also be able to self-assess their progress and develop autonomous learning strategies, in line with the principles of the Common European Framework of Reference for Languages (CEFR) and a competence-based approach to language teaching.
Prerequisiti/Required background knowledge
Il corso di inglese si rivolge a studenti e studentesse che hanno raggiunto un livello di competenza di inglese pari almeno al livello B1 del CEFR. Tale requisito può essere attestato secondo tre modalità: 1) riconoscimento di una certificazione linguistica (vedi regolamento CLUPO link https://clupo.uniupo.it/lingua-inglese/riconoscimento-certificazioni ; 2) superamento dell’English Placement Test erogato da CLUPO; 3) frequenza e superamento del corso online di riallineamento su piattaforma Macmillan (link https://clupo.uniupo.it/lingua-inglese/english-placement-test)
The English course is aimed at students who have achieved a level of English proficiency equivalent to at least level B1 of the CEFR. This requirement can be certified in three ways: 1) by the recognition of a language certificate (see CLUPO regulations link https://clupo.uniupo.it/lingua-inglese/riconoscimento-certificazioni ; 2) by passing the English Placement Test administered by CLUPO ; 3) by attending and passing the online realignment course on the Macmillan platform (link https://clupo.uniupo.it/lingua-inglese/english-placement-test).
Metodi didattici/Teaching methods
Lezioni frontali, esercitazioni guidate, attività collaborative e progetti individuali o di gruppo. Gli studenti e le studentesse che sono impossibilitati a seguire le lezioni regolarmente possono fare riferimento alla piattaforma DIR e alla piattaforma Macmillan per tenersi aggiornati su ciò che viene svolto in classe. Il corso si avvale di metodologie didattiche inclusive, progettate per favorire la partecipazione attiva di tutti gli studenti e delle studentesse, nel rispetto delle differenze di genere, background linguistico e stili di apprendimento.
In-person lessons, guided exercises, collaborative activities, and individual or group projects. Students who are unable to attend classes regularly can refer to the DIR platform and the Macmillan platform to keep up with what is being done in class. The course employs inclusive teaching methods designed to encourage the active participation of all students, respecting differences in gender, linguistic background, and learning styles.
Altre informazioni/Further information
La piattaforma DIR costituisce lo strumento principale per la condivisione di materiali didattici. Il docente riporta nella pagina DIR del corso indicazioni dettagliate per frequentanti e non frequentanti rispetto a: programma del corso, materiali didattici, istruzioni per la prova d’esame. https://www.dir.uniupo.it/course/view.php?id=23767 https://www.dir.uniupo.it/course/view.php?id=23766 Per informazioni sulle modalità di iscrizione alla piattaforma Macmillan, riferirsi alle istruzioni sulla pagina DIR del corso Lo studente può sostenere lo stesso esame per un massimo di tre volte in un anno accademico. Per la disciplina degli esami di profitto si rimanda all'art. 35 del Regolamento didattico di Ateneo. Le studentesse e gli studenti con disabilità o con Disturbi Specifici dell’Apprendimento (DSA) o con Bisogni Educativi Speciali (BES) possono richiedere servizi e strumenti specifici a loro dedicati rivolgendosi all’ufficio di riferimento consultando la pagina dedicata del sito di Ateneo: https://uniupo.it/it/servizi/servizi-studentesse-e-studenti-condizione-di-disabilità-e-dsa. Le studentesse e gli studenti con disabilità, DSA, BES, una volta preso contatto con lo Staff di Ateneo, possono contattare la/il docente titolare dell'insegnamento in relazione alla declinazione delle modalità di esame, in merito agli aspetti didattici.
The DIR platform is the main tool for sharing teaching materials. The lecturer provides detailed information on the DIR page of the course for attending and non-attending students regarding: course programme, teaching materials, exam instructions. https://www.dir.uniupo.it/course/view.php?id=23767 https://www.dir.uniupo.it/course/view.php?id=23766 For information on how to register on the Macmillan platform, please refer to the instructions on the DIR page of the course. Students may take the same exam a maximum of three times in an academic year. For the regulations governing exams, please refer to Article 35 of the University’s Teaching Regulations. Students with physical disabilities, Learning Disabilities or Special Education Needs can request specific services and tools via reference office consulting the University webpage: https://www.uniupo.it/en/services/services-students-physical-or-learning-disabilities. Students with disabilities, learning disabilities or special education needs, once they have contacted the University Staff, can refer to the tutor in charge of the course to define the examination modalities, concerning academic aspects.
Modalità di verifica dell'apprendimento/Assessment methods
L’esame è organizzato in due prove distinte: la prima formativa e la seconda sommativa. La valutazione finale risulta dalla media ponderata delle due prove, con un’incidenza del 30% per la prova formativa e del 70% per quella sommativa, combinando così la rilevazione della padronanza delle competenze linguistiche e comunicative di livello B2, con l’osservazione della capacità di applicare in modo adeguato conoscenze e strategie linguistiche in contesti d’uso quotidiano e/o accademici. La prova formativa per le studentesse e gli studenti frequentanti e non frequentanti consiste in una attività orale che sarà discussa a lezione in una sessione dedicata. La prova sommativa per tutte le studentesse e gli studenti è composta da un test scritto in formato computer-based somministrato tramite la piattaforma esami.DIR. Il test è suddiviso in 3 sezioni dedicate rispettivamente alle abilità ricettive orali (ascolto), scritte (lettura) e alle competenze linguistiche (lingua in uso, grammatica e lessico). Ciascuna sezione è composta di 1-3 attività con domande a scelta multipla, abbinamento, esercizi di cloze o completamento. Il test è somministrato in presenza. La prova formativa sarà valutata come eccellente se dimostra piena padronanza dei contenuti, capacità analitiche e comunicative articolate, e adeguata autonomia nell’uso degli strumenti linguistici. Una valutazione discreta corrisponde a una conoscenza sufficiente ma limitata a contenuti essenziali, con espressione linguistica corretta ma non sempre adeguata e capacità di analisi parziale. La prova insufficiente rivela lacune rilevanti, uso inappropriato della lingua e mancanza di coerenza con il programma. Per superare la prova è necessario ottenere un punteggio pari o superiore a 18/30. Per partecipare alla sessione d’esame, le studentesse e gli studenti devono: aver soddisfatto i requisiti iniziali (EPT), svolto con successo la prova formativa durante il corso (prova in itinere) e iscriversi all’appello (entro e non oltre i tempi previsti tramite il sito dedicato ESSE3). La studentessa o lo studente può sostenere lo stesso esame per un massimo di tre volte in un anno accademico. Per la disciplina degli esami di profitto si rimanda all'art. 35 del Regolamento didattico di Ateneo.
The exam is organised into two separate tests: the first is formative and the second is summative. The final assessment is based on the weighted average of the two tests, with the formative test accounting for 30% and the summative test accounting for 70%, thus combining the assessment of B2-level language and communication skills with the observation of the ability to apply linguistic knowledge and strategies appropriately in daily and/or academic contexts. The formative test for both attending and non-attending students consists of an oral activity to be discussed in class in a dedicated session. The summative assessment for all students consists of a written test in computer-based format administered via the esami.DIR platform. The test is divided into three sections dedicated respectively to oral (listening) and written (reading) receptive skills and language skills (use of English). Each section consists of 1-3 activities with multiple-choice options, matching and cloze or completion exercises. The test is administered in person. The formative test will be assessed as excellent if it demonstrates full mastery of the content, articulate analytical and communication skills, and adequate autonomy in the use of linguistic tools. A fair assessment corresponds to sufficient knowledge but limited to essential content, with correct but not always adequate linguistic expression and partial analytical skills. An unsatisfactory assessment reveals significant gaps, inappropriate use of language and lack of consistency with the programme. To pass the test, a score of 18/30 or higher is required. In order to participate in the exam session, students must have met the initial requirements (EPT) and must have reserved a place to sit the exam (within the time restraints specified on the ESSE3 platform). Those who have completed and passed the formative test (mid-term exam) during the course will be permitted to sit a summative test (final exam). Students may take the same exam a maximum of three times in a calendar year. For the rules governing exams, please refer to Article 35 of the University’s Teaching Regulations.
Programma esteso/Content
Il corso di inglese di livello B2 è progettato per fornire alle studentesse e agli studenti gli strumenti per sviluppare una competenza linguistica solida, flessibile e autonoma, necessaria per affrontare con successo i contesti accademici e professionali in lingua inglese. Attraverso un approccio articolato in moduli tematici, il percorso si concentra sullo sviluppo integrato di abilità di ricezione, produzione, interazione e mediazione, contestualizzate in scenari tipici della vita accademica. Module 1: Orientamento Accademico e Autovalutazione: Presentazione del corso; autovalutazione iniziale delle competenze; utilizzo di risorse digitali a supporto dell’apprendimento. Module 2: Comunicazione Orale Formale e Presentazioni: Uso appropriato della terminologia specialistica; discussione su argomenti trattati a lezione con particolare attenzione alla pronuncia e all’intonazione; preparazione presentazioni con materiali di supporto. Module 3: Produzione Scritta Formale e Accademica Redazione di email, riassunti, saggi brevi, uso accurato del lessico specialistico; revisione e correzione dei testi prodotti. Module 4: Ascolto Attivo: Comprensione di conversazioni, discussioni su temi specialistici; presa di appunti su contenuti chiave e spiegazioni dettagliate; sintesi delle informazioni. Module 5: Preparazione alla Prova Finale e Autovalutazione: Simulazioni della prova finale; attività di autovalutazione delle competenze sviluppate.
The B2 level English course is designed to provide students with the tools to develop the solid, flexible and independent language skills necessary to successfully interact academic and professional contexts in English. Through an approach divided into thematic modules, the course focuses on the integrated development of reception, production, interaction and mediation skills, contextualised in typical academic scenarios. Module 1: Academic Orientation and Self-Assessment: Introduction to the course; initial self-assessment of skills; use of digital resources to support learning. Module 2: Formal Oral Communication and Presentations: Appropriate use of specialist terminology; discussion of topics covered in class with particular focus on pronunciation and intonation; preparation of presentations with supporting materials. Module 3: Formal and Academic Writing Drafting emails, summaries, short essays, accurate use of specialised vocabulary; revision and correction of texts produced. Module 4: Active Listening: Understanding conversations, discussions on specialised topics; note-taking on key content and detailed explanations; summarising information. Module 5: Preparation for the Final Exam and Self-Assessment: Simulations of the final exam; self-assessment of the skills developed.
Risultati di apprendimento attesi/Intended learning objectives
Conoscenza e capacità di comprensione Al termine del corso, le studentesse e gli studenti possiedono una conoscenza ampia e approfondita della lingua inglese nei contesti quotidiani e/o accademici, che consente la comprensione e l’analisi di testi specialistici e di interazioni orali. Dimostrano consapevolezza delle strutture linguistiche in diversi contesti. Capacità di applicare conoscenza e comprensione Le studentesse e gli studenti sono in grado di applicare autonomamente le proprie competenze linguistiche, coerenti e adeguati ai contesti quotidiani, accademici e professionali. Sono in grado di sostenere argomentazioni e di affrontare compiti comunicativi specifici del proprio ambito disciplinare. Utilizzano risorse digitali e strumenti multimediali a supporto dell’apprendimento linguistico e della comunicazione accademica. Autonomia di giudizio Le studentesse e gli studenti sono in grado di formulare giudizi autonomi e fondati sull’uso della lingua e sulle risorse di apprendimento, dimostrando capacità riflessive nel monitorare e valutare il proprio livello di competenza linguistica e le strategie adottate. È in grado di adattare tali strategie alle esigenze poste dai contesti di apprendimento accademico. Abilità comunicative Le studentesse e gli studenti sono in grado di partecipare in modo efficace e responsabile a interazioni, adeguando lingua, registro e strategie pragmatiche ai diversi interlocutori e agli scopi comunicativi. Dimostrano competenze nella negoziazione del significato, nella gestione del feedback e nella partecipazione attiva a scambi orali in diversi contesti. Capacità di apprendimento Le studentesse e gli studenti sono in grado di utilizzare strategie efficaci e risorse adeguate ai propri bisogni formativi. Dimostrano la capacità di riflettere sui propri progressi attraverso pratiche di autovalutazione formativa, in coerenza con i principi del Quadro Comune Europeo di Riferimento per le Lingue (QCER) e con un approccio all’insegnamento basato sulle competenze.
Competence and comprehension At the end of the course, students will have a broad and in-depth knowledge of English in daily and/or academic contexts, enabling them to understand and analyse specialised texts and oral interaction, demonstrating awareness of the linguistic structures in various contexts. Ability to apply knowledge and understanding Students will be able to independently apply their language skills in daily, academic and professional contexts. They will be able to have in-depth discussions and tackle specific communication tasks in their field of study. The use of digital resources and multimedia tools to support language learning and academic communication is expected. Self-assessment Students are able to formulate independent and informed judgements on language use and learning resources, demonstrating skills in monitoring and evaluating their own level of linguistic competence and the adopted strategies. They are able to adapt these strategies to the demands of academic learning contexts. Communication skills Students are able to participate effectively and responsibly in various contexts, adapting language, register and pragmatic strategies to different interlocutors and communicative purposes. They demonstrate competence in negotiating meaning, managing feedback and actively participating in oral exchanges in different situations. Learning skills Students are able to use effective strategies and resources appropriate to their educational needs. They demonstrate the ability to reflect on their progress through formative self-assessment practices, in line with the principles of the Common European Framework of Reference for Languages (CEFR) and a competence-based approach to teaching.
×
Stampa
Insegnamento
Algoritmi I
Codice
MF0034
Anno Accademico
2025/2026
Anno regolamento
2024/2025
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
MONTANI Stefania
CFU
9.0
Ore di lezione
72.0
Ore di studio individuale
153.0
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OBB
Categoria insegnamento
B
Anno
2
Periodo
Primo Semestre
Sede
ALESSANDRIA
Tipo di valutazione
V
Lingua insegnamento/Teaching language
Italiano.
Italian.
Contenuti/Content Summary
Metodi di analisi degli algoritmi. Strutture dati fondamentali. Algoritmi fondamentali (ricerca e ordinamento)
Algorithm analysis methods. Basic data structures. Fundamental sorting and search algorithms.
Testi di riferimento/Textbooks
Algoritmi e strutture dati 3/ed, Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano, MC Graw Hill
Algoritmi e strutture dati 3/ed, Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano, MC Graw Hill
Obiettivi formativi/Mission
Enunciare la definizione delle strutture dati fondamentali e saperle adottare in problemi proposti. Analizzare un algoritmo dato, sia esso ricorsivo che iterativo. Saper descrivere gli algoritmi di ricerca e di ordinamento. Saper applicare un algoritmo specifico, tra quelli visti, ad un problema dato. Essere in grado di darne un'implementazione in C.
Providing the definition of the fundamental data structures and being able to adopt them in the proposed exercises. Being able to analyse recursive and iterative algorithms. Being able to describe the sorting and search algorithms. Being able to apply a specific algorithm among them, to a given problem. Being able to provide its implementation in C.
Prerequisiti/Required background knowledge
Aver superato l’esame di Programmazione 1 e 2.
Having passed the Programming 1 and 2 exams.
Metodi didattici/Teaching methods
Lezioni in aula (eventualmente in modalità blended) ed esercitazioni in laboratorio. Nelle lezioni in aula vengono esposte le nozioni fondamentali, corredate di esempi. Vengono confrontate diverse strutture dati e diversi algoritmi mirati a risolvere problemi della stessa classe. Sulla piattaforma DIR sono indicati i libri di testo suggeriti ed è a disposizione delle studentesse e degli studenti del materiale che ricalca gli argomenti trattati a lezione, risultando di aiuto anche per chi non fosse stato presente. Sono inoltre forniti alcuni esercizi ed esempi di temi d’esame. In laboratorio la studentessa/lo studente viene guidata/o nell'implementazione degli algoritmi visti a lezione, realizzando per ciascun algoritmo alcune varianti, come esercizio propedeutico all'uso degli algoritmi per la soluzione di problemi. Sul DIR sono a disposizione, per ogni argomento trattato nelle lezioni in laboratorio, delle slide come riferimento e guida sia per chi ha seguito la lezione che per gli assenti.
Classroom lessons (possibly in a blended modality) and assisted exercises in the lab. Classroom lessons will present the fundamental concepts, and will also include example exercises. Different data structures and different algorithms meant to solve problems of the same class will be compared. On the DIR platform the students will find indications about the textbooks and materials, closely related to the topics presented at the lessons; this will help students that do not attend to easily follow the course development. Exercises and example tests will be provided as well. In the lab, the student is guided in the implementation of the algorithms studied in the classroom lessons, realizing some variations. On the DIR platform the students will find slides and additional material referring to the single lab lessons, as a guide also for those who did not attend.
Altre informazioni/Further information
Le studentesse e gli studenti con disabilità o con Disturbi Specifici dell’Apprendimento (DSA) o con Bisogni Educativi Speciali (BES) possono richiedere servizi e strumenti specifici a loro dedicati, rivolgendosi allo "Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti" e consultando la pagina dedicata del sito di Ateneo: https://uniupo.it/it/servizi/servizi-studenti-disabili-e-dsa. Le studentesse e gli studenti con disabilità, DSA, BES, una volta preso contatto con lo Staff di Ateneo, possono contattare la/il docente titolare dell'insegnamento in relazione alla declinazione delle modalità di esame, in merito agli aspetti didattici.
Students with physical disabilities, Learning Disabilities or Special Education Needs can request specific services and tools via the "Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti", consulting the University webpage: https://www.uniupo.it/en/services/services-students-physical-or-learning-disabilities. Students with disabilities, learning disabilities or special education needs, once they have contacted the University Staff, can refer to the tutor in charge of the course to define the examination modalities, concerning academic aspects.
Modalità di verifica dell'apprendimento/Assessment methods
Teoria: Esame scritto, eventualmente in forma di quiz. L'esame prevede tipicamente 4 esercizi, che verteranno su argomenti svolti in una parte diversa del programma: un esercizio riguarderà l’analisi della complessità, mentre gli altri riguarderanno argomenti tra: strutture dati fondamentali, algoritmi di ordinamento, algoritmi di ricerca tramite alberi, tabelle hash, code con priorità. Gli esercizi saranno volti a valutare le conoscenze teorico/pratiche e le capacità di giudizio (esercizi in cui viene richiesto allo studente/studentessa di esprimere una scelta o un giudizio) Il voto terra' conto dei risultati parziali ottenuti nei singoli esercizi. La stessa tipologia di esame potra' essere svolta oralmente, o integrata da una prova orale. Il quiz permette di raggiungere il voto di 24/30. Facoltativamente, si potrà anche completare una dimostrazione, arrivando potenzialmente al punteggio di 30 e lode (eccellenza in caso di dimostrazione corretta e completa). Tramite la dimostrazione si valuteranno le capacità comunicative (lessico e chiarezza nell’esposizione) e la capacità di apprendere (motivare i vari passi con senso critico). Chi supera la parte di teoria (svolgendo correttamente almeno 3 esercizi, criterio per la sufficienza) è ammessa/o immediatamente alla prova di laboratorio, che si svolge nella stessa giornata. Laboratorio: Esame pratico. L'esame prevede due esercizi in cui si richiede l'implementazione di due programmi in linguaggio C. Gli argomenti comprendono quelli presentati durante le lezioni frontali e in laboratorio. I due esercizi valgono 15 punti l'uno. La sufficienza richiede di raggiungere almeno 18 punti complessivi, mentre il corretto sviluppo di entrambi gli algoritmi e relativo programma permette di raggiungere 30 punti. La votazione finale terrà conto dei risultati finali ottenuti nelle prove d'esame di Teoria e di Laboratorio, pesando 2/3 la parte di teoria, consistentemente con il numero di crediti erogati.
Theory: Written test, possibly as a quiz. The test will be composed by typically 4 exercises, focused on different course topics. One exercise will involve complexity analysis, while the others will involve topics among: fundamental data structures, sorting algorithms, searching algorithms by using trees, hash tables, priority queues. The exercises will be devoted to evaluate the theoretical/practical knowledge and the ability of judgement (exercises where the student has to provide a choice or a judgement). The final score will take into account the partial scores of the different exercises. Possibly, the same exam type will be executed orally, or integrated by means of an oral examination. The test allows to get a maximum score of 24/30. Optionally, the student can complete a proof, possibly reaching a score of 30 cum laude (excellence if the proof is correct and complete). Through the proof, the communication skills (vocabulary and clarity in the exposition), and the learning skills (ability to critically motivate the steps) will be evaluated. Those who complete correctly 3 exercises at least, are immediately admitted to the practical part, which takes place on the same day. Lab: Practical examination. The exam consists of two exercises where it is asked to develop two programs in C language. Topics include those presented during classroom lessons and in the lab. Each exercise allows to get a score of 15/30. The exam is passed if the student gets at least a score of 18/30 overall, while correctly carrying out both exercises allows you to obtain a score of 30/30. The global score will take into account the final scores obtained in the Theory and Lab examinations, weighting 2/3 for the theory part, consistently with the number of credits.
Programma esteso/Content
- Introduzione agli algoritmi. - Modelli di analisi. notazioni asintotiche (notazioni O, Omega e Theta), limiti inferiori, teorema Master. - Tipi di dati astratti: pile, code, alberi. - Algoritmi di ordinamento: insertion sort, selection sort, merge sort, quicksort, heap sort, integer sort, radix sort - Alberi binari di ricerca. alberi AVL, alberi 2-3. - Tabelle hash. - Code con priorità. Tali aspetti sono poi meglio studiati in pratica durante le esercitazioni tenute in laboratorio. In particolare in laboratorio verranno implementati esercizi relativi ai seguenti argomenti: - Ricerca binaria e Algoritmi di ordinamento: Insertion sort, selection sort, merge sort, heap sort, quicksort; - Strutture dati dinamiche: liste, code, pile; - Strutture dati per problemi di ricerca: alberi binari di ricerca, Tabelle hash.
- Introduction to algorithms. - Analysis of algorithms: asymptotic notation (O, Omega and Theta notations). Master theorem on recurrences. - Abstract data types: stack, queue, tree. - Sorting algorithms: insertion sort, selection sort, merge sort, quicksort, heap sort, integer sort, radix sort - Search binary trees. AVL trees, 2-3 trees. - Hash tables. - Priority queues. These notions will then be further examined by means of their implementation. In particular, the exercises will refer to the following topics: - Binary search and Sorting algorithms: Insertion sort, selection sort, merge sort, heap sort, quicksort; - Dynamic data structures: lists, queues, stacks; - Data structures for search problems: binary search trees, hash tables.
Risultati di apprendimento attesi/Intended learning objectives
Conoscenza e capacità di comprensione: familiarità con l’analisi degli algoritmi, delle strutture dati di base, e di algoritmi fondamentali, con particolare riferimento agli algoritmi di ricerca ed ordinamento. Capacità di applicare conoscenza e comprensione:sapere applicare le tecniche di analisi negli esercizi, saper scrivere un algoritmo fondamentale o una sua variazione ideando soluzioni nuove in maniera tecnicamente corretta.Autonomia di giudizio: analizzare gli algoritmi ricorsivi; saper affrontare con spirito critico gli esercizi proposti, proponendo soluzioni corrette in modo autonomo.Abilità comunicative: aver acquisito e saper utilizzare la terminologia formale specifica relativa alle aree citate, saper giustificare le scelte fatte e comunicarle in modo chiaro anche a utenti meno esperti. Capacità di apprendere: Essere in grado di intraprendere con profitto studi successivi sugli elementi di algoritmica
Knowledge and understanding: knowing the analysis of algorithms and the data structures, focusing on search and sorting algorithms. Applying knowledge and understanding: Capability to apply the analysis techniques in the exercises, capability to write a classical algorithm, or a possible variation of it, proposing novel technically correct solutions.Making judgements: being able to analyze recursive algorithms; being able to afford in a critical way the exercises, proposing correct solutions in an autonomous way.Communication skills: knowing and correctly applying the terminology of the field, justifying the choices and clearly communicating them also to a non expert audience. Learning skills: Being able to proceed in more advanced algorithmic notions studies.
×
Stampa
Insegnamento
ALGORITMI 1
Codice
MF0209
Anno Accademico
2025/2026
Anno regolamento
2024/2025
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
MONTANI Stefania
CFU
9.0
Ore di lezione
72.0
Ore di studio individuale
153.0
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OBB
Categoria insegnamento
B
Anno
2
Periodo
Primo Semestre
Sede
VERCELLI
Tipo di valutazione
V
Lingua insegnamento/Teaching language
Italiano
Italian
Contenuti/Content Summary
Metodi di analisi degli algoritmi. Strutture dati fondamentali. Algoritmi fondamentali (ricerca e ordinamento)
Algorithm analysis methods. Basic data structures. Fundamental sorting and search algorithms.
Testi di riferimento/Textbooks
Algoritmi e strutture dati 3/ed, Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano, MC Graw Hill
Algoritmi e strutture dati 3/ed, Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano, MC Graw Hill
Obiettivi formativi/Mission
Enunciare la definizione delle strutture dati fondamentali e saperle adottare in problemi proposti. Analizzare un algoritmo dato, sia esso ricorsivo che iterativo. Saper descrivere gli algoritmi di ricerca e di ordinamento. Saper applicare un algoritmo specifico, tra quelli visti, ad un problema dato. Essere in grado di darne un'implementazione in C.
Providing the definition of the fundamental data structures and being able to adopt them in the proposed exercises. Being able to analyse recursive and iterative algorithms. Being able to describe the sorting and search algorithms. Being able to apply a specific algorithm among them, to a given problem. Being able to provide its implementation in C.
Prerequisiti/Required background knowledge
Aver superato l’esame di Programmazione 1 e 2.
Having passed the Programming 1 and 2 exams.
Metodi didattici/Teaching methods
Didattica Erogativa in aula (eventualmente in modalità blended) e Didattica Interattiva in laboratorio. Nelle lezioni in aula vengono esposte le nozioni fondamentali, corredate di esempi. Vengono confrontate diverse strutture dati, e algoritmi diversi mirati a risolvere problemi della stessa classe.Sulla piattaforma DIR sono indicati i libri di testo suggeriti ed è a disposizione delle studentesse e degli studenti del materiale, che ricalca gli argomenti trattati a lezione, risultando di aiuto anche per chi non fosse stato presente. Sono inoltre forniti alcuni esercizi ed esempi di temi d’esame. In laboratorio la studentessa/lo studente viene guidata/o nell'implementazione degli algoritmi visti a lezione, realizzando per ciascun algoritmo alcune varianti, come esercizio propedeutico all'uso degli algoritmi per la soluzione di problemi. Sul DIR sono a disposizione, per ogni argomento trattato nelle lezioni in laboratorio, delle slide come riferimento e guida sia per chi ha seguito la lezione che per gli assenti.
Frontal teaching in the classroom (possibly in blended modality) and interactive teaching in the lab. Classroom lessons will present the fundamental concepts, and will also include example exercises. Different data structures and different algorithms meant to solve problems of the same class will be compared. On the DIR platform the students will find indications about the textbooks and materials, closely related to the topics presented at the lessons; this will help students that do not attend to easily follow the course development. Exercises and example tests will be provided as well.In the lab, the student is guided in the implementation of the algorithms studied in the classroom lessons, realizing some variations. On the DIR platform the students will find slides and additional material referring to the single lab lessons, as a guide also for those who did not attend.
Altre informazioni/Further information
Le studentesse e gli studenti con disabilità o con Disturbi Specifici dell’Apprendimento (DSA) o con Bisogni Educativi Speciali (BES) possono richiedere servizi e strumenti specifici a loro dedicati rivolgendosi allo Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti e consultando la pagina dedicata del sito di Ateneo: https://uniupo.it/it/servizi/servizi-studenti- disabili-e-dsa Le studentesse e gli studenti con disabilità, DSA, BES, una volta preso contatto con lo Staff di Ateneo, possono contattare la/il docente titolare dell'insegnamento in relazione alla declinazione delle modalità di esame, in merito agli aspetti didattici.
Students with physical disabilities, Learning Disabilities or Special Education Needs can request specific services and tools via the Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti, consulting the University webpage: https://www.uniupo.it/en/services/services- students-physical-or-learning-disabilities Students with disabilities, learning disabilities or special education needs, once they have contacted the University Staff, can refer to the tutor in charge of the course to define the examination modalities, concerning academic aspects.
Modalità di verifica dell'apprendimento/Assessment methods
Teoria: Esame scritto, eventualmente in forma di quiz. L'esame prevede tipicamente 4 esercizi, che verteranno su argomenti svolti in una parte diversa del programma: un esercizio riguarderà l’analisi della complessità, mentre gli altri riguarderanno argomenti tra: strutture dati fondamentali, algoritmi di ordinamento, algoritmi di ricerca tramite alberi, tabelle hash, code con priorità. Gli esercizi saranno volti a valutare le conoscenze teorico/pratiche e le capacità di giudizio (esercizi in cui viene richiesto allo studente/studentessa di esprimere una scelta o un giudizio) Il voto terra' conto dei risultati parziali ottenuti nei singoli esercizi. La stessa tipologia di esame potra' essere svolta oralmente, o integrata da una prova orale. Il quiz permette di raggiungere il voto di 24/30. Facoltativamente, si potrà anche completare una dimostrazione, arrivando potenzialmente al punteggio di 30 e lode (eccellenza in caso di dimostrazione corretta e completa). Tramite la dimostrazione si valuteranno le capacità comunicative (lessico e chiarezza nell’esposizione) e la capacità di apprendere (motivare i vari passi con senso critico). Chi supera la parte di teoria (svolgendo correttamente almeno 3 esercizi, criterio per la sufficienza) è ammessa/o immediatamente alla prova di laboratorio, che si svolge nella stessa giornata. Laboratorio: Esame pratico. L'esame prevede due esercizi in cui si richiede l'implementazione di due programmi in linguaggio C. Gli argomenti comprendono quelli presentati durante le lezioni frontali e in laboratorio. I due esercizi valgono 15 punti l'uno. La sufficienza richiede di raggiungere almeno 18 punti complessivi, mentre il corretto sviluppo di entrambi gli algoritmi e relativo programma permette di raggiungere 30 punti. La votazione finale terrà conto dei risultati finali ottenuti nelle prove d'esame di Teoria e di Laboratorio, pesando 2/3 la parte di teoria, consistentemente con il numero di crediti erogati.
Theory: Written test, possibly as a quiz. The test will be composed by typically 4 exercises, focused on different course topics. One exercise will involve complexity analysis, while the others will involve  topics among: fundamental data structures, sorting algorithms, searching algorithms by using trees, hash tables, priority queues. The exercises will be devoted to evaluate the theoretical/practical knowledge  and the ability of judgement (exercises where the student has to provide a choice or a judgement). The final score will take into account the partial scores of the different exercises. Possibly, the same exam type will be executed orally, or integrated by means of an oral examination. The test allows to get a maximum score of 24/30. Optionally, the student can complete a proof, possibly reaching a score of 30 cum laude (excellence if the proof is correct and complete). Through the proof, the communication skills (vocabulary and clarity in the exposition),  and the learning skills (ability to critically motivate the steps) will be evaluated. Those who complete correctly 3 exercises at least, are immediately admitted to the practical part, which takes place on the same day. Lab: Practical examination. The exam consists of two exercises where it is asked to develop two programs in C language. Topics include those presented during classroom lessons and in the lab. Each exercise allows to get a score of 15/30. The exam is passed if the student gets at least a score of 18/30 overall, while correctly carrying out both exercises allows you to obtain a score of 30/30. The global score will take into account the final scores obtained in the Theory and Lab examinations, weighting 2/3 for the theory part, consistently with the number of credits.
Programma esteso/Content
- Introduzione agli algoritmi. - Modelli di analisi. Notazioni asintotiche: O, Omega e Theta. Limiti inferiori. Teorema Master. - Tipi di dato astratto: Pile , Code, Alberi. - Algoritmi di ordinamento: insertion sort, selection sort, merge sort, quicksort, heap sort, integer sort, radix sort - Alberi binari di Ricerca. Alberi AVL, alberi 2-3. - Tabelle Hash. - Code con priorità. Tali aspetti sono poi meglio studiati in pratica durante le esercitazioni tenute in laboratorio. In particolare in laboratorio verranno implementati esercizi relativi ai seguenti argomenti: Ricerca binaria e Algoritmi di ordinamento: Insertion sort, Selection sort, Merge sort, Heap sort, Quicksort; Strutture dati dinamiche: Liste, Code, Pile; Ricerca indicizzata:Alberi binari di ricerca Tabelle di hash
- Introduction to algorithms. - Analysis of algorithms: O, Omega and Theta notations. Master theorem on recurrences. - Abstract data structures: Stack, Queue, Tree. - Sorting algorithms: insertion sort, selection sort, merge sort, quicksort, heap sort, integer sort, radix sort. - Search binary trees. AVL trees, 2-3 trees. - Hash tables. - Priority queues. These notions will then be further examined by means of their implementation. In particular, the exercises will refer to the following topics: Sorting algorithms: Insertion sort, Selection sort, Merge sort, Heap sort, Quicksort; Dynamic data structures: Lists, Queues, Stacks; Trees; Hash tables.
Risultati di apprendimento attesi/Intended learning objectives
Conoscenza e capacità di comprensione: familiarità con l’analisi degli algoritmi, delle strutture dati di base, e di algoritmi fondamentali, con particolare riferimento agli algoritmi di ricerca ed ordinamento. Capacità di applicare conoscenza e comprensione:sapere applicare le tecniche di analisi negli esercizi, saper scrivere un algoritmo fondamentale o una sua variazione ideando soluzioni nuove in maniera tecnicamente corretta.Autonomia di giudizio: analizzare gli algoritmi ricorsivi; saper affrontare con spirito critico gli esercizi proposti, proponendo soluzioni corrette in modo autonomo.Abilità comunicative: aver acquisito e saper utilizzare la terminologia formale specifica relativa alle aree citate, saper giustificare le scelte fatte e comunicarle in modo chiaro anche a utenti meno esperti. Capacità di apprendere: Essere in grado di intraprendere con profitto studi successivi sugli elementi di algoritmica
Knowledge and understanding: knowing the analysis of algorithms and the data structures, focusing on search and sorting algorithms. Applying knowledge and understanding: Capability to apply the analysis techniques in the exercises, capability to write a classical algorithm, or a possible variation of it, proposing novel technically correct solutions.Making judgements: being able to analyze recursive algorithms; being able to afford in a critical way the exercises, proposing correct solutions in an autonomous way.Communication skills: knowing and correctly applying the terminology of the field, justifying the choices and clearly communicating them also to a non expert audience. Learning skills: Being able to proceed in more advanced algorithmic notions studies.
×
Stampa
Insegnamento
Algoritmi 2
Codice
MF0054
Anno Accademico
2025/2026
Anno regolamento
2024/2025
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
EGIDI Lavinia
Docenti
CFU
6.0
Ore di lezione
48.0
Ore di studio individuale
102.0
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OBB
Categoria insegnamento
B
Anno
2
Periodo
Secondo Semestre
Sede
ALESSANDRIA
Tipo di valutazione
V
Lingua insegnamento/Teaching language
Italiano.
Italian.
Contenuti/Content Summary
Tecniche algoritmiche, nozione di grafo e algoritmi su grafi
Algorithmic techniques, notion of graph and algorithms on graphs
Testi di riferimento/Textbooks
P. Crescenzi, G. Gambosi, R. Grossi, G. Rossi Strutture di dati e algoritmi, Seconda edizione, Pearson oppure C. Demetrescu, I.Finocchi, G.F. Italiano, Algoritmi e Strutture Dati, Seconda Edizione, McGraw-Hill oppure Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein Introduzione agli algoritmi e strutture dati, terza edizione, McGraw-Hill, 2010
P. Crescenzi, G. Gambosi, R. Grossi, G. Rossi Strutture di dati e algoritmi, Seconda edizione, Pearson or C. Demetrescu, I.Finocchi, G.F. Italiano, Algoritmi e Strutture Dati, Seconda Edizione, McGraw-Hill or Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein Introduction to Algorithms, third edition McGraw-Hill, 2010
Obiettivi formativi/Mission
L'insegnamento si propone di: -introdurre grafi, insegnare come modellare problemi con grafi e fornire strumenti per gestirli; -insegnare strategie algoritmiche greedy e di programmazione dinamica, e introdurre tecniche di approssimazione di soluzioni di algoritmi di ottimizzazione; -affinare le capacità nel problem solving e nella valutazione della complessità delle soluzioni.
The course's aim is: -presenting graphs, teaching how to model problems with graphs and giving tools to deal with them; -teaching the greedy and dynamic programming algorithmic strategies, presenting techniques of approximation of solutions of optimmization algorithms; -sharpen students' abilities in problem solving and evaluation of the complexity of solutions.
Prerequisiti/Required background knowledge
Prerequisiti formali: Non è possibile accedere alle prove d'esame senza aver già sostenuto e verbalizzato gli esami di Programmazione 1 e Programmazione 2. Prerequisiti sostanziali: Nozioni di programmazione insegnate nei corsi di Programmazione 1 e 2; le nozioni base di algoritmica insegnate nel corso di Algoritmi 1. Principi e linguaggi di programmazione insegnati nei corsi di semestri precedenti.
Formal prerequisites: Students cannot access final exams unless they have passed and verbalized the exams of Programming 1 and Programming 2. Substantial prerequisites: Fundamentals of programming taught in the first year courses on programming, basic algorithmic notions taught in Algorithms and Data Structures 1. Programming principles and languages taught in previous semesters courses.
Metodi didattici/Teaching methods
Il corso è insegnato in aula e in laboratorio. Nelle lezioni in aula vengono esposte le nozioni fondamentali, corredate di esempi, anche utilizzando un software di simulazione di algoritmi. Le dimostrazioni vengono presentate come strumento di analisi del problema per la progettazione degli algoritmi e come strumento di approfondimento delle tecniche, facendo leva sull'analogia tra gli algoritmi che utilizzano una stessa tecnica. Viene discussa l'utilità ai fini pratici dei diversi algoritmi per risolvere specifiche tipologie di problemi. Sulla piattaforma DIR sono indicati i libri di testo suggeriti ed è a disposizione del materiale integrativo aggiuntivo. Inoltre dopo ogni lezione, vengono indicati sul DIR gli argomenti trattati, con riferimento bibliografico, per chi non avesse seguito la lezione (ma anche per le persone presenti). In laboratorio le persone presenti vengono guidate nell'implementazione degli algoritmi visti a lezione, realizzando per ciascun algoritmo alcune varianti, come esercizio propedeutico all'uso degli algoritmi per la soluzione di problemi. Sul DIR sono a disposizione, per ogni argomento trattato nelle lezioni in laboratorio, delle slide come riferimento e guida sia per chi ha seguito la lezione che per le persone assenti. Durante la lezione viene usato lo strumento wooclap in modalità anonima per porre domande volte a verificare la comprensione degli argomenti e per stimolare la partecipazione. Sul DIR sono disponibili dei quiz di esercizio e autovalutazione (identici agli esercizi d'esame, presentano di volta in volta istanze diverse di domande di ciascun tipo) che forniscono un modo di misurarsi con gli argomenti presentati, in modo da scoprire eventuali proprie lacune o dubbi e poter quindi rivolgersi per tempo alla docente per chiarimenti. Inoltre, allo stesso scopo, sono fornite le specifiche di quesiti di programmazione d'esame usati in passato. Sul DIR sono disponibili anche link a registrazioni di lezioni, tenute dalla docente, divise per argomento, per agevolare coloro che non possono seguire le lezioni e come complemento e supporto anche per le persone che seguono.
The course is taught in class and in lab. In class the fundamental notions are presented, along with examples, also with the help of a software for simulation of algorithms. Proofs are presented as a tool to analyse the problems and design the algorithms, and as a tool to study in depth the algorithmic techniques, leveraging on analogies among algorithms that use the same techniques. The presentation is completed with discussions on the usage of each algorithm in practice to solve specific kinds of problems. On the DIR platform students can find the suggested textbooks and additional material. Moreover, after each lecture, the subject of the lecture is reported on the DIR together with relevant bibliographic references, especially (but not only) for those who couldn't attend the lecture. In lab the student is guided in impementing the algorithms seen in class, realizing for each algorithm a few variants as a propedeutic exercise to problem solving. On DIR the students can find, for each lab lecture, slides that work as reference and guide for those who attended the class and those who didn't. During lessons the teacher poses questions using the tool Wooclap in anonymous mode, to verify understanding of the topics and to spur participation. On the DIR course the students have access to quizzes that serve as practice and selfevaluation for exam exercises. The aim is to offer to the stundents a means to check their own progress and comprehension, so as to discover as early as possible their weaknesses and to be able to ask for explanations to the teacher. Moreover, to the same end, specifications of exam problems proposed in the past are available to the students. On the DIR course students find links to recordings of lessons, given by the instructor, and divided by argument. Such material is of help to students who cannot attend class but also a complement for everybody.
Altre informazioni/Further information
L'attività in laboratorio richiede una partecipazione attiva e individuale, che consente in tal modo di sviluppare abilità pratiche (le capacità di realizzare un programma). Inoltre, il coinvolgimento attivo induce le persone che seguono a porsi dei quesiti (e spesso di conseguenza a porne alla docente); in tal modo si realizza una regolare verifica del modo in cui gli argomenti vengono recepiti. In aggiunta, le domande poste tramite Wooclap permettono un costante monitoraggio delle difficoltà. Le persone con disabilità o con Disturbi Specifici dell’Apprendimento (DSA) o con Bisogni Educativi Speciali (BES) possono richiedere servizi e strumenti specifici a loro dedicati rivolgendosi allo Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti e consultando la pagina dedicata del sito di Ateneo: https://uniupo.it/it/servizi/servizi-studenti- disabili-e-dsa Le persone con disabilità, DSA, BES, una volta preso contatto con lo Staff di Ateneo, possono contattare la docente titolare dell'insegnamento in relazione alla declinazione delle modalità di esame, in merito agli aspetti didattici.
Hands-on activity requires active participation of the students, who this way develop pracatical skills (ability to implement a program). Moreover, the active involvement leads the students to ask themselves questions (and, as a consequence, often to ask questions to the instructor); this allows a regular monitoring of the way the subject is being understood. Morevoer the questions posed using Wooclap allow a constant monitoring of difficulties. Students with physical disabilities, Learning Disabilities or Special Education Needs can request specific services and tools via the Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti, consulting the University webpage: https://www.uniupo.it/en/services/services- students-physical-or-learning-disabilities Students with disabilities, learning disabilities or special education needs, once they have contacted the University Staff, can refer to the tutor in charge of the course to define the examination modalities, concerning academic aspects.
Modalità di verifica dell'apprendimento/Assessment methods
L'esame si articola in quattro domande: la prima è un semplice problema da risolvere con l'implementazione di uno degli algoritmi visti a lezione (in laboratorio); le successive tre sono domande orali. La parte orale si svolge nella stessa giornata (compatibilmente con il numero di persone iscritte) ed è tesa a verificare la comprensione della teoria alla base degli algoritmi insegnati nel corso, del funzionamento degli algoritmi classici presentati a lezione. Inoltre, nel corso della discussione si verifica che la persona abbia acquisito la terminologia formale, che sia in grado di spiegare i ragionamenti alla base della progettazione e della dimostrazione di correttezza degli algoritmi e che abbia acquisito capacità di analisi. Il numero di domande può variare a seconda del modo in cui vengono date le risponde (formalità, chiarezza, completezza, precisione,...) e della qualità del programma implementato. Si ottiene la sufficienza mostrando la padronanza della terminologia tecnica, e di conoscere le definizioni e gli algoritmi insegnati con loro complessità, e di restituire almeno una dimostrazione di correttezza. Si raggiunge l'eccellenza mostrando capacità di illustrare le dimostrazioni, mostrando comprensione dei ragionamenti, con una presentazione ragionata che non segue nei dettagli la presentazione fatta a lezione, e competenze per risolvere problemi. È possibile svolgere l'esame unicamente tramite quiz a correzione automatica in laboratorio. Si tratta di due quiz per un totale di 20 domande e non è richiesta conoscenza di dimostrazioni. Il primo quiz, di 10 domande, valuta conoscenze teoriche e il secondo quiz di 10 domande valuta la conoscenza del funzionamento degli algoritmi. La sufficienza si ottiene rispondendo in modo corretto complessivamente al 70% delle domande. Il voto massimo è 22/30, e si ottiene rispondendo correttamente al 90% delle domande. Per svolgere l'esame nella modalità a quiz è necessario esprimere la propria preferenza aggiungendo una nota al momento dell'iscrizione all'esame.
The exam consists of four questions: the first one proposes to the student a simple problem that requires implementation of one of the classical algorithms presented in class.; the following three are oral questions. The oral part of the exam takes place on the same day (as far as the number of participating students allows), and its aim is to verify that the student has understood the theory underlying the algorithms that are taught in the course and the classical algorithms presented in class. Moreover, it will be verified that the student has acquired the formal terminology, that they can explain the reasonings on which design and correctness proofs are based and that they have acquired analytical skills in reference to the course's matter. The number of questions can vary depending on the quality of the answers (with respect to clarity, completeness, precision, formality,...) and on the results of the programming task, since the final aim is to ascertain that the formative objectives have been reached. To achieve a passing score, it is necessary to show the ability to use the technical terminology, the knowledge of definitions, pseudocodes of algorithms and their complexity, and to present at least one proof of correctness.Excellence is reached showing ability to illustrate and explain the reasoning behind the design of the algorithms presented in the course, problem solving competence, ability to express all of this with the appropriate technical language and to present the topics clearly. In alternative, students can chose to take the exam with two autmatically corercted quizzes in lab, for a total of 20 questions. The first quiz (10 questions) ascertains knowledge of theroretical concepts, the second (10 questions) tests knowledge of the way the algorithms work. A passing score is achieved answering correctly to 70% of all of the questions. The maximum that can be achieved is 22/30, and it is achieved with at least 90% of correct answers. In order to take the quiz version of the exam, students must add a note expressing their preference when they enrol for the exam.
Programma esteso/Content
Grafi: -definizioni e terminologia: grafi non orientati, grafi orientati, archi pesati, cammini, cicli, componenti connesse e fortemente connesse: significato e utilizzo delle diverse varianti per modellare diverse situazioni; -rappresentazioni di grafi: matrici e liste di adiacenza e loro impatto dal punto di vista dell'implementazione -visita di grafi in ampiezza e in profondità, caratteristiche comuni e differenze delle varie visite proposte e loro applicazioni Tecnica golosa (greedy): -introduzione e algoritmi di esempio; -cammini minimi su grafo pesato da un nodo sorgente: algoritmo di Dijkstra e applicazioni -minimo albero ricoprente: algoritmi di Prim e Kruskal e loro utilizzo per risolvere problemi pratici -tecniche di dimostrazione di correttezza e loro funzione in relazione alla progettazione di algoritmi greedy -limiti della tecnica golosa Tecnica di programmazione dinamica -introduzione alla tecnica e proprietà della sottostruttura ottima; confronto con la tecnica golosa e con il divide et impera -aspetti e scelte di impementazione: algoritmi ricorsivi e iterativi, memoization -utilizzo dei teoremi della sottostruttura ottima per l'analisi di problemi e la progettazione di algoritmi di programmazione dinamica; analisi di problemi classici (massimo sottoinsieme indipendente, zaino, sottosequenza comune di lunghezza massima); -cammini minimi da un nodo sorgente: algoritmo di Bellman-Ford -cammini minimi da tutti i nodi: algoritmo di Floyd-Warshall Cenni sui problemi intrattabili: -classi P, NP ed NP completezza -algoritmi di complessità pseudopolinomiale -introduzione alle tecniche per affrontare i problemi difficili.
Graphs -definitions and terminology: undirected and directed graphs, weighted graphs, paths, cycles, connected components and strongly connected components: meaning and usage of each variant to model different situations; -representations: adjacency matrices and lists and their impact from the implementation point of view; -breadth first and depth first traversals: common characteristics and differences and applications Greedy technique: -introduction and examples; -single source shortest paths on a weighted graph: Dijkstra's algorithm and applications -minimum spanning tree: Prim's and Kruskal's algorithms and their use to solve practival problems; -techinques for proofs of correctness and their function in designing greedy algorithms; -limits of greedy techniques Dynamic programming technique: -introduction to the dynamic programming technique, optimal substructure property; comparison with greedy and divide et impera techniques; -implementation aspects and choices: recursive and iterative algorithms, memoization; -usage of the optimal substructure theorems to analyze problems and design synamic programming algorithms; analysis of classical problems (maximal independent set, knapsack, longest common subsequence); -single source shortest paths on a weighted graph: Bellman-Ford's algorithm -all-pairs shortest paths on a weighted graph: Floyd-Warshall's algorithm Introduction to intractable problems: -P, NP complexity classes and NP-completeness -pseudopolinomial algorithms -introduction to the techniques to deal with intractable problems.
Risultati di apprendimento attesi/Intended learning objectives
Conoscenza e capacità di comprensione: familiarità con il concetto di grafo, visita di grafo, tecnica greedy e di programmazione dinamica, e con alcuni problemi classici sui grafi. Capacità di applicare conoscenza e comprensione: - modellare problemi utilizzando grafi - risolvere problemi tramite l'implementazione di algoritmi classici di visita di grafi - risolvere problemi utilizzando tecniche greedy e di programmazione dinamica, anche implementando algoritmi classici Come aspetto collaterale il corso sviluppa le competenze di programmazione (in particolare nel linguaggio Java). Autonomia di giudizio: - analizzare correttezza e costo di algoritmi greedy e di programmazione dinamica - saper affrontare con spirito critico gli algoritmi proposti, distinguendo i diversi gradi di difficoltà, e apprezzando la necessità di utilizzare tecniche avanzate (appena accennate in questo corso) per problemi per i quali non si conoscono algoritmi polinomiali - riconoscere gli ingredienti comuni delle le strategie per la progettazione di algoritmi greedy o di programmazione dinamica per i problemi studiati Abilità comunicative: aver acquisito e saper utilizzare la terminologia formale specifica relativa alle aree citate. Capacità di apprendere: la comprensione delle tecniche algoritmiche e dei meccanismi di ragionamento e analisi relativi permetterà di comprendere e apprendere algoritmi per problemi diversi che utilizzano le tecniche algoritmiche presentate.
Knowledge and understanding: familiarity with the concepts of graph, graph traversal, greedy techinique, dynamic programming, and with some classical problems on graphs. Applying knowledge and understanding: - model problems using graphs - solve problems implementing classical graph traversal algorithms - solve problems using greedy or dynamic programming techniques, also implementing classical algorithms.As a byproduct, the course develops the students' programming skills (in Java, in particular). Making judgements: - analyze correctness and cost of greedy and dynamic programming algorithms - be able to critically view the algorithms taught in the course, distinguishing the different degrees of complexity, and realizing that it is the necessary to use advanced techniques (just mentioned in this course) for problems for which polynomial time algorithms are not known -recognize the ingredients common to the strategies for the design of greedy (resp. dynamic programming) algorithms presented in the course. Communication skills: the student must have acquired and must be able to use the specific formal terminology of the mentioned fields Learning skills: The comprehension of algorithmic techniques and of the machanisms of reasoning and analisys thereof will allow the students to understand and learn algorithms for different problems that are based on the algorithmic techinques taught in the course.
×
Stampa
Insegnamento
ALGORITMI 2
Codice
MF0210
Anno Accademico
2025/2026
Anno regolamento
2024/2025
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
PIOVESAN LUCA
Docenti
CFU
6.0
Ore di lezione
48.0
Ore di studio individuale
102.0
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OBB
Categoria insegnamento
B
Anno
2
Periodo
Secondo Semestre
Sede
VERCELLI
Tipo di valutazione
V
Lingua insegnamento/Teaching language
Italiano
Italian
Contenuti/Content Summary
Tecniche algoritmiche, nozione di grafo e algoritmi su grafi
Algorithmic techniques, notion of graph and algorithms on graphs
Testi di riferimento/Textbooks
- Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Algoritmi e strutture dati 2/ed MacGraw-Hill, 2008; ISBN: 978 88 386 64687 - Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein Introduction to Algorithms, third edition McGraw-Hill, 2010. (presente anche in italiano)
- Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Algoritmi e strutture dati 2/ed MacGraw-Hill, 2008; ISBN: 978 88 386 64687 - Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein Introduction to Algorithms, third edition McGraw-Hill, 2010
Obiettivi formativi/Mission
Conoscenza e capacità di comprensione: familiarità con il concetto di grafo, visita di grafo, tecnica greedy e di programmazione dinamica, e con alcuni problemi classici sui grafi. Capacità di applicare conoscenza e comprensione: - modellare problemi utilizzando grafi - risolvere problemi tramite l'implementazione di algoritmi classici di visita di grafi - risolvere problemi utilizzando tecniche greedy e di programmazione dinamica, anche implementando algoritmi classici Come aspetto collaterale il corso sviluppa le competenze di programmazione (in particolare nel linguaggio Java). Autonomia di giudizio: - analizzare correttezza e costo di algoritmi greedy e di programmazione dinamica - saper affrontare con spirito critico gli algoritmi proposti, distinguendo i diversi gradi di difficoltà, e apprezzando la necessità di utilizzare tecniche avanzate (appena accennate in questo corso) per problemi per i quali non si conoscono algoritmi polinomiali - riconoscere gli ingredienti comuni delle le strategie per la progettazione di algoritmi greedy o di programmazione dinamica per i problemi studiati Abilità comunicative: aver acquisito e saper utilizzare la terminologia formale specifica relativa alle aree citate. Capacità di apprendere: la comprensione delle tecniche algoritmiche e dei meccanismi di ragionamento e analisi relativi permetterà agli studenti di comprendere e apprendere algoritmi per problemi diversi che utilizzano le tecniche algoritmiche presentate.
Knowledge and understanding: familiarity with the concepts of graph, graph traversal, greedy techinique, dynamic programming, and with some classical problems on graphs. Applying knowledge and understanding:- model problems using graphs - solve problems implementing classical graph traversal algorithms - solve problems using greedy or dynamic programming techniques, also implementing classical algorithms.As a byproduct, the course develops the students' programming skills (in Java, in particular). Making judgements:- analyze correctness and cost of greedy and dynamic programming algorithms- be able to critically view the algorithms taught in the course, distinguishing the different degrees of complexity, and realizing that it is the necessary to use advanced techniques (just mentioned in this course) for problems for which polynomial time algorithms are not known-recognize the ingredients common to the strategies for the design of greedy (resp. dynamic programming) algorithms presented in the course. Communication skills: the student must have acquired and must be able to use the specific formal terminology of the mentioned fields Learning skills: The comprehension of algorithmic techniques and of the machanisms of reasoning and analisys thereof will allow the students to understand and learn algorithms for different problems that are based on the algorithmic techinques taught in the course.
Prerequisiti/Required background knowledge
Prerequisiti formali: Lo studente non può accedere alle prove d'esame se non ha già sostenuto e verbalizzato gli esami di Programmazione 1 e Programmazione 2. Prerequisiti sostanziali: Nozioni di programmazione insegnate nei corsi di Programmazione 1 e 2; le nozioni base di algoritmica insegnate nel corso di Algoritmi 1. Principi e linguaggi di programmazione insegnati nei corsi di semestri precedenti.
Formal prerequisites: Students cannot access final exams unless they have passed and verbalized the exams of Programming 1 and Programming 2. Substantial prerequisites: Fundamentals of programming taught in the first year courses on programming, basic algorithmic notions taught in Algorithms and Data Structures 1. Programming principles and languages taught in previous semesters courses.
Metodi didattici/Teaching methods
Il corso è insegnato in aula e in laboratorio. Nelle lezioni in aula vengono esposte le nozioni fondamentali, corredate di esempi, anche utilizzando un software di simulazione di algoritmi. Le dimostrazioni vengono presentate come strumento di approfondimento delle tecniche, facendo leva sull'analogia tra gli algoritmi che utilizzano una stessa tecnica. Viene discussa l'utilità ai fini pratici dei diversi algoritmi per risolvere specifiche tipologie di problemi. In laboratorio lo studente viene guidato nell'implementazione degli algoritmi visti a lezione, realizzando per ciascun algoritmo diverse varianti, in modo da apprezzare le informazioni che si possono trarre dall'utilizzo di ciascun algoritmo. Sul sito DIR del corso sono disponibili dei quiz di esercizio e autovalutazione che forniscono allo studente un modo di misurarsi con gli argomenti presentati, in modo da scoprire eventuali proprie lacune o dubbi e poter quindi rivolgersi per tempo al docente per chiarimenti.
The course is taught in class and in lab. In class the fundamental notions are presented, along with examples, also with the help of a software for simulation of algorithms. Proofs are presented as a tool to study in depth the algorithmic techniques, leveraging on analogies among algorithms that use the same techniques. The presentation is completed with discussions on the usage of each algorithm in practice to solve specific kinds of problems. In lab the student is guided in implementing the algorithms seen in class, realizing for each algorithm a few variants as a propaedeutic exercise to problem solving. On the DIR site of the course the students have access to quizzes that serve as practice and self-evaluation. The aim is to offer to the students a means to check their own progress and comprehension, so as to discover as early as possible their weaknesses and to be able to ask for explanations to the teacher.
Altre informazioni/Further information
L'attività in laboratorio richiede una partecipazione attiva e individuale degli studenti, che in tal modo sviluppano abilità pratiche (le capacità di realizzare un programma). Inoltre, il coinvolgimento attivo li induce a porsi dei quesiti (e spesso di conseguenza a porne al docente); in tal modo si realizza una regolare verifica del modo in cui gli argomenti vengono recepiti. Le studentesse e gli studenti con disabilità o con Disturbi Specifici dell’Apprendimento (DSA) o con Bisogni Educativi Speciali (BES) possono richiedere servizi e strumenti specifici a loro dedicati rivolgendosi allo Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti e consultando la pagina dedicata del sito di Ateneo: https://uniupo.it/it/servizi/servizi-studenti- disabili-e-dsa Le studentesse e gli studenti con disabilità, DSA, BES, una volta preso contatto con lo Staff di Ateneo, possono contattare la/il docente titolare dell'insegnamento in relazione alla declinazione delle modalità di esame, in merito agli aspetti didattici.
Hands-on activity requires active participation of the students, who this way develop prcatical skills (ability to implement a program). Moreover, he active involvement leads the students to ask themselves questions (and, as a consequence, often to ask questions to the instructor); this allows a regular monitoring of the way the subject is being understood. Students with physical disabilities, Learning Disabilities or Special Education Needs can request specific services and tools via the Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti, consulting the University webpage: https://www.uniupo.it/en/services/services- students-physical-or-learning-disabilities Students with disabilities, learning disabilities or special education needs, once they have contacted the University Staff, can refer to the tutor in charge of the course to define the examination modalities, concerning academic aspects.
Modalità di verifica dell'apprendimento/Assessment methods
Esame scritto seguito da orale (con valutazione degli esercizi svolti in laboratorio) L'esame scritto ha lo scopo di verificare che lo studente abbia capito gli algoritmi classici e il loro utilizzo, e sia in grado di applicarli alla risoluzione di problemi. Principalmente, sono richiesti due tipi di competenze: (i) aver capito, e saper utilizzare in casi semplici, gli algoritmi classici visti a lezione e (ii) saper risolvere, tramite l’implementazione o la modifica di un algoritmo classico, dei semplici problemi posti. L’esame scritto è solitamente composto da 5 domande, delle quali - almeno una richiede l’applicazione di un algoritmo standard sui grafi, - almeno una richiede l’applicazione di un algoritmo greedy o di programmazione dinamica - almeno una richiede di modificare un algoritmo conosciuto per affrontare un problema posto - almeno una riguarda la teoria, con risposte aperte o a crocette V/F Lo studente che supera l’esame scritto (con votazione >= 18) può accedere alla prova orale. L’esame orale verifica le competenze teoriche. In particolare, si verifica che lo studente abbia acquisito la terminologia formale e la capacità di analisi. Vengono poste delle domande (solitamente 3, il cui numero può variare in base alle risposte date) che hanno come obbiettivo: (i) verifica della familiarità con il concetto di grafo nelle sue varianti, (ii) capacità di analisi di algoritmi di visita di grafi, (iii) capacità di analisi di algoritmi greedy e di programmazione dinamica, (iv) basilare sensibilità su come affrontare problemi difficili. Al termine della prova orale viene espresso un voto che tiene conto per il 50% della prova scritta e per l’altro 50% della prova orale. Se lo studente svolge gli esercizi di laboratorio (obbligatori per studenti frequentanti) il voto della prova orale può essere modificato dalla valutazione del laboratorio (l’ammontare del modificatore è comunicato ad inizio corso)
Written exam followed by oral exam (with evaluation of the lab exercises) The aim of the written exam is to verify that the student has understood the classical algorithms and their usage, and is capable of applying them to problem solving. Two types of skills are required: (i) understanding the classical algorithms presented in class and using them on simple instances; (ii) solving simple problems by implementing (or modifying) one of the classical algorithms presented in class. Usually, a written exam contains 5 questions, among which: - at least a question involving the application of a standard graph algorithm - at least a question involving the application of a greedy or dynamic programming algorithm - at least a question involving the modification of a known algorithm - at least a theoretical question (with open or closed answers) A student obtaining a mark >= 18 accesses the oral examination. The oral examination consists of the evaluation of the theoretical competencies. The aim of the oral exam is to verify that the student has acquired the formal terminology and analysis capability; it normally consists of three questions (which number may vary depending on the provided answers). The aim is to ascertain that the student has acquired (i) familiarity with the concept of graph in all its variants, (ii) ability to analyze graph traversal algorithms, (iii) ability to analyze greedy and dynamic programming algorithms, (iv) basic sensibility on how to deal with difficult problems. At the end of the oral examination, a mark is given depending (in equal parts) both on the written exam and on the oral one. The evaluation of the lab exercises (mandatory for attending students) can modify the oral mark.
Programma esteso/Content
Grafi: -definizioni e terminologia: grafi non orientati, grafi orientati, archi pesati, cammini, cicli, componenti connesse e fortemente connesse: significato e utilizzo delle diverse varianti per modellare diverse situazioni; -rappresentazioni di grafi: matrici e liste di adiacenza e loro impatto dal punto di vista dell'implementazione -visita di grafi in ampiezza e in profondità, caratteristiche comuni e differenze delle varie visite proposte e loro applicazioni Tecnica golosa (greedy): -introduzione e algoritmi di esempio; -cammini minimi su grafo pesato da un nodo sorgente: algoritmo di Dijkstra e applicazioni -minimo albero ricoprente: algoritmi di Prim e Kruskal e loro utilizzo per risolvere problemi pratici -tecniche di dimostrazione di correttezza e loro funzione in relazione alla progettazione di algoritmi greedy -limiti della tecnica golosa (problema del resto) Tecnica di programmazione dinamica -introduzione alla tecnica e proprietà della sottostruttura ottima; confronto con la tecnica golosa e con il divide et impera -aspetti e scelte di impementazione: algoritmi ricorsivi e iterativi, memoization -utilizzo dei teoremi della sottostruttura ottima per l'analisi di problemi e la progettazione di algoritmi di programmazione dinamica; analisi di problemi classici (massimo sottoinsieme indipendente, zaino, sottosequenza comune di lunghezza massima); -cammini minimi da un nodo sorgente: algoritmo di Bellman-Ford (utilizzo negli algoritmi di routing) -cammini minimi da tutti i nodi: algoritmo di Floyd-Warshall Cenni sui problemi intrattabili: -classi P, NP ed NP completezza -algoritmi di complessità pseudopolinomiale -introduzione alle tecniche per affrontare i problemi difficili.
Graphs -definitions and terminology: undirected and directed graphs, weighted graphs, paths, cycles, connected components and strongly connected components: meaning and usage of each variant to model different situations; -representations: adjacency matrices and lists and their impact from the implementation point of view; -breadth first and depth first traversals: common characteristics and differences and applications Greedy technique: -introduction and examples; -single source shortest paths on a weighted graph: Dijkstra's algorithm and applications -minimum spanning tree: Prim's and Kruskal's algorithms and their use to solve practical problems; -techinques for proofs of correctness and their function in designing greedy algorithms; -limits of greedy techniques (the problem of coin change) Dynamic programming technique: -introduction to the dynamic programming technique, optimal substructure property; comparison with greedy and divide et impera techniques; -implementation aspects and choices: recursive and iterative algorithms, memoization; -usage of the optimal substructure theorems to analyze problems and design synamic programming algorithms; analysis of classical problems (maximal independent set, knapsack, longest common subsequence); -single source shortest paths on a weighted graph: Bellman-Ford's algorithm (use in routing algorithms) -all-pairs shortest paths on a weighted graph: Floyd-Warshall's algorithm Introduction to intractable problems: -P, NP complexity classes and NP-completeness -pseudopolinomial algorithms -introduction to the techniques to deal with intractable problems.
Risultati di apprendimento attesi/Intended learning objectives
Enunciare la definizione di grafo, ed analizzare i diversi modi di rappresentare un grafo in relazione alle applicazioni. Descrivere il concetto di visita di grafo, e identificarne esempi. Descrivere le strategie greedy e di programmazione dinamica. Identificare esempi per ciascuna delle strategie elencate. Descrivere e spiegare il ragionamento che porta alla progettazione (e che dimostra la correttezza) di algoritmi classici su grafi. Descrivere l'analisi di complessità/correttezza di tali algoritmi. Applicare gli algoritmi classici a semplici istanze. Descrivere le classi P ed NP e il loro rapporto e l'idea di soluzione approssimata; illustrare l'analisi degli algoritmi approssimati visti a lezione. Modellare un problema dato con un problema classico su grafo, scegliendo il tipo di grafo appropriato. Implementare in Java gli algoritmi classici sui grafi presentati a lezione.
Define a graph, and analyze the different ways of representing a graph for different applications. Describe the concept of graph traversal, and identify examples thereof. Describe the freedy and dynamic programming strategies. Identify examples for each one of the mentioned strategies. Describe and explain the reasoning that leads to the design (and proves the correctness) of classical algorithms on graphs. Describe the complexity/correctness analysis of such algorithms. Apply classical algorithms to simple instances. Describe classes P and NP and their relashionship and the idea of approximate solution; explain the analysis of approximate algorithms presented in class. Model a given problem with a classical problem on a graph, choosing the appropriate kind of graph. Implement the classical algorithms on graphs studied in class.
×
Stampa
Insegnamento
BASI DI DATI E SISTEMI INFORMATIVI
Codice
MF0158
Anno Accademico
2025/2026
Anno regolamento
2024/2025
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
GIORDANO Laura
CFU
9.0
Ore di lezione
72.0
Ore di studio individuale
153.0
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OBB
Categoria insegnamento
B
Anno
2
Periodo
Primo Semestre
Sede
ALESSANDRIA
Tipo di valutazione
V
Lingua insegnamento/Teaching language
ITALIANO
Italian
Contenuti/Content Summary
Dei principali modelli dei dati adottati dai sistemi di gestione delle basi di dati (DBMS) viene approfondito il modello relazionale, in particolare sono presentati gli aspetti teorici di tale modello. Le strutture logiche di una base di dati sono progettate con modelli semantici ed analizzate alla luce di opportune forme normali. La parte di sperimentazioni comprende lo sviluppo di casi di studio di progettazione concettuale e logica, un'introduzione al linguaggio SQL e sue applicazioni alla gestione di una base di dati.
Among the main data models presented in data base literature, the course presents the relational model and, in particular, it focuses on its theoretical aspects. Conceptual models are introduced for database design and the logical structure of the database is analyzed through the notion of normal forms. Sperimentazioni: We introduce some case studies and we design databases for such case studies by defining conceptual and logical models. We also introduce the SQL language for the management of a database.
Testi di riferimento/Textbooks
Atzeni, Ceri, Fraternali, Paraboschi, Torlone Basi di Dati: Modelli e Linguaggi di Interrogazione Mc Graw-Hill, sesta edizione, 2023
Atzeni, Ceri, Fraternali, Paraboschi, Torlone Basi di Dati: Modelli e Linguaggi di Interrogazione Mc Graw-Hill, sesta edizione, 2023
Obiettivi formativi/Mission
Obiettivo del corso è fornire gli strumenti metodologici e formali per progettare le strutture logiche e fisiche di una base di dati relazionale a partire dai requisiti del sistema informatico espressi dagli utenti. Favorire lo sviluppo da parte degli studenti di abilità pratiche nella progettazione concettuale e logica di una base di dati. Sviluppare competenze nell'uso del linguaggio SQL sia negli aspetti DDL che DML.
The course aims at introducing the main methodological and formal tools for designing the logical structure of a relational database, starting from the requirements specification. Another aim is to promote the development by students of practical skills in the conceptual and logical design of a database and of skills in the use of SQL language in both the definition and manipulation of databases.
Prerequisiti/Required background knowledge
Gli studenti e le studentesse devono avere seguito i corsi di Programmazione e di Architettura degli elaboratori del I anno.
The students must have completed the first-year courses in Programming and Computer Architecture.
Metodi didattici/Teaching methods
Lezioni frontali in aula e esercitazioni in aula e in laboratorio informatico. I 2/3 delle lezioni del corso sono lezioni in aula e 1/3 sono in laboratorio.
Lectures and exercises in the classroom and computer lab. 2/3 of the lessons of the course are classroom lessons and 1/3 are in the laboratory.
Altre informazioni/Further information
Le competenze da verificare, e necessarie per il superamento del corso consistono nella capacità di aver appreso i concetti di base relativi al modello relazionale, al modello Entità-Relazione, alla teoria della normalizzazione ed alle architetture delle basi di dati. Sperimentazioni: Le competenze verificate in sede d'esame consistono nella dimostrazione di aver appreso i concetti di base relativamente alla progettazione di basi di dati e l'uso del linguaggio SQL, mediante lo sviluppo di un progetto di laboratorio. Le studentesse e gli studenti con disabilità o con Disturbi Specifici dell’Apprendimento (DSA) o con Bisogni Educativi Speciali (BES) possono richiedere servizi e strumenti specifici a loro dedicati rivolgendosi allo Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti e consultando la pagina dedicata del sito di Ateneo: https://uniupo.it/it/servizi/servizi-studenti- disabili-e-dsa Le studentesse e gli studenti con disabilità, DSA, BES, una volta preso contatto con lo Staff di Ateneo, possono contattare la/il docente titolare dell'insegnamento in relazione alla declinazione delle modalità di esame, in merito agli aspetti didattici.
The students should have acquired the base notions of the relational model, of the entity-relation model, of normalization theory, and basic elements of DB architectures. Sperimentazioni: for successfully completing Sperimentazioni the students should prove to have learned the basic concepts relating to database design and the use of SQL language, through the realization of a lab project. Students with physical disabilities, Learning Disabilities or Special Education Needs can request specific services and tools via the Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti, consulting the University webpage: https://www.uniupo.it/en/services/services-students-physical-or-learning-disabilities Students with disabilities, learning disabilities or special education needs, once they have contacted the University Staff, can refer to the tutor in charge of the course to define the examination modalities, concerning academic aspects.
Modalità di verifica dell'apprendimento/Assessment methods
Fondamenti: un esame scritto ed un'orale opzionale. La prova prevede diverse domande, riguardanti argomenti svolti in una parte diversa del programma. La valutazione complessiva terrà conto dei risultati conseguiti nelle singole domande. Sperimentazioni: una prova orale individuale comprendente la discussione di una relazione riguardante un progetto di laboratorio assegnato dai docenti. Il progetto di laboratorio consiste di due parti: i) progettazione di un modello concettuale e un modello logico per una base di dati adeguata ai requisiti assegnati dai docenti e ii) scrittura di circa 10-20 query SQL assegnate dal docente su un database indicato dal docente. Il progetto di laboratorio viene svolto autonomamente dagli studenti in piccoli gruppi di indicativamente massimo tre persone e dovranno preparare una relazione da consegnare al docente alcuni giorni prima della discussione. La discussione della relazione può essere integrata con domande riguardanti i concetti fondamentali delle basi di dati relazionali usando come spunto la relazione presentata. Il punteggio totale della discussione è di 30 punti. La valutazione complessiva terrà conto dei punteggi parziali conseguiti nelle due parti.
Fondamenti: A written examination and an optional discussion. The exam involves several questions on different subjects within the course contents. The evaluation takes into account the answers to the different questions. Sperimentazioni: an individual oral examination where a lab project will be discussed. The lab project consists of two parts: i) the design of a conceptual and a logical model for a database (the requirements for such a database are assigned by the teachers) and ii) about 10-20 SQL queries assigned by the teacher on an existing database also assigned by the teacher. The lab project is carried out by the students working in small groups of approximately up to three people. The students are expected to write a report about their lab project to be delivered to the teacher a few days before the discussion. The individual oral examination can be supplemented with questions regarding the basic concepts of relational databases using as a basis the students’ report. The total score of this partial test is 30 points. The overall assessment will take account of the partial scores obtained in the two parts.
Programma esteso/Content
Fondamenti: dei principali modelli dei dati adottati dai sistemi di gestione delle basi di dati (DBMS) viene approfondito il modello relazionale, in particolare sono presentati gli aspetti teorici di tale modello. Le strutture logiche di una base di dati sono progettate con modelli semantici ed analizzate alla luce di opportune forme normali. Il corso si articola nelle seguenti parti: Modello Relazionale; Algebra Relazionale; Modello Entità-Relazione; Traduzione del Modello ER nel modello Relazionale; Normalizzazione. Viene inoltre descritta brevemente l'architettura di un DBMS, che viene presentata succintamente seguendo lo schema di descrizione generale a tre livelli di astrazione: esterno, logico e fisico. Vengono introdotte le nozioni di base sugli indici e sulle transazioni. Sperimentazioni: Progettazione concettuale e logica: presentazione di casi di studio. Introduzione al linguaggio SQL: Data Definition Language, Data Manipulation Language e Query Language. Implementazione e gestione di una base dati relazionale usando SQL mediante la realizzazione di alcuni casi di studio in laboratorio. Utilizzo del DBMS PostgreSQL.
Among the main data models presented in data base literature, the course presents the relational model and, in particular, it focuses on its theoretical aspects. Conceptual models are introduced for database design and the logical structure of the database is analyzed through the notion of normal forms. The course consists of the following parts: Relational Model; Relational Algebra; Entity-Relationship Model; translation from the ER model to the relational model; Normal Forms. The threelevel architecture of a DBMS is introduced. The main notions on indexes and transactions are briefly discussed. Sperimentazioni: Conceptual and logical design: introduction of case studies. Introduction to SQL: Data Definition Language, Data Manipulation Language and Query Language. Implementation and management of a relational database using SQL through the implementation of some case studies in the computer lab. Use of the PostgreSQL DBMS.
Risultati di apprendimento attesi/Intended learning objectives
Raggiungimento, in grado misurato dal voto, degli obiettivi formativi.
The achievement, up to a degree measured by grades, of the learning goals.
×
Stampa
Insegnamento
BASI DI DATI E SISTEMI INFORMATIVI
Codice
MF0211
Anno Accademico
2025/2026
Anno regolamento
2024/2025
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
GIORDANO Laura
CFU
9.0
Ore di lezione
72.0
Ore di studio individuale
153.0
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OBB
Categoria insegnamento
B
Anno
2
Periodo
Primo Semestre
Sede
VERCELLI
Tipo di valutazione
V
Lingua insegnamento/Teaching language
ITALIANO
Italian
Contenuti/Content Summary
Dei principali modelli dei dati adottati dai sistemi di gestione delle basi di dati (DBMS) viene approfondito il modello relazionale, in particolare sono presentati gli aspetti teorici di tale modello. Le strutture logiche di una base di dati sono progettate con modelli semantici ed analizzate alla luce di opportune forme normali. La parte di sperimentazioni comprende lo sviluppo di casi di studio di progettazione concettuale e logica, un'introduzione al linguaggio SQL e sue applicazioni alla gestione di una base di dati.
Among the main data models presented in data base literature, the course presents the relational model and, in particular, it focuses on its theoretical aspects. Conceptual models are introduced for database design and the logical structure of the database is analyzed through the notion of normal forms. Sperimentazioni: We introduce some case studies and we design databases for such case studies by defining conceptual and logical models. We also introduce the SQL language for the management of a database.
Testi di riferimento/Textbooks
Atzeni, Ceri, Fraternali, Paraboschi, Torlone Basi di Dati: Modelli e Linguaggi di Interrogazione Mc Graw-Hill, sesta edizione, 2023
Atzeni, Ceri, Fraternali, Paraboschi, Torlone Basi di Dati: Modelli e Linguaggi di Interrogazione Mc Graw-Hill, sesta edizione, 2023
Obiettivi formativi/Mission
Obiettivo del corso è fornire agli studenti e alle studentesse, gli strumenti metodologici e formali per progettare le strutture logiche e fisiche di una base di dati relazionale a partire dai requisiti del sistema informatico espressi dagli utenti. Favorire lo sviluppo da parte degli studenti di abilità pratiche nella progettazione concettuale e logica di una base di dati. Sviluppare competenze nell'uso del linguaggio SQL sia negli aspetti DDL che DML.
The course aims at introducing the students to the main methodological and formal tools for designing the logical structure of a relational database, starting from the requirements specification. Another aim is to promote the development by students of practical skills in the conceptual and logical design of a database and of skills in the use of SQL language in both the definition and manipulation of databases.
Prerequisiti/Required background knowledge
Gli studenti e le studentesse, devono aver seguito i corsi di Programmazione e di Architettura degli elaboratori del I anno. Le studentesse e gli studenti con disabilità o con Disturbi Specifici dell’Apprendimento (DSA) o con Bisogni Educativi Speciali (BES) possono richiedere servizi e strumenti specifici a loro dedicati rivolgendosi allo Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti e consultando la pagina dedicata del sito di Ateneo: https://uniupo.it/it/servizi/servizi-studenti-disabili-e-dsa Le studentesse e gli studenti con disabilità, DSA, BES, una volta preso contatto con lo Staff di Ateneo, possono contattare la/il docente titolare dell'insegnamento in relazione alla declinazione delle modalità di esame, in merito agli aspetti didattici.
The students must have completed the first-year courses in Programming and Computer Architecture. Students with physical disabilities, Learning Disabilities or Special Education Needs can request specific services and tools via the Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti, consulting the University webpage: https://www.uniupo.it/en/services/services-students-physical-or-learning-disabilities Students with disabilities, learning disabilities or special education needs, once they have contacted the University Staff, can refer to the tutor in charge of the course to define the examination modalities, concerning academic aspects.
Metodi didattici/Teaching methods
Lezioni frontali in aula e esercitazioni in aula e in laboratorio informatico. 2/3 delle lezioni del corso sono lezioni in aula, mentre 1/3 delle lezioni sono in laboratorio
Lectures and exercises in the classroom and computer lab. 2/3 of the lessons of the course are classroom lessons and 1/3 are in the laboratory.
Altre informazioni/Further information
Le competenze da verificare, e necessarie per il superamento del corso consistono nella capacità di aver appreso i concetti di base relativi al modello relazionale, al modello Entità-Relazione, alla teoria della normalizzazione e alle architetture delle basi di dati. Sperimentazioni: Le competenze verificate in sede d'esame consistono nella dimostrazione di aver appreso i concetti di base relativamente alla progettazione di basi di dati e l'uso del linguaggio SQL, mediante lo sviluppo di un progetto di laboratorio. Le studentesse e gli studenti con disabilità o con Disturbi Specifici dell’Apprendimento (DSA) o con Bisogni Educativi Speciali (BES) possono richiedere servizi e strumenti specifici a loro dedicati rivolgendosi allo Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti e consultando la pagina dedicata del sito di Ateneo: https://uniupo.it/it/servizi/servizi-studenti-disabili-e-dsa Le studentesse e gli studenti con disabilità, DSA, BES, una volta preso contatto con lo Staff di Ateneo, possono contattare la/il docente titolare dell'insegnamento in relazione alla declinazione delle modalità di esame, in merito agli aspetti didattici.
The students should have acquired the base notions of the relational model, of the entity-relation model, normalization theory, and basic elements of DB architectures. Sperimentazioni: for successfully completing Sperimentazioni the students should prove to have learned the basic concepts relating to database design and the use of SQL language, through the realization of a lab project. Students with physical disabilities, Learning Disabilities or Special Education Needs can request specific services and tools via the Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti, consulting the University webpage: https://www.uniupo.it/en/services/services-students-physical-or-learning-disabilities Students with disabilities, learning disabilities or special education needs, once they have contacted the University Staff, can refer to the tutor in charge of the course to define the examination modalities, concerning academic aspects.
Modalità di verifica dell'apprendimento/Assessment methods
Fondamenti: un esame scritto ed un'orale opzionale. La prova prevede diverse domande, riguardanti argomenti svolti in una parte diversa del programma. La valutazione complessiva terrà conto dei risultati conseguiti nelle singole domande. Sperimentazioni: una prova orale individuale comprendente la discussione di una relazione riguardante un progetto di laboratorio assegnato dai docenti. Il progetto di laboratorio consiste di due parti: i) progettazione di un modello concettuale e un modello logico per una base di dati adeguata ai requisiti assegnati dai docenti e ii) scrittura di circa 10-20 query SQL assegnate dal docente su un database indicato dal docente. Il progetto di laboratorio viene svolto autonomamente dagli studenti in piccoli gruppi di indicativamente massimo tre persone e dovranno preparare una relazione da consegnare al docente alcuni giorni prima della discussione. La discussione della relazione può essere integrata con domande riguardanti i concetti fondamentali delle basi di dati relazionali usando come spunto la relazione presentata. Il punteggio totale della discussione è di 30 punti. La valutazione complessiva terrà conto dei punteggi parziali conseguiti nelle due parti.
Fondamenti: A written examination and an optional discussion. The exam involves several questions on different subjects within the course contents. The evaluation takes into account the answers to the different questions. Sperimentazioni: an individual oral examination where a lab project will be discussed. The lab project consists of two parts: i) the design of a conceptual and a logical model for a database (the requirements for such a database are assigned by the teachers) and ii) about 10-20 SQL queries assigned by the teacher on an existing database also assigned by the teacher. The lab project is carried out by the students working in small groups of approximately up to three people. The students are expected to write a report about their lab project to be delivered to the teacher a few days before the discussion. The individual oral examination can be supplemented with questions regarding the basic concepts of relational databases using as a basis the students’ report. The total score of this partial test is 30 points. The overall assessment will take account of the partial scores obtained in the two parts.
Programma esteso/Content
Fondamenti: dei principali modelli dei dati adottati dai sistemi di gestione delle basi di dati (DBMS) viene approfondito il modello relazionale, in particolare sono presentati gli aspetti teorici di tale modello. Le strutture logiche di una base di dati sono progettate con modelli semantici ed analizzate alla luce di opportune forme normali. Il corso si articola nelle seguenti parti: Modello Relazionale; Algebra Relazionale; Modello Entità-Relazione; Traduzione del Modello ER nel modello Relazionale; Normalizzazione. Viene inoltre descritta brevemente l'architettura di un DBMS, che viene presentata succintamente seguendo lo schema di descrizione generale a tre livelli di astrazione: esterno, logico e fisico. Vengono introdotte le nozioni di base sugli indici e sulle transazioni. Sperimentazioni: Progettazione concettuale e logica: presentazione di casi di studio. Introduzione al linguaggio SQL: Data Definition Language, Data Manipulation Language e Query Language. Implementazione e gestione di una base dati relazionale usando SQL mediante la realizzazione di alcuni casi di studio in laboratorio. Utilizzo del DBMS PostgreSQL.
Among the main data models presented in data base literature, the course presents the relational model and, in particular, it focuses on its theoretical aspects. Conceptual models are introduced for database design and the logical structure of the database is analyzed through the notion of normal forms. The course consists of the following parts: Relational Model; Relational Algebra; Entity-Relationship Model; translation from the ER model to the relational model; Normal Forms. The threelevel architecture of a DBMS is introduced. The main notions on indexes and transactions are briefly discussed. Sperimentazioni: Conceptual and logical design: introduction of case studies. Introduction to SQL: Data Definition Language, Data Manipulation Language and Query Language. Implementation and management of a relational database using SQL through the implementation of some case studies in the computer lab. Use of the PostgreSQL DBMS.
Risultati di apprendimento attesi/Intended learning objectives
Raggiungimento, in grado misurato dal voto, degli obiettivi formativi.
The achievement, up to a degree measured by grades, of the learning goals.
×
Stampa
Insegnamento
METODOLOGIE DI PROGRAMMAZIONE PER IL WEB
Codice
MF0438
Anno Accademico
2025/2026
Anno regolamento
2024/2025
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
CLOCCHIATTI ALESSANDRO
CFU
6.0
Ore di lezione
48.0
Ore di studio individuale
102.0
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OBB
Categoria insegnamento
A
Anno
2
Periodo
Secondo Semestre
Sede
VERCELLI
Tipo di valutazione
V
Lingua insegnamento/Teaching language
ITALIANO
Italian
Contenuti/Content Summary
Scopo del corso è acquisire le capacità di base per progettare e realizzare siti ed applicazioni sul World Wide Web, costituiti da testi, elementi multimediali e interattivi secondo un'architettura 3-tier (client/application/data). Verranno illustrati i concetti di base sull'utilizzo di markup languages come HTML5 e CSS3, i concetti più importanti relativi alla programmazione Web lato client (JavaScript) e lato server (Node.js), nonché le modalità di interazione con DBMS relazionali (RDBMS). Le tecnologie suddette saranno usate anche per applicare i principi fondazionali dell'interazione uomo macchina, usabilità e accessibilità di siti e applicazioni web.
The aim of the course is to acquire the basic skills to design and build websites and applications on the World Wide Web, consisting of texts and interactive elements according to a 3-tier architecture (client / application / data). During the course, the basic concepts of using markup languages such as HTML5 and CSS3 and the most important concepts related to client-side (JavaScript) and server-side (Node.js) web programming will be illustrated, , as well as interaction with DBMS relational modes (RDBMS ). The aforementioned technologies will also be used to apply the foundational principles of human-machine interaction, usability, and accessibility of Web sites and applications.
Testi di riferimento/Textbooks
Materiale fornito dal docente. Opzionalmente: Deitel et al., Internet and World Wide Web: How to program (5th ed.), Prentice Hall R. Connolly, R. Hoar, Fundamentals of Web Development, Pearson R. Sebesta, Programming the World Wide Web, Pearson
Material provided by the teacher. Optionally: Deitel et al., Internet and World Wide Web: How to program (5th ed.), Prentice Hall R. Connolly, R. Hoar, Fundamentals of Web Development, Pearson R. Sebesta, Programming the World Wide Web, Pearson
Obiettivi formativi/Mission
Acquisire le capacità di base per realizzare siti ed applicazioni web di media complessità, usabili e accessibili, costituiti da testi, elementi multimediali e interattivi secondo un'architettura 3-tier (client/application/data).
To acquire the basic skills to create websites and web applications of medium complexity, usable and accessible, consisting of texts, multimedia and interactive elements according to a 3-tier architecture (client / application / data).
Prerequisiti/Required background knowledge
Conoscenza dei concetti base della programmazione (costrutti, strutture dati, logica, gestione input/output). Conoscenza dei concetti base di Programmazione ad Oggetti (classi, oggetti, ereditarietà). Conoscenza di Database (tabelle, relazioni, indici).
Knowledge of the basic concepts of programming (constructs, data structures, logic, input/output handling). Knowledge of the basic concepts of object‑oriented programming (classes, objects, inheritance). Knowledge of databases (tables, relationships, indexes).
Metodi didattici/Teaching methods
Il corso è organizzato in lezioni frontali e laboratori pratici in cui saranno applicati i concetti esposti su esempi di complessità crescente.
The course is organized in lectures and practical workshops in which the concepts presented will be applied to examples of increasing complexity.
Altre informazioni/Further information
Le studentesse e gli studenti con disabilità o con Disturbi Specifici dell’Apprendimento (DSA) o con Bisogni Educativi Speciali (BES) possono richiedere servizi e strumenti specifici a loro dedicati, rivolgendosi allo "Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti" e consultando la pagina dedicata del sito di Ateneo: https://uniupo.it/it/servizi/servizi-studenti-disabili-e-dsa. Le studentesse e gli studenti con disabilità, DSA, BES, una volta preso contatto con lo Staff di Ateneo, possono contattare la/il docente titolare dell'insegnamento in relazione alla declinazione delle modalità di esame, in merito agli aspetti didattici.
Students with physical disabilities, Learning Disabilities or Special Education Needs can request specific services and tools via the "Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti", consulting the University webpage: https://www.uniupo.it/en/services/services-students-physical-or-learning-disabilities. Students with disabilities, learning disabilities or special education needs, once they have contacted the University Staff, can refer to the tutor in charge of the course to define the examination modalities, concerning academic aspects.
Modalità di verifica dell'apprendimento/Assessment methods
La verifica consiste nella realizzazione di un progetto (un sito web dinamico) e nella presentazione orale dello stesso, seguita da domande mirate. Il sito deve integrare le tecnologie previste dal corso (HTML5, CSS3, JavaScript, DOM, AJAX, Node.js/Express, interfacciamento con RDBMS) e includere una parte delle funzionalità standard tipiche dei siti dinamici, come ricerca, autenticazione e gestione del login con ruoli differenziati, insieme ad altre funzionalità progettate autonomamente. La presentazione orale accerta la comprensione delle scelte progettuali, dei concetti teorici e degli strumenti utilizzati. La valutazione si basa sul livello di raggiungimento dei risultati di apprendimento: progettare interfacce usabili e accessibili; implementare funzionalità client‑side; progettare e interrogare un RDBMS; sviluppare componenti server‑side secondo architettura 3‑tier; utilizzare strumenti di sviluppo per analisi e debugging. Ogni risultato è valutato in base a ciò che lo studente dimostra di conoscere e saper applicare nel progetto e nella discussione. La sufficienza (18/30) richiede un sito dinamico funzionante che integri correttamente i tre livelli dell’architettura, includa almeno una parte delle funzionalità dinamiche previste e utilizzi in modo appropriato le tecnologie del corso. Lo studente deve inoltre dimostrare di conoscere il proprio progetto, navigandolo in modo efficace e rispondendo con pertinenza alle domande mirate. I punteggi intermedi (19–27/30) riflettono maggiore autonomia progettuale, qualità del codice, correttezza architetturale e attenzione a usabilità e accessibilità. L’eccellenza (28–30 e lode) è attribuita quando lo studente dimostra padronanza completa degli strumenti, scelte progettuali solide e motivate e una presentazione orale chiara e tecnicamente approfondita. Lo studente dovrà autonomamente dimostrare di aver appreso le seguenti competenze: - definire i requisiti funzionali del sito/applicazione web - strutturare il sito/applicazione web, organizzandolo in pagine e moduli coerenti - selezionare il paradigma architetturale da utilizzare sulla base di quelli descritti durante il corso, e progettare l'architettura dell'applicazione secondo il modello 3-tier - definire e implementare le caratteristiche delle pagine secondo i principi di usabilità introdotti durante il corso, e utilizzando in maniera appropriata HTML, CSS e Javascript - costruire un sito con elementi dinamici interfacciandosi opportunamente con il database progettato - gestire l'autenticazione e autorizzazione degli utenti, personalizzando il comportamento dell'applicazione sulla base del tipo di utente La valutazione del progetto terrà conto: - del rispetto dei requisiti tecnici, stilistici e funzionali indicati - della correttezza dell’implementazione (assenza di bug, crash, comportamenti inattesi) - dell’appropriatezza delle scelte progettuali effettuate - dell’accuratezza dell’implementazione (accuratezza dei controlli, personalizzazione
Assessment consists of a project (a dynamic website) and an oral presentation of the project, followed by targeted questions. The website must integrate the technologies covered in the course (HTML5, CSS3, JavaScript, DOM, AJAX, Node.js/Express, RDBMS interaction) and include a subset of the standard features typical of dynamic websites, such as search, authentication, and role‑based login, along with additional functionalities designed autonomously. The oral presentation assesses understanding of theoretical concepts, design choices, and the tools employed. Evaluation is based on the achievement of the learning outcomes: designing usable and accessible interfaces; implementing client‑side functionality; designing and querying an RDBMS; developing server‑side components within a 3‑tier architecture; using development tools for analysis and debugging. Each outcome is assessed through what the student demonstrates in the project and during the discussion. A passing grade (18/30) requires a functioning dynamic website that correctly integrates the three architectural layers, includes at least part of the required dynamic features, and uses the course technologies appropriately. The student must also demonstrate full understanding of the project, navigating it effectively and answering targeted questions. Intermediate grades (19–27/30) reflect increasing autonomy, code quality, architectural correctness, and attention to usability and accessibility. Excellence (28–30 with honors) is awarded when the student shows complete mastery of the tools, well‑motivated design choices, and a clear, technically rigorous oral presentation. The student must independently demonstrate the following skills: - define the functional requirements of the website / web application - structure the website / web application, organizing it into coherent pages and modules - select the architectural paradigm to be used on the basis of those described during the course, and design the application architecture according to the 3-tier model - define and implement the features of the pages according to the usability principles introduced during the course, and using HTML, CSS and Javascript appropriately - build a site with dynamic elements by interfacing appropriately with the designed database - manage user authentication and authorization, customizing the application behavior based on the user type The project assessment will take into account: - compliance with the technical, stylistic and functional requirements indicated - the correctness of the implementation (absence of bugs, crashes, unexpected behaviours) - the appropriateness of the design and architectural choices - the accuracy of the implementation
Programma esteso/Content
Concetti base di programmazione e progettazione per il web Il linguaggio HTML (HTML5) Cascading Style Sheets (CSS3) e il design responsive Interazione Uomo Macchina per il Web Nozioni di Usabilità Accessibilità di pagine e applicazioni web Programmazione client-side: JavaScript, DOM, AJAX Richiami di progettazione RDBMS Programmazione server-side: web server e architettura 3-tier, node.js e il framework Express Interfacciamento con RDBMS Cenni sui web service e sulle API Strumenti di sviluppo, dentro e fuori dal browser.
Basic concepts of programming and design for the web HTML language (HTML5) Cascading Style Sheets (CSS3) and responsive design Human-Computer Interaction for Web applications Usability to Create accessible web pages Client-side programming: JavaScript, DOM, AJAX Review of RDBMS design Server-side programming: web server and 3-tier architecture, node.js and the Express framework Interfacing with RDBMS Notes on web services and APIs Development tools, in and out of the browser
Risultati di apprendimento attesi/Intended learning objectives
Acquisire conoscenze e capacità operative per progettare e sviluppare siti e applicazioni web di media complessità secondo un’architettura 3‑tier (client/application/data), applicando principi di usabilità e accessibilità. Saper comprendere e utilizzare linguaggi, strumenti e modelli di gestione dei dati, integrando contenuti testuali, multimediali e interattivi. Sviluppare competenze applicabili a diversi profili professionali (front‑end, back‑end, full‑stack) e maturare abilità trasversali quali valutazione critica delle scelte progettuali, comunicazione efficace delle soluzioni tecniche e capacità di aggiornamento autonomo.
Acquire the knowledge and practical skills needed to design and develop medium‑complexity websites and web applications based on a 3‑tier architecture (client/application/data), applying principles of usability and accessibility. Understand and use languages, tools, and data‑management models, integrating textual, multimedia, and interactive content. Develop competencies relevant to different professional profiles (front‑end, back‑end, full‑stack) and strengthen transversal abilities such as critical evaluation of design choices, effective communication of technical solutions, and autonomous learning.
×
Stampa
Insegnamento
RETI
Codice
MF0576
Anno Accademico
2025/2026
Anno regolamento
2024/2025
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
CANONICO Massimo
CFU
6.0
Ore di lezione
48.0
Ore di studio individuale
102.0
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OBB
Categoria insegnamento
A
Anno
2
Periodo
Secondo Semestre
Sede
ALESSANDRIA
Tipo di valutazione
V
Lingua insegnamento/Teaching language
ITALIANO
Italian
Contenuti/Content Summary
Il tema del corso è la rete Internet, affrontato secondo un approccio che partendo dalle applicazioni di rete scende via via in profondità, descrivendo il livello "trasporto" e quindi il livello "rete" dei protocolli TCP/IP.
The course explain how a device network works from the application layer until the network layer following the TCP/IP's iso/osi stack.
Testi di riferimento/Textbooks
James F. Kurose, Keith W. Ross, Reti di Calcolatori e Internet - Un approccio top-down, Ottava Edizione.
James F. Kurose, Keith W. Ross, Computer Networking: A Top-Down Approach 8th Edition.
Obiettivi formativi/Mission
Approfondire le tematiche relative alle reti informatiche.
Understand how devices connected via networks can communicate each other.
Prerequisiti/Required background knowledge
Conoscenze acquisite nei corsi di Architetture e Sistemi operativi.
The student should know the topics proposed in the Computer Architecture and Operating Systems courses
Metodi didattici/Teaching methods
Lezioni frontali in aula ed in laboratorio. Durante il corso verranno proposti agli studenti esercitazioni sia di teoria che di pratica.
Lessons in class and in the computer lab. During the course, students will be proposed assignments for both theory and practice parts.
Altre informazioni/Further information
Durante il corso vengono fatte esercitazioni volte a valutare l’acquisizione degli strumenti presentati e dei concetti introdotti. Le studentesse e gli studenti con disabilità o con Disturbi Specifici dell’Apprendimento (DSA) o con Bisogni Educativi Speciali (BES) possono richiedere servizi e strumenti specifici a loro dedicati rivolgendosi allo Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti e consultando la pagina dedicata del sito di Ateneo: https://uniupo.it/it/servizi/servizi-studenti- disabili-e-dsa Le studentesse e gli studenti con disabilità, DSA, BES, una volta preso contatto con lo Staff di Ateneo, possono contattare la/il docente titolare dell'insegnamento in relazione alla declinazione delle modalità di esame, in merito agli aspetti didattici.
All along the course self-evaluation exercises are proposed to assess understanding of the concepts and of the technical aspects. Students with physical disabilities, Learning Disabilities or Special Education Needs can request specific services and tools via the Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti, consulting the University webpage: https://www.uniupo.it/en/services/services- students-physical-or-learning-disabilities Students with disabilities, learning disabilities or special education needs, once they have contacted the University Staff, can refer to the tutor in charge of the course to define the examination modalities, concerning academic aspects.
Modalità di verifica dell'apprendimento/Assessment methods
Esame scritto. La prova prevede 8 domande, riguardanti argomenti svolti a lezione: 4 domande di teoria (ognuna con voto massimo 4 punti), 2 domande sul laboratorio (ognuna con voto massimo di 4 punti) e 2 domande con esercizi (ognuna con un voto massimo di 5 punti). La valutazione complessiva terrà conto dei punteggi parziali conseguiti nelle singole domande.
The exam consists of a written test with 8 questions about the topics of the course: 4 questions about theory (each question with maximum score of 4 points), 2 questions about lab (each question with a maximum score of 4 points) and, finally, 2 questions with exercises (each question with a maximum score of 5 points). The final mark is the sum of the scores assigned to each answer.
Programma esteso/Content
Il corso tratta i seguenti argomenti: − Introduzione intuitiva alla rete, descrivendone in modo qualitativo la struttura e le funzionalità. − Livello applicazione: protocolli per la gestione della posta elettronica, del WEB e del DNS. − Livello sessione: i socket, programmazione dei socket. − Livello trasporto: protocolli TCP e UDP − Livello rete: protocolli IP e ICMP. − Protocolli di instradamento: algoritmi di instradamento, nozione di Sistema Autonomo, protocolli RIP, OSPF, BGP. Oltre alla descrizione dei protocolli succitati, il corso si propone di fornire allo studente anche un'esperienza diretta delle problematiche connesse con la gestione delle reti informatiche. Pertanto, durante il percorso di studio, vengono tenute anche lezioni pratiche in cui vengono assegnati esercizi da svolgere in aula o a casa.
The course deals with the following: -Intuitive introduction to the network describing in a qualitative way its structure and functionalities. -Application level: protocols for e-mail, web and DNS. -Session level: socket and socket programming. -Transport level: protocols TCP and UDP -Network level: protocols IP and ICMP -Routing protocols: routing algorithms, notion of Autonomous System, protocols RIP, OSPF, BGP. Besides the description of the mentioned protocols, the course aims at endowing the student with a direct experience on management of computer networks and the related issues. Therefore, part of the course consists of practical lessons in which the student is given exercises to complete in lab hours or as a homework.
Risultati di apprendimento attesi/Intended learning objectives
Al fine di raggiungere le conoscenze e le competenze corrispondenti al livello minimo di sufficienza, allo studente si chiederà di dimostrare di conoscere e comprendere - i principi alla base della struttura della rete Internet e delle reti di trasmissione dati moderne, - le scelte progettuali necessarie per la creazione e la gestione di un sistema di trasmissione dati su larga scala, - le principali tecniche per il recupero degli errori e per il trasferimento affidabile dei dati, - la struttura di comunicazione e di programmazione dietro le applicazioni software distribuite secondo il modello client-server. Al termine del corso lo studente dovrà essere in grado di identificare gli aspetti chiave di una rete di trasmissione dati, comprendere i criteri alla base del funzionamento della rete Internet e delle reti con tecnologia IP, eventualmente applicandole all'esperienza quotidiana. Sarà anche in grado di comprendere le dinamiche di comunicazione alla base delle applicazioni distribuite.
To reach the minimum required levels of knowledge associated to the course, and the corresponding skills, the student is required to have a suitable understanding and knowledge of - the structure of the Internet and any modern computer network, - the design choices needed to create and manage a large-scale data transmission system, - the main techniques used for error recovery and to achieve a reliable data transfer - the general communication and programming structures used by distributed client-server applications. At the end of the course the student should be able to identify the key aspects of a data communication network, and to have a general understanding of the workings of the Internet and any network based on the IP technology, with the skill to apply these understandings to everyday scenarios. They will also be able to understand the communication dynamics behind the distributed software applications.
×
Stampa
Insegnamento
INGLESE - LT INFORMATICA
Codice
MF0400
Anno Accademico
2025/2026
Anno regolamento
2024/2025
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
GUBIANI Gessica
Docenti
CFU
6.0
Ore di lezione
50.0
Ore di studio individuale
100.0
Settore Scientifico Disciplinare (SSD)
NN -
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OBB
Categoria insegnamento
E
Anno
2
Periodo
Secondo Semestre
Sede
ALESSANDRIA
Tipo di valutazione
G
Lingua insegnamento/Teaching language
INGLESE
English
Contenuti/Content Summary
La conoscenza della lingua inglese è una competenza essenziale per professionisti. Da qui l'esigenza di offrire un corso pratico e immediato con l'obiettivo di migliorare a sviluppare le abilità di comunicazione in lingua inglese (e.g., ascolto, parlata, lettura e scrittura). L'acquisizione di tali nuove competenze linguistiche consentirà alla componente studentesca, una volta inserita nel mondo del lavoro sia in Italia che all’estero, di comunicare efficacemente in lingua inglese parlata e scritta.
A strong command of the English language has become an essential skill for all professionals. For this reason, there is a need to offer a practical and easy-to-learn English course aimed at improving English communication skills (e.g., listening, speaking, reading and writing). The acquisition of these new language skills will enable students to communicate effectively in spoken and written English once they join the workforce in Italy or abroad.
Testi di riferimento/Textbooks
National Geographic Life Upper Intermediate Pack (Student's Book + Workbook + Ebook) By PAUL DUMMETT, John Hughes and Helen Stephenson. National Geographic Learning ISBN:9788853625168
National Geographic Life Upper Intermediate Pack (Student's Book + Workbook + Ebook) By PAUL DUMMETT, John Hughes and Helen Stephenson. National Geographic Learning ISBN:9788853625168
Obiettivi formativi/Mission
Gli scopi, gli obiettivi e le funzioni sono quelli raccomandati dal Quadro comune europeo di riferimento (CEFR) per il raggiungimento di un livello B2. Alla fine del corso, la componente studentesca sarà in grado di affrontare la maggior parte delle situazioni che potrebbero presentarsi durante un viaggio e/o per lavoro dove si parla la lingua inglese. Inoltre, saprà giustificare le proprie intenzioni o decisioni e migliorerà anche le sue capacità di pronuncia e ascolto. Il tutto sarà finalizzato all'acquisizione della conoscenza e comprensione della lingua inglese generale e alle capacità di applicare tale conoscenza in ambito lavorativo in modo indipendente.
The aims, objectives and functions are those recommended to attain a B2 competence level according to the Common European Framework of Reference (CEFR). At the end of the course, students will be able to manage most situations likely to arise while traveling and/or working where the English language is spoken. In addition, the student will be able to provide reasons and explanations for his/her plans or opinions. Students will also improve their pronunciation and listening comprehension skills. The overall goal of the course is to provide students with the tools to strengthen their knowledge and understanding of English and their ability to apply this knowledge independently in the work environment.
Prerequisiti/Required background knowledge
Si raccomanda l'acquisizione di un livello B1 (intermedio) attraverso l'English Placement Test e corsi di sostegno A2 e B1 disponibili sulla piattaforma Macmillan Education (veda altre informazioni). Certificazioni internazionali di lingua inglese sono accettate secondo i criteri della commissione linguistica del CLUPO.
The attainment of a B1 (intermediate) competence level is highly recommended and can be accomplished by taking the English Placement Test and supplemental A2 and B1 courses on the Macmillan Education platform which is available on the Macmillan Education platform. International English certifications are accepted according to the criteria established by the CLUPO Linguistic Commission.
Metodi didattici/Teaching methods
Lezioni frontali e esercitazioni.
Lectures and class activities.
Altre informazioni/Further information
Si consiglia a tutta la componente studentesca di sostenere l'English Placement Test informatizzato. Questa prova NON sostituisce l'esame d'Inglese, anche nel caso di chi abbia conseguito un livello > B2. L'obiettivo del test d'ingresso è quello di verificare il proprio livello di conoscenza della lingua inglese secondo i parametri internazionali CEFR. Nel caso in cui il livello sia pari ad A1 (elementare) o A2 (pre-intermedio), la componente studentesca è caldamente consigliata di frequentare i corsi di allineamento A1>A2 e A2>B1 offerti da UPO tramite la piattaforma Macmillan Education, che permetterà di acquisire le conoscenze linguistiche necessarie per seguire più agevolmente il corso di lingua inglese del piano di studio (B2 sovra-intermedio).
It is recommended that all students take the computerized English Placement Test. This placement test does NOT replace the English exam, even in the event that one has achieved a level > B2. The objective of the entry test is verification of the level of one's English proficiency according to the international CEFR parameters. It is highly recommended that students with an A1 (elementary) or A2 (pre-intermediate) level take the A1 to A2 and A2 to B1 supplementary courses on the Macmillan Education platform. This will allow them to acquire the linguistic skills necessary to better follow the English course in their degree plan (B2-upper-intermediate).
Modalità di verifica dell'apprendimento/Assessment methods
L’esame finale è volto a verificare le competenze linguistiche in lingua Inglese. L’esame consisterà di una prova scritta basata sulle competenze acquisito nel testo indicato in bibliografia e su tutto il materiale svolto in classe. Le domande verteranno sulla comprensione, grammatica, vocaboli e ascolto. L’esame sarà tarato su un livello B2 (sovra-intermedio) secondo i parametri CEFR. Il superamento dell'esame prevede l'idoneità.
The final exam will assess English language skills. The test will be based on the skills acquired using the textbook and material covered in class. The questions will focus on reading comprehension, use of English, and listening. The exam will be calibrated on a B2 level (upper-intermediate) according to CEFR parameters. Grades will be Pass/Fail.
Programma esteso/Content
a) Studio del testo National Geographic Life Upper Intermediate Pack (Student's Book + Workbook + Ebook) indicato in bibliografia. b) Studio di eventuali dispense e articoli forniti dalla docente. c) Studio della grammatica; sintassi; tecniche di comprensione della pronuncia e dell'ascolto; comprensione di testi scritti di livello B2.
a) Study the textbook National Geographic Life Upper Intermediate Pack (Student's Book + Workbook + Ebook) indicated. b) Study any handouts and articles provided by the professor. c) Study grammar, syntax, pronunciation, listening comprehension, reading, and comprehension of written texts commensurate with a B2 level.
Risultati di apprendimento attesi/Intended learning objectives
Con le nuove competenze linguistiche, la componente studentesca sarà in grado di esprimersi in lingua inglese in modo spontaneo e fluente nella comunicazione orale, e in modo chiaro e dettagliato nella comunicazione scritta. I risultati attesi di questo percorso formativo saranno l'aumento della conoscenza e comprensione della lingua inglese (livello B2 sovra-intermedio) e la capacità di applicare tali conoscenze in ambito lavorativo in modo indipendente.
With their new language skills, students will be able to express themselves easily and spontaneously in oral communication in English and in a clear and detailed manner in written communications. As a result of this course, students will strengthen their knowledge and understanding of English (B2 upper-intermediate level) and their ability to apply this knowledge independently in the workplace.
Stampa guida
Stampa
Anno Codice Insegnamento Docenti Settore Scientifico Disciplinare (SSD) Curriculum Sede CFU
2 MF0209 ALGORITMI 1 Montani Stefania, Sapienza Anna INF/01 Tutti VERCELLI 9.0
2 MF0210 ALGORITMI 2 Piovesan Luca INF/01 Tutti VERCELLI 6.0
2 MF0054 Algoritmi 2 Egidi Lavinia INF/01 Tutti ALESSANDRIA 6.0
2 MF0034 Algoritmi I Montani Stefania, Guazzone Marco INF/01 Tutti ALESSANDRIA 9.0
2 MF0211 BASI DI DATI E SISTEMI INFORMATIVI Giordano Laura, Striani Manuel, CalÒ Tommaso INF/01 Tutti VERCELLI 9.0
2 MF0158 BASI DI DATI E SISTEMI INFORMATIVI Giordano Laura, Striani Manuel INF/01 Tutti ALESSANDRIA 9.0
2 MF0397 INGLESE (SEDE DI VERCELLI) Airaghi Laura NN Tutti VERCELLI 6.0
2 MF0400 INGLESE - LT INFORMATICA Gubiani Gessica NN Tutti ALESSANDRIA 6.0
2 MF0438 METODOLOGIE DI PROGRAMMAZIONE PER IL WEB Clocchiatti Alessandro, De Lorenzis Federico INF/01 Tutti VERCELLI 6.0
2 MF0437 METODOLOGIE DI PROGRAMMAZIONE PER IL WEB Ruffo Giancarlo Francesco INF/01 Tutti ALESSANDRIA 6.0
2 MF0364 PARADIGMI DI PROGRAMMAZIONE Giannini Paola INF/01 Tutti VERCELLI 9.0
2 MF0363 PARADIGMI DI PROGRAMMAZIONE Ruffo Giancarlo Francesco, Guazzone Marco INF/01 Tutti ALESSANDRIA 9.0
2 MF0576 RETI Canonico Massimo INF/01 Tutti ALESSANDRIA 6.0
2 MF0577 RETI Galantino Stefano INF/01 Tutti VERCELLI 6.0
2 MF0365 SISTEMI OPERATIVI Theseider Dupre' Daniele, Anglano Cosimo Filomeno INF/01 Tutti ALESSANDRIA 12.0
2 MF0368 SISTEMI OPERATIVI Nicolazzo Serena, Belloni Paolo, Guazzone Marco INF/01 Tutti VERCELLI 12.0
3 MF0739 APPLICAZIONI MOBILI Canonico Massimo INF/01 Tutti ALESSANDRIA 6.0
3 MF0358 CALCOLO DELLE PROBABILITÀ E STATISTICA Zamparo Marco MAT/06 Tutti VERCELLI 6.0
3 MF0357 CALCOLO DELLE PROBABILITÀ E STATISTICA Todino Anna Paola MAT/06 Tutti ALESSANDRIA 6.0
3 S0515 CALCOLO NUMERICO Aceto Lidia MAT/08 Tutti ALESSANDRIA 6.0
3 MF0737 CYBERSECURITY Egidi Lavinia INF/01 Tutti ALESSANDRIA 6.0
3 MF0738 CYBERSECURITY Bringhenti Daniele INF/01 Tutti VERCELLI 6.0
3 MF0787 DISCRETE EVENT SIMULATION Franceschinis Giuliana Annamaria INF/01 Tutti ALESSANDRIA 4.0
3 MF0741 ETICA DIGITALE Benzi Margherita M-FIL/02 Tutti ALESSANDRIA 3.0
3 MF0359 FONDAMENTI, LINGUAGGI E TRADUTTORI Terenziani Paolo, Theseider Dupre' Daniele INF/01 Tutti ALESSANDRIA 9.0
3 MF0360 FONDAMENTI, LINGUAGGI E TRADUTTORI Giannini Paola, Bottrighi Alessio INF/01 Tutti VERCELLI 9.0
3 MF0221 INGEGNERIA DEL SOFTWARE Nicolazzo Serena INF/01 Tutti VERCELLI 6.0
3 S1730 INGEGNERIA DEL SOFTWARE Codetta Raiteri Daniele INF/01 Tutti ALESSANDRIA 6.0
3 MF0836 LOGICA AVANZATA Laguzzi Giorgio MAT/01 Tutti ALESSANDRIA 3.0
3 MF0884 PRINCIPI DI CONTROLLO DI GESTIONE Songini Lucrezia ECON-06/A Tutti ALESSANDRIA 3.0
3 MF0243 PROGETTAZIONE E IMPLEMENTAZIONE DI SISTEMI SOFTWARE IN RETE Leonardi Giorgio INF/01 Tutti ALESSANDRIA 9.0
3 MF0244 PROGETTAZIONE E IMPLEMENTAZIONE DI SISTEMI SOFTWARE IN RETE Testa Alberto, Franceschinis Giuliana Annamaria INF/01 Tutti VERCELLI 9.0
3 MF0781 PROGRAMMAZIONE DI APPLICAZIONI INTELLIGENTI Mantovani Daniele INF/01 Tutti VERCELLI 6.0
3 MF0875 QUANTUM COMPUTING Grassi Pietro FIS/02 Tutti VERCELLI 3.0
3 MF0742 SUPPORTO ALLE DECISIONI E ALLA GESTIONE DEI PROCESSI Terenziani Paolo, Montani Stefania, Pennisi Marzio Alfio INF/01 Tutti ALESSANDRIA 3.0
Dati aggiornati al: 18/07/2026, 04:28