Laurea in Informatica

Insegnamenti matricole

Nel corso di laurea potrai seguire questi insegnamenti a seconda del piano di studi che sceglierai. Cliccando su ciascuno, si aprirà una breve scheda descrittiva.

×
Stampa
Insegnamento
ANALISI MATEMATICA
Codice
MF0574
Anno Accademico
2024/2025
Anno regolamento
2024/2025
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
FERRERO ALBERTO
Docenti
CFU
6.0
Ore di lezione
48.0
Ore di studio individuale
102.0
Settore Scientifico Disciplinare (SSD)
MAT/05 - ANALISI MATEMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OBB
Categoria insegnamento
A
Anno
1
Periodo
Primo Semestre
Sede
ALESSANDRIA
Tipo di valutazione
V
Lingua insegnamento/Teaching language
ITALIANO
Italian
Contenuti/Content Summary
Insiemi, funzioni, limite per funzioni reali di una variabile reale, continuità, calcolo differenziale e integrale per funzioni reali di una variabile reale.
Sets, functions, limit for real functions of one real variable, continuity, differential and integral calculus for real functions of one real variable.
Testi di riferimento/Textbooks
Testi consigliati (in ordine alfabetico): M. Bramanti, C. Pagani, S. Salsa, "Analisi Matematica 1", Ed. Zanichelli. Bramanti, Pagani, Salsa, ``Analisi Matematica 1 con elementi di geometria e algebra lineare'', Ed. Zanichelli. Questo secondo volume è del tutto equivalente al primo per quanto riguarda la parte di Analisi Matematica 1 ma contiene una parte in più sugli argomenti di Geometria che vengono trattati nel corso di Matematica Discreta. Questo stesso volume rientra tra l'altro fra quelli consigliati per il corso di Matematica Discreta.
Suggested books (in alphabetic order): M. Bramanti, C. Pagani, S. Salsa, "Analisi Matematica 1", Ed. Zanichelli. Bramanti, Pagani, Salsa, ``Analisi Matematica 1 con elementi di geometria e algebra lineare'', Ed. Zanichelli. This second volume is completely equivalent to the first one concerning the part of Mathematical Analysis 1 but it contains an additional part on the Geometry topics that are covered in the Discrete Mathematics course. The same volume is, among other things, recommended for the Discrete Mathematics course.
Obiettivi formativi/Mission
Acquisizione delle nozioni di base del calcolo differenziale e integrale per le funzioni reali di una variabile reale.
Acquire the basic notions of differential and integral calculus for real functions of one real variable.
Prerequisiti/Required background knowledge
Nozioni di base dell'algebra e della trigonometria.
Elementary notions of algebra and trigonometry.
Metodi didattici/Teaching methods
Il corso è organizzato con lezioni frontali con parte teorica ed esercizi. Ogni argomento del corso viene introdotto per mezzo di una discussione generale che ha lo scopo di renderla il più possibile comprensibile. In un secondo momento vengono introdotte le nozioni di base di ciascun argomento; esse sono successivamente seguite da esempi con lo scopo di chiarirne il significato. Il terzo passo è dedicato agli enunciati dei principali teoremi e alle loro dimostrazioni. L'ultima parte è dedicata agli esercizi. La partecipazione attiva alle lezioni viene stimolata attraverso domande che si pongono anche l'obiettivo di comprendere il livello di difficoltà incontrato nel seguire le lezioni stesse.
The course is organized with frontal lessons with theoretical sessions and exercises. Each subject of the course is introduced by mean of a general discussion which has the purpose of making it comprehensible to the students as much as possible. In a second time the basic notions of each subject are introduced; they are successively followed by examples with the purpose of clarifying their meaning. The third step is devoted to the statements of the main theorems and their proofs. The last part is devoted to the exercises. The active participation to the lectures is encouraged through questions addressed to students which have also the purpose to make possible understanding which are the difficulties met by them in attending these lectures; students are also encouraged to suggest possible exercises on topics that from their point of view need more clarifications.
Altre informazioni/Further information
Oltre ai libri suggeriti per la teoria, ulteriore materiale per la preparazione dell'esame verrà fornito durante lo svolgimento del corso. Esso è costituito dalle diapositive utilizzate nelle lezioni a distanza e dalle prove scritte degli anni precedenti. 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 il docente titolare dell'insegnamento in relazione alla declinazione delle modalità di esame, in merito agli aspetti didattici.
In addition to the suggested books, further material for the preparation of the exam will be provided during the development of the course. It is made up of the slides used during the course of the last year and of the written exams of the previous years. 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 è costituito da una prova scritta. La prova scritta di solito è costituita da 4-6 esercizi su diversi argomenti del corso e da una o più domande sulla parte teorica. In ogni prova scritta, la maggior parte degli argomenti contenuti nel corso viene coperta. 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 preliminari sulle nozioni di base dell'Analisi Matematica e sulle funzioni elementari, da una discussione sugli esercizi contenuti nella prova scritta e da alcune domande finali sugli enunciati e le dimostrazioni dei principali risultati teorici. Nel caso in cui la prova orale risultasse soddisfacente sarà pertanto possibile ottenere un voto finale superiore a quello della prova scritta.
The exam consists of a written test. The written test usually consists of 4-6 exercises on different topics of the course and one or more questions on the theoretical part. In each written test, most of the topics contained in the course are covered. The oral test is optional and you are admitted only if a sufficient evaluation is achieved in the written test. The oral exam consists of preliminary questions on the basic notions of Mathematical Analysis and elementary functions, a discussion on the exercises contained in the written test and some final questions on the statements and proofs of the main theoretical results. If the oral test is satisfactory, it will therefore be possible to obtain a final grade higher than that of the written test.
Programma esteso/Content
Insiemi, operazioni insiemistiche; funzioni, composizione di funzioni, iniettività, suriettività, biunivocità, invertibilità, cardinalità di un insieme. Limite di una funzione reale di una variabile reale; limiti destro e sinistro; limiti e operazioni algebriche; Teorema dei due carabinieri; Teorema di esistenza del limite per funzioni monotone; Teorema di cambiamento di variabile per i limiti. Continuità per funzioni reali di una variabile reale; continuità e operazioni algebriche; continuità di funzioni composte; Teorema di permanenza del segno; Teorema di Weierstrass; Teorema degli zeri e dei valori intermedi; continuità della funzione inversa. Calcolo differenziale per funzioni reali di una variabile reale; derivate e operazioni algebriche; derivata di una funzione composta; derivabilità della funzione inversa. Massimi e minimi relativi; monotonia di una funzione e segno della derivata prima; Teoremi di de l'Hopital; funzioni convesse e concave, punti di flesso e legame con il segno della derivata seconda. Integrazione secondo Riemann; integrabilità di somme e prodotti di funzioni integrabili; Teorema della media; funzioni integrali; Teorema fondamentale del calcolo integrale; formule di integrazione per sostituzione e per parti.
Sets and operations between sets; definition of function, composition between functions, injectivity, surjectivity, bijectivity, invertibility, cardinality of a set. Limit of a real function of one real variable; right limit and left limit; limits and algebraic operations; Comparison Theorem; existence of the limit of a monotone function; change of variable. Continuity for real functions of one real variable; continuity and algebraic operations; continuity of a composition ; Sign Permanence Theorem; Weierstrass Theorem; Intermediate Values Theorem; continuity of the inverse function. Differential Calculus for real functions of one real variable; derivatives and algebraic operations; derivative of a composition; differentiability of the inverse function. Relative maxima and minima; monotonicity of a function and sign of the first order derivative; de l'Hopital Theorems; convex and concave functions, flex points and sign of the second order derivative. Riemann integral; integrability of sums and products of integrable functions; Mean Value Theorem; integral functions; Fundamental Theorem of Integral Calculus; integration by parts and change of variable formula.
Risultati di apprendimento attesi/Intended learning objectives
- Conoscenza e capacità di comprensione: acquisizione delle principali nozioni del calcolo differenziale ed integrale per le funzioni reali di una variabile reale. - Capacità di applicare conoscenza e comprensione: saper dedurre le principali proprietà qualitative e quantitative per una funzione reale di una variabile reale. - Capacità di apprendere: acquisizione di una certa padronanza nell'utilizzo del ragionamento logico e nell'applicazione del rigore metodologico necessari per affrontare problemi basati sulla modellazione matematica.
- Knowledge and understanding: acquisition of the main notions of differential and integral calculus for real functions of one real variable. - Applying knowledge and understanding: to be able to deduce the main qualitative and quantitative properties for real functions of one real variable. - Learning skills: the student must learn a proper skill in using in the logical thinking and in the application of the methodological rigor essential for facing problmes based on mathematical models.
×
Stampa
Insegnamento
PROGRAMMAZIONE 1
Codice
MF0163
Anno Accademico
2024/2025
Anno regolamento
2024/2025
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
A
Anno
1
Periodo
Primo Semestre
Sede
ALESSANDRIA
Tipo di valutazione
V
Lingua insegnamento/Teaching language
Italiano
Italian
Contenuti/Content Summary
Il corso ha la finalità di introdurre i fondamenti della programmazione degli elaboratori elettronici, partendo dal concetto di algoritmo e dalla descrizione dei concetti di base di un programma, per arrivare a concetti avanzati di strutture dati e di controllo dei linguaggi di programmazione. Il corso si propone, inoltre, di presentare i concetti di base del linguaggio di programmazione C impiegato a supporto dell’insegnamento della programmazione, nonché per lo svolgimento di esercitazioni pratiche in laboratorio.
The course has the goal of introducing the fundamentals of computer programming, starting from the concept of algorithm and the basic concepts of a program, and arriving to advanced concepts of data structures and control in the programming language. Moreover the course presents the basic concepts of the C programming language used to support the teaching of programming, and to perform practical exercises in the laboratory.
Testi di riferimento/Textbooks
P. Deitel, H. Deitel Il linguaggio C. Fondamenti e tecniche di programmazione, Pearson.Materiale integrativo fornito dai docenti su DIR
P. Deitel, H. Deitel Il linguaggio C. Fondamenti e tecniche di programmazione, Pearson. Additional materials on DIR.
Obiettivi formativi/Mission
Le studentesse e gli studenti devono essere capace di usare la metodologia top-down nell’analisi dei problemi. In particolare, deve aver acquisito la capacita di • determinare input e output; • sviluppare diagrammi di flusso; • sviluppare programmi nel linguaggio C utilizzando le nozioni di: variabili, tipi di dato; costrutto di selezione (if..else) e condizioni booleane; iterazione e costrutto while; cicli for e do-while; funzioni e passaggio dei parametri; passaggio dei parametri per valore e per riferimento; array e algoritmi su array; il tipo stringa; gestione dei files; • Deve inoltre aver acquisito la capacità di analizzare la complessità di un algoritmo, compilare, verificare ed eseguire programmi.
Students must acquire the capability of applying the top-down methodology in the problem analysis. Specifically, they must be able • to identify input and output, • to develop flow diagrams, • to develop C programs, using the basic notions of: variables and data types; if-then-else and boolean conditions; iteration (while, for, do-while); functions and parameters (by value and by reference); arrays, strings, files • Additionally they must acquire the capability of analyzing the algorithm complexity, and of compiling, verifying and executing C programs.
Prerequisiti/Required background knowledge
Nessuno
None
Metodi didattici/Teaching methods
Lezioni tradizionali e esercitazioni nel laboratorio informatico.
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. La partecipazione attiva permette una 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.
Monitoring the learning process: during the course the students will complete assigments in the computer lab under the supervision of a teacher. Active participation allows a check on how topics are received. 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 e’ svolto seguendo due modalita’: con e senza l’uso del calcolatore. La prova con il calcolatore (prova di laboratorio) prevede lo sviluppo e la verifica di un programma in linguaggio C. La verifica senza calcolatore consiste in un esame scritto (obbligatorio) ed un orale (opzionale). L’esame scritto, a discrezione dello studente, puo’ essere sostenuto o tramite due prove in itinere, o con un’unica prova finale. Le prove scritte prevedono l’analisi di problemi di programmazione e lo sviluppo di diagrammi di flusso e programmi C atti a risolverli. La valutazione finale verra’ ottenuta tramite una media pesata dei risultati ottenuti nelle singole prove.
The exam follows two different modalities: with and without computer. The computer-based exam (laboratory test) requires the development and testing of a program in C. The part of exam without computer consists of a written examination (compulsory) and an oral one (optional). The written examination may be carried on as a single exam or through two intermediate written exams. The written examinations consist in the analysis of simple programming problems, and in the development of flow charts and C programs solving them. The final score is obtained through a weighted average of the scores achieved in each single exam.
Programma esteso/Content
- introduzione alla programmazione strutturata- metodologia top-down nell’analisi dei problemi e nello sviluppo dei diagrammi di flusso (e dei programmi) - concetti di base della programmazione (espressi mediante il linguaggio C): - variabili, tipi di dato; - input e output ; - primi programmi C con il solo uso di sequenze; - costrutto di selezione (if..else) e condizioni booleane; - iterazione e costrutto while; cicli for e do-while; invarianti di ciclo (informali) - funzioni e passaggio dei parametri; passaggio dei parametri per valore e per riferimento; - array e algoritmi su array; - il tipo stringa- gestione dei files; - analisi di complessità di un algoritmo.- Introduzione al sistema operativo Linux e principali comandi per la gestione dei file e dei processi, e per la compilazione ed esecuzione di programmi.
- Introduction to structured programming- Top-down methodology in the problem analysis and in the development of flow charts (and programs)- Basic programming concepts (expressed in the “C” language):- variables, data types- input and output;- esay C programs using only sequences- if-then-else and Boolean Conditions- iteration (while, for, do-while); loop invariants (not formal);- functions and parameter passing (by value and by reference)- arrays and array algorithms;- the string data type- file management- complexity analysis- Introduction to Linux. Main commands to manage files, to compile and execute programs.
Risultati di apprendimento attesi/Intended learning objectives
Al termine del corso, le studentesse e gli studenti devono essere in grado, dato un semplice problema di programmazione, di individuarne un algoritmo risolutivo, implementarlo in linguaggio C, eseguirlo al calcolatore. Conoscenza e comprensione: concetto di algoritmo, concetto di programma, strutture dati fondamentali (tipi scalari, vettori, puntatori, file), costrutti di base della programmazione (if-then-else, while, for, funzioni e parametri). Capacità di applicare conoscenza e comprensione: dato un problema, - individuare i dati di input da raccogliere dall'utente e i dati di output da produrre; - individuare le strutture dati necessarie per gestire tali dati; - definire un algoritmo che trasforma i dati di input nei dati di output, seguendo i costrutti della programmazione; - scrivere al calcolatore il programma sorgente che implementa l'algoritmo, utilizzando un linguaggio di programmazione (C); - generare il programma eseguibile tramite la compilazione del programma sorgente, al calcolatore; - esecuzione e test del programma eseguibile, al calcolatore. Autonomia di giudizio: in modo autonomo lo studente deve riuscire ad identificare le strutture dati necessarie, definire ed implementare l'algoritmo nel linguaggio di programmazione (C), ed infine compilare ed eseguire il programma. Abilità comunicative: lo studente deve riuscire a definire un algoritmo a vari livelli di astrazione, quali il diagramma di flusso, lo pseudo-codice, il programma in linguaggio di programmazione. Inoltre si esige che il programma richieda e presenti i dati all'utente tramite messaggi comprensibili dall'utente. Capacità di apprendimento: lo studente deve essere capace di apprendere come si genera un algoritmo a partire dal problema, come si implementa l'algoritmo in C, ed infine come si compila e si esegue il programma al calcolatore.
At the end of the course, given a simple programming problem, the students must be able to define the algorithm solving the problem, implement the algorithm in C language, execute the program on the computer. Knowledge and comprehension: concepts of algorithm and program, fundamental data structures (scalar types, vector, pointers and files), basic programming constructs (if-then-else, while, for, functions and parameters ). Capacity to apply knowledge and comprehension: given a problem, - identifying input data to be collected from the user, and output data to be produced; - identifying the data structures necessary to manage such data; - defining an algorithm transforming input data in output data, by following the programming constructs; - writing on the computer the source program implementing the algorithm, using the programming language (C); - generating the executable program by compiling the source program, on the computer; - executing and testing the executable program, on the computer. Judgement autonomy: in an autonomous way the student must be able to identify the necessary data structures, define and implement the algorithm in the programming language (C), and finally compile and execute the program. Communication abilities: the student must be able to define an algorithm at several abstraction levels, such as the flow-chart, the pseudo-code, the program in the programming language. Moreover the program must require and present data to the user by means of message that the user can understand. Learning capacity: the student must be able to learn how to generate an algorithm from the problem, how to implement an algorithm in C, and finally how to compile and execute a program on a computer.
×
Stampa
Insegnamento
PROGRAMMAZIONE 1
Codice
MF0207
Anno Accademico
2024/2025
Anno regolamento
2024/2025
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
CODETTA RAITERI Daniele
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
A
Anno
1
Periodo
Primo Semestre
Sede
VERCELLI
Tipo di valutazione
V
Lingua insegnamento/Teaching language
Italiano
Italian
Contenuti/Content Summary
Il corso ha la finalità di introdurre i fondamenti della programmazione degli elaboratori elettronici, partendo dal concetto di algoritmo e dalla descrizione dei concetti di base di un programma, per arrivare a concetti avanzati di strutture dati e di controllo dei linguaggi di programmazione. Il corso si propone, inoltre, di presentare i concetti di base del linguaggio di programmazione C impiegato a supporto dell’insegnamento della programmazione, nonché per lo svolgimento di esercitazioni pratiche in laboratorio.
The course has the goal of introducing the fundamentals of computer programming, starting from the concept of algorithm and the basic concepts of a program, and arriving to advanced concepts of data structures and control in the programming language. Moreover the course presents the basic concepts of the C programming language used to support the teaching of programming, and to perform practical exercises in the laboratory.
Testi di riferimento/Textbooks
- Kelley, Pohl, “C: didattica e programmazione”, Pearson Italia. - P. Deitel, H. Deitel, “Il linguaggio C – Fondamenti e tecniche di programmazione”, Pearson Italia. - Kernighan, Ritchie, Linguaggio C, Pearson Italia.
- Kelley, Pohl, “A book on C : programming in C", Addison-Wesley. - P. Deitel, H. Deitel, “C: How to program”, Prentice Hall. - Kernighan, Ritchie, The C Programming Language (2nd edition), Prentice Hall.
Obiettivi formativi/Mission
La Studentessa/lo Studente deve conoscere i costrutti di base della programmazione, le strutture dati di base (variabili, costanti, array) e l'organizzazione del programma in più funzioni. Dato un problema di media complessità, la Studentessa/lo Studente deve essere in grado di individuare i possibili dati di input, i possibili dati di output e l'algoritmo che risolve il problema. Inoltre la Studentessa/lo Studente deve essere in grado di scrivere un programma in linguaggio C corrispondente all'algoritmo, di compilarlo ed eseguirlo.
The student must know the basic programming constructs, the basic data structures (variables, constants, arrays), and the organization of a program into functions. Given a problem of average complexity, the student must be able to deduce the possible input data, the possible output data, and the algorithm solving the problem. Moreover the student must be able to write a programme in C language, corresponding to the algorithm, compile it, and execute it.
Prerequisiti/Required background knowledge
Nessuno
None
Metodi didattici/Teaching methods
Il corso si articola in lezioni frontali in aula e in esercitazioni al calcolatore in laboratorio. Le lezioni frontali occupano circa 48 ore. Le esercitazioni occupano circa 24 ore. Modalità: durante le lezioni frontali si presentano gli aspetti teorici della programmazione (algoritmi, costrutti, strutture dati, ecc.). Inoltre, tramite un calcolatore collegato ad un proiettore, si mostra come tali aspetti si possono implementare al calcolatore. Per ogni argomento vengono presentati vari esempi di problemi ed i corrispondenti algoritmi e programmi. Durante le lezioni in laboratorio si richiede alle Studentesse/agli Studenti di realizzare gli stessi programmi visti in aula, e di realizzarne altri che risolvono problemi analoghi. Strumenti: per assimilare in modo graduale i concetti di algoritmo e di programma, e i relativi costrutti, all'inizio del corso gli algoritmi vengono definiti tramite vari livelli di astrazione: diagramma di flusso, pseduo-codice, linguaggio di programmazione. Dato che si tratta di un corso di programmazione di base, i programmi vengono scritti al calcolatore tramite un comune editor di testo. Per abituare le Studentesse/gli Studenti all'uso del terminale (utile per insegnamenti successivi), la compilazione e l'esecuzione dei programmi avviene dalla riga di comando del terminale. Oltre ai comandi di compilazione ed esecuzione, vengono presentati ed applicati i principali comandi da terminale. Durante il corso, l'apprendimento viene verificato tramite lo svolgimento di una serie di esercizi per ogni argomento del corso. Ogni esercizio richiede la definizione di un algoritmo e la scrittura in linguaggio C del programma corrispondente. Durante le lezioni di laboratorio, ogni esercizio viene introdotto, si definisce sommariamente la struttura del programma, si richiede alle Studentesse/agli Studenti di completare in modo autonomo il programma entro un certo periodo di tempo, dopodiché si fornisce la soluzione dell'esercizio per verificare la correttezza. Alla fine del corso vengono svolte alcune simulazioni di esame, al calcolatore, per consentire alle Studentesse/agli Studenti di rendersi conto di quanto richiesto effettivamente all'esame. Oltre alle ore di laboratorio, il corso prevede delle ore di tutorato in cui le Studentesse/gli Studenti possono continuare gli esercizi, chiarire eventuali dubbi, o richiedere che un argomento venga spiegato una seconda volta. Il corso ha una propria pagina nella piattaforma DIR (Didattica in Rete), che contiene le slide del corso, i programmi presentati in aula, i programmi preparati in laboratorio, i programmi preparati durante il tutorato, le prove d'esame del passato, ecc.
The course consists of frontal lectures and laboratory lectures. Frontal lectures take 48 hours. laboratory lectures take 24 hours. Modality: during the frontal lectures the theoretical aspects about programming (algorithms, constructs, data structure, etc) are presented. Moreover, by means of a computer connected to a projector, the way to implement such aspects on a computer, is shown. For each topic, several examples of problems are presented, together with the corresponding algorithms and programs. During the laboratory lectures, the students are asked to implement the same programs presented in the frontal lectures, and to implement other programs solving similar problems. Tools: in order to gradually learn the concepts of algorithm, program, and their constructs, at the begin of the course, the algorithms are defined through several abstraction levels: flow-chart, pseudo-code, programming language. Since it is a course on basic programming, the programs are written on the computer by means of an ordinary text editor. In order to make the students familiar with the terminal (useful for the following courses), program compiling and execution is performed through the command line of the terminal. Besides the compiling and execution commands, the main terminal commands are presented and applied. During the course, learning is verified through a series of exercises for each topic of the course. Each exercise requires to define an algorithm and write the corresponding program in C language. During the laboratory lectures, each exercise is introduced, the general program structure is defined, and the students are asked to complete the program in an autonomous way, within a certain amount of time. Then, the solution of the exercise is provided in order to verify the correctness. At the end of the course, several exam simulation are performed, on the computer, to allow the students to be aware of what is actually required at the exam. Besides the laboratory lectures, tutoring lectures are available for the students, in order to continue the exercises, clarify doubts, and require to explain a topic for the second time. The course has its own page in the platform DIR (Didattica in Rete), which contains the slides, the programs shown during the frontal lectures, the programs prepared during the laboratory and tutoring lectures, the exams of the past, etc.
Altre informazioni/Further information
Non sono previste prove parziali durante il corso. 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.
No partial exams will take place during the course. 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.
Modalità di verifica dell'apprendimento/Assessment methods
L'esame consiste in una prova pratica al calcolatore, in cui la Studentessa/lo Studente, dato un determinato problema, deve: definire l'algoritmo che lo risolve, implementare l'algoritmo in linguaggio C strutturando opportunamente il codice, compilare con successo il programma, verificare il funzionamento corretto del programma. Il programma deve essere strutturato in varie funzioni. Tipicamente si richiede l'implementazione di 5 funzioni, inclusa la funzione main. Le funzioni richieste all'esame sono analoghe a quelle presentate durante il corso, in aula o in laboratorio. Ad ogni funzione viene assegnato un punteggio dipendente dalla complessità della funzione (mediamente 6 punti). La prova dura 2 ore e riguarda tutti gli argomenti del corso. Le Studentesse/gli studenti possono trovare le prove pratiche del passato, con le soluzioni corrispondenti, sulla piattaforma DIR. Durante l'esame non è consentita la consultazione del materiale del corso o di manuali. Inoltre si usano i calcolatori del laboratorio informatico; è vietato l'uso di dispositivi mobili o computer portatili.
The exam consists of an exercise on the computer, where the student, given a specific problem, must: define the solving algorithm, implement the algorithm in C language, properly structuring the code, successfully compile the program, verify the correct functioning of the program. The program must be structured into several functions. Typically, 5 functions are required to be implemented, including the main function. The functions required at the exam are similar to those presented in the course, during the frontal or laboratory lectures. A score depending on the complexity, is associated with each function (6 points on average). The exam has a 2 hours duration and is about all the topics of the course. The students can find the exercises of the past and the corresponding solutions on the DIR platform. During the practical test, consulting the course material or manuals is not allowed. The computers in the laboratory are used; the use of mobile devices or portable computers is forbidden.
Programma esteso/Content
- introduzione alla programmazione ed al linguaggio C; - algoritmi e loro rappresentazione; - variabili, costanti, tipi di dato e operatori aritmetici; - operatori di input e output in C; - primi programmi C con il solo uso di sequenze di comandi; - costrutto di selezione (if...else) con condizioni booleane semplici e composte; - iterazione e costrutti while, for e do-while; - array (vettori, stringhe, matrici); - funzioni e passaggio dei parametri per valore; - concetto di puntatore e passaggio dei parametri per riferimento; - aritmetica dei puntatori; - parametri da riga di comando; - input/output su file; - uso del terminale.
- introduction to programming and C language; - algorithms and their representation; - variables, constants, data types, arithmetic operators; - input/output operators in C; - first programs in C, with the only use of command sequences; - selection (if...else) with simple and composed Boolean conditions; - loops (while, for, do-while); - arrays; - functions with arguments by value; - pointers and function arguments by reference; - pointer arithmetic; - arguments from command line; - input/output to file; - use of terminal.
Risultati di apprendimento attesi/Intended learning objectives
Al termine del corso, la Studentessa/lo Studente deve essere in grado, dato un semplice problema di programmazione, di individuarne un algoritmo risolutivo, implementarlo in linguaggio C, eseguirlo al calcolatore e verificarne la correttezza. Conoscenza e comprensione: concetto di algoritmo, concetto di programma, strutture dati fondamentali, costrutti di base della programmazione. Capacità di applicare conoscenza e comprensione: dato un problema, - individuare i dati di input da raccogliere dall'utente e i dati di output da produrre; - individuare le strutture dati necessarie per gestire tali dati; - definire un algoritmo che trasforma i dati di input nei dati di output, seguendo i costrutti della programmazione; - scrivere al calcolatore il programma sorgente che implementa l'algoritmo, utilizzando un linguaggio di programmazione (C); - generare il programma eseguibile tramite la compilazione del programma sorgente, al calcolatore; - esecuzione e test del programma eseguibile, al calcolatore. Autonomia di giudizio: in modo autonomo la Studentessa/lo Studente deve riuscire ad identificare le strutture dati necessarie, definire ed implementare l'algoritmo nel linguaggio di programmazione (C), ed infine compilare ed eseguire il programma. Abilità comunicative: la Studentessa/lo Studente deve riuscire a definire un algoritmo a vari livelli di astrazione, quali il diagramma di flusso, lo pseudo-codice, il programma in linguaggio di programmazione. Inoltre si esige che il programma richieda e presenti i dati all'utente tramite messaggi comprensibili dall'utente. Capacità di apprendimento: la Studentessa/lo Studente deve essere capace di apprendere come si genera un algoritmo dal problema, come si implementa l'algoritmo in un linguaggio di programmazione, ed infine come si compila e si esegue il programma al calcolatore.
At the end of the course, given a simple programming problem, the student must be able to define the algorithm solving the problem, implement the algorithm in C language, execute the program on the computer, and verify its correctness. Knowledge and comprehension: concepts of algorithm and program, fundamental data structures, basic programming constructs. Capacity to apply knowledge and comprehension: given a problem, - identifying input data to be collected from the user, and output data to be produced; - identifying the data structures necessary to manage such data; - defining an algorithm transforming input data in output data, by following the programming constructs; - writing on the computer the source program implementing the algorithm, using the programming language (C); - generating the executable program by compiling the source program, on the computer; - executing and testing the executable program, on the computer. Judgement autonomy: in an autonomous way the student must be able to identify the necessary data structures, define and implement the algorithm in the programming language (C), and finally compile and execute the program. Communication abilities: the student must be able to define an algorithm at several abstraction levels, such as the flow-chart, the pseudo-code, the program in the programming language. Moreover the program must require and present data to the user by means of message that the user can understand. Learning capacity: the student must be able to learn how to generate an algorithm from the problem, how to implement an algorithm in a programming language, and finally how to compile and execute a program on a computer.
×
Stampa
Insegnamento
ANALISI MATEMATICA
Codice
MF0575
Anno Accademico
2024/2025
Anno regolamento
2024/2025
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
LUZZINI PAOLO
Docenti
CFU
6.0
Ore di lezione
48.0
Ore di studio individuale
102.0
Settore Scientifico Disciplinare (SSD)
MAT/05 - ANALISI MATEMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OBB
Categoria insegnamento
A
Anno
1
Periodo
Primo Semestre
Sede
VERCELLI
Tipo di valutazione
V
Lingua insegnamento/Teaching language
ITALIANO
Italian
Contenuti/Content Summary
Insiemi, funzioni, limiti per funzioni reali di una variabile reale, continuità, calcolo differenziale e integrale per funzioni reali di una variabile reale.
Sets, functions, limits for real functions of one real variable, continuity, differential and integral calculus for real functions of one real variable.
Testi di riferimento/Textbooks
Testo consigliato per la teoria: Bramanti, Pagani, Salsa, “Analisi Matematica 1 con elementi di geometria e algebra lineare”, Ed. Zanichelli. In alternativa: Bramanti, Pagani, Salsa, “Analisi Matematica 1”, Ed. Zanichelli. Testo consigliato per gli esercizi: Salsa, Squellati: "Esercizi di Analisi Matematica 1", Ed. Zanichelli.
Suggested book for the theoretical part: Bramanti, Pagani, Salsa, “Analisi Matematica 1 con elementi di geometria e algebra lineare”, Ed. Zanichelli. As an alternative: Bramanti, Pagani, Salsa, “Analisi Matematica 1”, Ed. Zanichelli. Suggested book for exercises: Salsa, Squellati: "Esercizi di Analisi Matematica 1", Ed. Zanichelli.
Obiettivi formativi/Mission
Acquisizione delle nozioni di base del calcolo differenziale e integrale per le funzioni reali di una variabile reale. Capacità di collegare tra loro queste nozioni e di sfruttarle nella risoluzione di problemi semplici.
Acquisition of the basic notions of differential and integral calculus for real functions of one real variable. Ability to interlink these notions and use them to solve easy problems.
Prerequisiti/Required background knowledge
Nozioni di base dell'algebra e della trigonometria.
Basic notions of algebra and trigonometry.
Metodi didattici/Teaching methods
Il corso è organizzato per specifiche lezioni frontali, che copriranno sia la teoria che gli esercizi. In entrambe le situazioni si ricercherà la partecipazione attiva e l'interazione di e con le studentesse e gli studenti, anche tramite domande mirate sugli argomenti correnti.
The class is organized in specific lectures, that will cover both theory and excercises. In both situations we will look for the active participation and the interaction of the students and among them, also through focused questions on the current arguments.
Altre informazioni/Further information
Oltre ai libri suggeriti per la teoria e gli esercizi, ulteriore materiale per la preparazione dell'esame verrà fornito durante lo svolgimento del corso. 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 il docente titolare dell'insegnamento in relazione alla declinazione delle modalità di esame, in merito agli aspetti didattici.
In addition to the suggested books for the theoretical part and the exercises, further material for the preparation of the exam will be provided during the development of the course. 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 verificherà sia la conoscenza della teoria (enunciati di teoremi, dimostrazioni, definizioni) che la capacità di svolgere gli esercizi. La prova orale è a discrezione del docente nel caso ci fosse la necessità di ulteriori elementi di valutazione.
The written exam will test both knowledge of the theory (theorems, proofs, definitions) and the ability to solve exercises. The oral exam is at the discretion of the instructor if additional assessment elements are needed.
Programma esteso/Content
Insiemi, operazioni insiemistiche; funzioni, composizione di funzioni, iniettività, suriettività, biunivocità, invertibilità, cardinalità di un insieme. Limite di una funzione reale di una variabile reale; limiti destro e sinistro; limiti e operazioni algebriche; Teorema dei due carabinieri; Teorema di esistenza del limite per funzioni monotone; Teorema di cambiamento di variabile per i limiti. Continuità per funzioni reali di una variabile reale; continuità e operazioni algebriche; continuità di funzioni composte; Teorema di permanenza del segno; Teorema di Weierstrass; Teorema degli zeri e dei valori intermedi; continuità della funzione inversa. Calcolo differenziale per funzioni reali di una variabile reale; derivate e operazioni algebriche; derivata di una funzione composta; derivabilità della funzione inversa. Massimi e minimi relativi; monotonia di una funzione e segno della derivata prima; Teoremi di de l'Hopital; funzioni convesse e concave, punti di flesso e legame con il segno della derivata seconda. Integrazione secondo Riemann; integrabilità di somme e prodotti di funzioni integrabili; Teorema della media; funzioni integrali; Teorema fondamentale del calcolo integrale; formule di integrazione per sostituzione e per parti.
Sets and operations between sets; definition of function, composition between functions, injectivity, surjectivity, bijectivity, invertibility, cardinality of a set. Limit of a real function of one real variable; right limit and left limit; limits and algebraic operations; Comparison Theorem; existence of the limit for a monotone function; change of variable. Continuity for real functions of one real variable; continuity and algebraic operations; continuity of a composition; Sign Permanence Theorem; Weierstrass Theorem; Intermediate Values Theorem; continuity of the inverse function. Differential Calculus for real functions of one real variable; derivatives and algebraic operations; derivative of a composition; differentiability of the inverse function. Relative maxima and minima; monotonicity of a function and sign of the first order derivative; de l'Hopital Theorems; convex and concave functions, flex points and sign of the second order derivative. Riemann integral; integrability of sums and products of integrable functions; Mean Value Theorem; integral functions; Fundamental Theorem of Integral Calculus; integration by parts and change of variable formula.
Risultati di apprendimento attesi/Intended learning objectives
Al termine del corso le studentesse e gli studenti devono conoscere le nozioni di base dell'Analisi Matematica (funzioni in una variabile, limiti, derivate, integrali) e avere sviluppato una padronanza delle nozioni apprese che gli consenta di collegarle tra loro in autonomia e di utilizzarle congiuntamente nella risoluzione di semplici problemi teorici. Inoltre, le studentesse e gli studenti devono essere in grado di spiegare chiaramente sia le nozioni stesse, sia il loro utilizzo in termini generali o nel caso specifico di un problema.
At the end of the class the student must know the basic notions of Calculus (functions in one variable, limits, derivatives, integrals) and master to be able to autonomously interlink them and use them jointly to solve simple theoretic problems. Moreover, the student must be able to explain in a clear manner both the notions, and their use in a general context or in a specific problem.
×
Stampa
Insegnamento
ARCHITETTURA DEGLI ELABORATORI
Codice
MF0199
Anno Accademico
2024/2025
Anno regolamento
2024/2025
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
Sacco Alessio
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
1
Periodo
Annuale
Sede
VERCELLI
Tipo di valutazione
V
Moduli
Codice Insegnamento Settore Scientifico Disciplinare (SSD) Docenti Agenda web
MF0200ARCHITETTURA 1 INF/01 - INFORMATICA Sacco Alessio
MF0201ARCHITETTURA 2 INF/01 - INFORMATICA Lai Mirko, Sacco Alessio
Mostra scheda insegnamento padre
×
Stampa
Insegnamento
ARCHITETTURA DEGLI ELABORATORI: ARCHITETTURA 1
Codice
MF0200
Anno Accademico
2024/2025
Anno regolamento
2024/2025
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
Sacco Alessio
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
1
Periodo
Primo Semestre
Sede
VERCELLI
Tipo di valutazione
G
Lingua insegnamento/Teaching language
italiano
italian
Contenuti/Content Summary
Descrizione dell'architettura, strutturata a livelli, di un moderno sistema di elaborazione, delle sue principali componenti hardware e della sua interfaccia verso i livelli software eseguiti su tale hardware. Questo è il primo di due moduli integrati in un unico corso. Esso pone le basi introducendo: la rappresentazione binaria di tutti i tipi di dati (numeri, testo, immagini, grandezze analogiche), i componenti base dell’hardware di un calcolatore e in particolare la struttura interna del processore, l’interazione tra il processore e la memoria centrale e tra il processore e i dispositivi di input/output
The architecture of modern computers is introduced emphasizing its layered structure. The main hardware components are presented and their interface towards the upper software layers is explained. This is the first of two units that together constitute one integrated course. It lays out the basis by introducing: the binary encoding of all data types (numbers, text, images, analog quantities), the basic hardware components of a computer and in particular the internal structure of the CPU, the interaction between the CPU and the central memory and between the CPU and the I/O devices.
Testi di riferimento/Textbooks
A.S. Tanenbaum, T.Austin: "Architettura dei Calcolatori: un approccio strutturale", VI Edizione, Pearson Education Italia, 2013.
A.S. Tanenbaum, T. Austin: "Structured Computer Organization", VI Ed., Pearson Education, 2013.
Obiettivi formativi/Mission
Il primo obiettivo del corso è far conoscere le basi della codifica binaria dell’informazione numerica, testuale e delle immagini e le basi dell’elaborazione di dati codificati in binario attraverso funzioni logiche, definite per mezzo dell’algebra di Boole, e realizzabili concretamente sotto forma di circuiti logici. Un altro obiettivo è quello di far conoscere i principali componenti di un sistema di calcolo, far comprendere i principi di base del loro funzionamento e delle interazioni, sottolineando come il rapido sviluppo di nuove tecnologie abbia influito sull’evoluzione dell’organizzazione dei sistemi di calcolo. Ciò contribuisce a sviluppare l’abilità di confrontare le caratteristiche di diverse organizzazioni di sistemi di calcolo (o di componenti di un sistema di calcolo) e valutarne le differenze in termini di costo e prestazioni. Un altro importante concetto introdotto nel corso è la strutturazione stratificata dei sistemi di calcolo: si vuole sottolineare che tale struttura deriva dall’applicazione del metodo di scomposizione di un problema complesso in sotto-problemi più semplici. Per far comprendere in termini più concreti tale concetto, esso viene esemplificato attraverso l’architettura di un semplice processore (il MIC1, non reale ma realistico): le semplici operazioni che l’architettura di base è in grado di eseguire permettono di realizzare un linguaggio macchina più evoluto (IJVM) tramite la microprogrammazione, questo secondo argomento viene affrontato nel secondo modulo.
The first goal of this course is to develop the knowledge on the basic concepts of binary information encoding (binary representation of numbers, text and images) and of the processing of binary data through logical functions, defined by means of Boolean algebra, and implemented by logic circuits. Another goal is to develop the knowledge about the main components of a computer, and understand the basic operational principles and the interactions between such components; in this context it is interesting to highlight the impact that the technological advances have on the organization of computer architecture. Such observations allow to exercise the ability to compare the characteristics of different computer architecture organizations (or of different computer component organizations) and to evaluate the differences in cost and performance. Another important concept introduced in this course is the layered structure of the computer systems: it derives from the application of the method of problem decomposition into simpler sub-problems. To help understanding in practice such concept, it is exemplified by presenting the architecture of a simple processor (MIC1, not real but realistic): building on the simple operations that can be executed directly by the basic hardware architecture, it is possible to implement the more powerful MIC1 machine language (IJVM) through microprogramming, the latter topic is developed in the second module.
Prerequisiti/Required background knowledge
nessuno
none
Metodi didattici/Teaching methods
Gli argomenti trattati nel corso sono esposti prevalentemente tramite lezioni frontali che potranno essere integrate con alcune esercitazioni in laboratorio (allo scopo di osservare la rappresentazione in memoria di diversi tipi di dato, di disegnare e simulare circuiti logici combinatori e sequenziali, di sperimentare l’esecuzione di semplici programmi in linguaggio macchina tramite un emulatore). Durante le lezioni viene usato uno strumento (Wooclap) che permette di interagire con gli studenti tramite quiz anonimi e interattivi accessibili tramite smartphone. In questo modo è possibile stimolare la riflessione e rilevare eventuali criticità nel processo di apprendimento. Per ogni argomento trattato vengono proposti esercizi o quiz formativi. Vengono inoltre proposti incontri a piccoli gruppi alla presenza di un tutor, per svolgere e discutere esercizi (simili a quelli proposti nelle prove scritte).
The topics of the course are mainly presented through class lectures that may be integrated with lab sessions (to experiment the internal representation of various data types, to design and simulate combinatorial and sequential circuits, to experiment the execution of simple machine language programs through an emulator). During the lectures an interactive tool (Wooclap) is used to get a feedback from the students through anonymous quizzes that can be answered using the smartphone. This way the students are stimulated to reflect; moreover this activity allows an early detection of the possible critical aspects in the learning process. After presenting each topic the students are challenged with exercises and formative quizzes. Tutored meetings in small groups are proposed, to develop and discuss exercises (similar to those included in the written exam).
Altre informazioni/Further information
Sulla piattaforma DIR sono disponibili: la copia elettronica delle slide utilizzate a lezione, esempi di testi d’esame, quiz di autovalutazione, informazioni generali sul corso e avvisi relativi allo svolgimento del corso e sugli esami. Tramite un forum specifico del corso vengono pubblicate informazioni generali sul corso, avvisi relativi allo svolgimento del corso e informazioni riguardanti gli esami. Inoltre sono attivi forum dove gli studenti possono porre domande sugli argomenti del corso e sugli esercizi proposti, e rispondere a domande pubblicate da altri 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, 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.
It is possible to download electronic copy of all slides of the lectures, perform self-assessment tests, read general information on the course and news about the lectures and the exam organization on the e-learning platform DIR . General information on the organization of the course and of the exams are published through a forum. Specific forums can be used by students to ask questions on course topics or exercises, or to provide answers posted by other students. 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 è una prova scritta con domande di risoluzione di esercizi e domande di teoria. Possono essere proposte prove in itinere (come supporto al superamento dell’esame finale) che possono anche assumere la forma di esercizi da svolgere in laboratorio. La prova comprende da quattro a sei domande che possono essere articolate in sottopunti e comprendono anche esercizi di applicazione delle nozioni apprese ad esempi concreti. La prova è superata se si raggiunge un punteggio di almeno il 60% dei punti totalizzabili sull’insieme di domande. Ciascuno dei due moduli del corso integrato ha un suo esame ed è necessario conseguire un esito sufficiente in ciascun modulo per superare l’esame complessivo. Il voto finale è la media aritmetica dei due moduli.
The exam is a written test with practical exercise questions and theory questions. There may be proposed in-progress tests (as support for passing the final exam), which may also take the form of exercises to be carried out in the laboratory. The test comprises four to six questions that can be broken down into subpoints and also includes exercises in applying the concepts learned to concrete examples. The test is passed if a score of at least 60% of total points can be achieved on the set of questions. Each of the two modules of the integrated course has its own exam, and it is necessary to achieve a sufficient outcome in each module to pass the overall exam. The final grade is the arithmetic mean of the two modules.
Programma esteso/Content
Breve panoramica sulla evoluzione storica dei sistemi di calcolo (dalla Macchina Analitica di Charles Babbage ai giorni nostri). Codifica dell’informazione: codifica binaria dei numeri interi con e senza segno. Trasformazione dalla rappresentazione binaria alla rappresentazione ottale ed esadecimale e viceversa. Operazioni aritmetiche con numeri binari. Codifica dei numeri frazionari: virgola fissa e virgola mobile (standard IEEE 754). Operazioni aritmetiche con numeri in virgola mobile. Codifica del testo (ASCII, UNICODE, UTF-8). Codici ridondanti per rilevazione e correzione di errori. Codifica delle immagini (mappa di bit, profondità e risoluzione). Algebra di Boole. Porte logiche AND, OR, NOT, NAND e NOR. Dalle funzioni logiche ai circuiti combinatori (tavole di verità, espressioni in forma normale Somma di Prodotti e Prodotto di Somme, semplificazione applicando le leggi dell’algebra o tramite mappe di Karnaugh). Esempi di circuiti: Decoder, Multiplexer, Half Adder, Full Adder, ALU, ecc. Circuiti sequenziali: Latch, Flip-Flop, registri e memorie. Principali componenti di un calcolatore (CPU, Memoria RAM, Dischi magnetici, RAID, Dischi ottici, BUS, e varie periferiche. Cenni sui principi di funzionamento. CPU: ciclo di fetch-decode-execute. Processori CISC e RISC. CPU con struttura a pipeline (cenni). Introduzione all’architettura MIC1 (si veda il libro di testo).
Brief review of the historical evolution of computers (from Charles Babbage’s Analytical Engine up to current computers).Information encoding: binary encoding of integer numbers, both unsigned and signed. Transformation from binary to octal and hexadecimal representation and viceversa. Arithmetic operations with binary numbers. Encoding of the fractional numbers: fixed point and floating point (according to IEEE 754 standard). Text encoding (ASCII, Unicode, UTF-8). Redundant codes for error detection and correction. Images encoding (bitmap, image resolution and depth).Boolean algebra, AND, OR, NOT, NAND, NOR gates. From logical functions to combinatorial circuits (truth tables, sum of products and product of sums normal form expressions, simplification by means of algebra laws, or through Karnaugh’s maps). Examples of circuits: Decoder, Multiplexer, Half Adder, Full Adder, ALU, etc. Sequential circuits: Latch, Flip-flop, registers and memories. Main components of a computer (CPU, RAM memory, Magnetic disks, RAID, Optical disks, BUS, various peripherals) and their basic operating principles. Central Processing Unit: fetch-decode-execute cycle. CISC and RISC processors, Processors with pipeline architecture. Introduction the MIC1 architecture (see textbook).
Risultati di apprendimento attesi/Intended learning objectives
Descrivere l’evoluzione storica dei sistemi di calcolo sottolineando il legame tra evoluzione tecnologica ed evoluzione dell’organizzazione di tali sistemi. Spiegare la rappresentazione posizionale in base r di un numero (intero o frazionario). Descrivere e saper applicare il procedimento per la trasformazione di un numero frazionario senza segno da base 10 a base 2, 8 o 16 e viceversa, e il procedimento per ottenere la codifica binaria in modulo e segno o in complemento a due di un numero intero con segno. Saper eseguire operazioni aritmetiche con numeri binari. Descrivere e saper applicare il procedimento per la trasformazione di un numero frazionario nella sua rappresentazione in virgola mobile secondo lo standard IEEE 754. Enunciare e spiegare le principali leggi dell’algebra di Boole. Saper rappresentare una funzione booleana in varie forme (forme normali SP e PS e semplificate tramite operazioni algebriche o con le mappe di Karnaugh). Saper ricavare un circuito combinatorio corrispondente ad una data espressione booleana. Saper descrivere quale funzione booleana realizza un dato circuito. Saper riconoscere alcuni circuiti logici combinatori e sequenziali di base e descrivere la funzione che realizzano. Descrivere i principali componenti di un sistema di calcolo, indicarne le caratteristiche salienti, i meccanismi di funzionamento e le modalità di interazione. In particolare descrivere le componenti della CPU e il ciclo fetch-decode-execute, la differenza tra architetture CISC e RISC e l’idea alla base delle architetture a pipeline. Descrivere il linguaggio delle microistruzioni del processore MIC1 (istruzioni sia in forma mnemonica che in forma binaria) realizzare alcuni semplici microprogrammi e simularne l’esecuzione. Acquisire la capacità di aggiornarsi su aspetti specifici e temi più avanzati dell’architettura dei sistemi di calcolo, in particolare facendo ricorso a risorse disponibili on-line.
Describe the historical evolution of computers highlighting the impact of technology on their organization. Explain the positional representation of numbers in any base r (both integer and fractional numbers). Describe and apply the procedures for transforming a fractional number from decimal to base 2, 8 or 16 and viceversa. Describe and apply the procedure to obtain the binary encoding of signed integers in the two representation: sign and modulus or two’s complement. Execute arithmetic operation with binary numbers. Describe and apply the procedure to transform a fractional number into the floating point representation according to standard IEEE 754. Enunciate and explain the main Boolean algebra laws. Represent a Boolean function in different form (SP and PS normal forms, and simplified either applying algebraic rules or through Karnaugh maps). Derive a logical circuit for a given Boolean algebra expression. Given a circuit, state which Boolean function it implements. Recognize the basic combinatorial and sequential circuits and describe the function they implement. Describe the main components of a computer, list the main characteristics, how they work and how they interact. In particular describe the CPU main components and the fetch-decode-execute cycle. State the differences between CISC and RISC architectures and the principle behind the pipeline architectures. Describe the microinstructions language of MIC1 (both in binary and mnemonic representation), implement some simple microprograms using such language and simulate their execution. Acquire the skills for autonomous learning specific aspects or more advanced topics about computer architecture (in particular skills to search the necessary documentation on-line).
Mostra scheda insegnamento padre
×
Stampa
Insegnamento
ARCHITETTURA DEGLI ELABORATORI: ARCHITETTURA 2
Codice
MF0201
Anno Accademico
2024/2025
Anno regolamento
2024/2025
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
Sacco Alessio
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
1
Periodo
Secondo Semestre
Sede
VERCELLI
Tipo di valutazione
G
Lingua insegnamento/Teaching language
ITALIANO
English
Contenuti/Content Summary
Proseguimento dello studio iniziato nel modulo I dell'architettura di un moderno sistema di elaborazione, strutturato come un insieme di macchine virtuali sovrapposte. In particolare, in questo modulo si descrive come usare le componenti hardware studiate nel modulo I per progettare il processore micro-programmato (non reale, ma verosimile) MIC1 e del suo linguaggio MAL. Inoltre, si analizza come realizzare il linguaggio macchina IJVM, una semplificazione del byte-code della Java Virtual Machine, sull’architettura MIC1, utilizzando un micro-interprete scritto in MAL. Sono, quindi, illustrate diverse versioni della architettura MIC1/IJVM con prestazioni via via migliori, tramite l’introduzione di varie tecniche di ottimizzazione delle prestazioni dei processori (pipeline, meccanismi di predizione salti, esecuzione fuori ordine, memorie cache). Segue una panoramica generale sul livello della Instruction Set Architecture (ISA), con lo studio delle caratteristiche dei linguaggi macchina, con un approfondimento sull’ISA dei processori di tipo load/store. Inoltre, il modulo introduce anche il concetto di memoria virtuale (proprio del livello del sistema operativo) inquadrandolo nel discorso generale della gerarchia delle memorie e sottolineando similitudini e differenze rispetto ai principi e meccanismi di funzionamento della cache.
Continuation of the investigation of the computing architectures, organized as a layered set of virtual machines. This module describes how to use the hardware components addressed in Module I to design MIC1, a microprogrammed processor (not real but plausible) with its language MAL. Moreover, it analyses how to implement the IJVM machine language, derived from the Java bytecode Virtual machine, on the MIC1 architecture, by means of a micro-interpreter written in MAL. Different versions of MIC1/IJVM architecture are illustrated with progressively better performances. In addition, various process optimization techniques are illustrated (pipelines, jump prediction mechanisms, out of order execution, cache memories). The following is a general overview of the Set Architecture (ISA) instruction level, with the analysis of the main characteristics of machine languages and the description of the load/store processors. In addition, the module introduces operating system layer and the concept of virtual memory in the context of the hierarchy of memories in a computing architecture: in particular, the analogies and the differences with the cache are addressed.
Testi di riferimento/Textbooks
A.S. Tanenbaum, T.Austin: "Architettura dei Calcolatori: un approccio strutturale", VI Edizione, Pearson Education Italia, 2013.
A.S. Tanenbaum, T.Austin: "Computer Architecture: a structural approach", VI Edizione, Pearson Education Italia, 2013.
Obiettivi formativi/Mission
Scopo del modulo è quello di acquisire conoscenze sull’architettura interna di un processore, le tecniche di ottimizzazione (quali pipeline, meccanismi di predizione salti, esecuzione fuori ordine, memorie cache), comprendendo le differenze delle architetture micro-programmate rispetto a quelle che eseguono direttamente in hardware il linguaggio macchina. Un secondo obiettivo formativo del modulo è apprendere le caratteristiche generali di un linguaggio macchina (tra cui tipi di istruzioni, formato delle istruzioni, modalità d’indirizzamento) e saper analizzare motivazioni, vantaggi e svantaggi delle diverse scelte. Infine, il modulo ha lo scopo di fornire le conoscenze per comprendere la tecnica della memoria virtuale collocandola nel quadro della gerarchia delle memorie e studiando la sua realizzazione con la tecnica della paginazione
The goal of this module is to acquire knowledge about the internal organization of a processor and some architectural variants (e.g., pipeline, jump prediction, out-of-order execution, cache memories) can significantly change the speed of execution; understand how to distinguish between microprogrammed architectures and architectures that execute machine language instructions directly in hardware. A second objective of the module is to learn the general characteristics of a machine language (types of instructions, instruction format, addressing methods) and discuss motivations, advantages, and disadvantages of different choices. Finally, the module is intended to provide the knowledge to understand the virtual memory technique by placing it within the hierarchy of memories and by analyzing its implementation according to the paging technique.
Prerequisiti/Required background knowledge
Conoscenza dei concetti studiati nel primo modulo del corso.
Knowledge of topics studied in module 1
Metodi didattici/Teaching methods
Gli argomenti trattati nel corso sono esposti prevalentemente tramite lezioni frontali. Alcune tematiche (es. le caratteristiche e la programmazione MAL, le caratteristiche e la programmazione IJVM, il funzionamento del micro-interprete IJVM su MIC1) sono esemplificate per mezzo di esercitazioni utilizzando un emulatore dell’architettura MIC1 e del relativo micro-interprete di IJVM. Durante il corso sono proposti esercizi da sviluppare in autonomia per verificare il proprio livello di apprendimento e per stimolare il proprio spirito critico, tramite l’elaborazione di soluzioni originale e/o alternative. Il corso è completato da un tutoraggio in cui saranno sviluppate alcune esercitazioni di gruppo.
The topics covered in the course are mainly exposed through lectures Some topics (e.g., MAL characteristics and programming, IJVM characteristics and programming, the behavior of MIC1 micro-interpreter for IJVM) are exemplified by means of experimentation through an emulator of the MIC1 architecture and of the associated IJVM micro-interpreter. During the course, some exercises are submitted to be developed autonomously by students to verify their level of learning and stimulate a critical spirit, through the development of original and/or alternative solutions. The course is complemented by a tutoring class in which some exercises will be proposed and developed in group.
Altre informazioni/Further information
Sulla piattaforma DIR sono disponibili: la copia elettronica delle slide utilizzate a lezione, una selezione dei testi d’esame, l’emulatore dell’architettura MIC1, con il relativo micro-interprete di IJVM ed esempi di programmi in MAL e IJVM, informazioni generali sul corso ed avvisi relativi allo svolgimento del corso e sugli esami. 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 are available: the electronic copy of the slides used in the lectures, a selection of examples of exam texts, the emulator of the MIC1 architecture the associated micro-interpreter of IJVM and some MAL and IJVM programming examples, general information on the course and notices related to the course and exams. 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 è svolta in forma scritta. Il compito include sette domande ciascuna delle quali può essere strutturata in più punti. Le domande possono anche assumere la forma di esercizi per valutare la capacità di applicare ad esempi pratici i concetti teorici appresi nel corso. Ad ogni domanda è assegnato un voto massimo (in genere da 3 a 5). La valutazione tiene conto della correttezza della risposta e del livello di completezza. La sufficienza si ottiene se si dimostra di avere appreso e di sapere applicare gli elementi chiave indirizzati dalla domanda. Il voto complessivo per la valutazione dell’apprendimento degli argomenti di questo modulo è la somma dei voti ottenuti in ogni domanda.
The assessment of learning is carried out in written form. The test includes four to six questions, each of which can be structured in multiple points. The questions can also take the form of exercises to evaluate the ability to apply the theoretical concepts learned in the course to practical examples. Each question is assigned a maximum grade (generally from 5 to 7). The evaluation considers the correctness of the answer and the level of completeness. A sufficient score is obtained if the student demonstrates that he has learned and knows how to apply the key elements addressed by the question. The final grade for the learning assessment of contents addressed by this module is the sum of the marks obtained in each question.
Programma esteso/Content
Approfondimento della architettura a livelli introdotta nel modulo I: il livello hardware, il livello della microarchitettura, il livello della Instruction Set Architecture, il livello del Sistema Operativo, il livello della programmazione Assembler. Analisi di MIC1 e del suo linguaggio di programmazione MAL, visto come un esempio di architettura micro-programmata Descrizione della realizzazione di IJVM, una semplificazione del byte-code della Java Virtual Machine, sull’architettura MIC1, mediante lo sviluppo di un micro-interprete implementato nel linguaggio MAL. Esercitazioni di sviluppo ed esecuzione di programmi in MAL ed in IJVM con un emulatore di MIC1. Studio delle tecniche per migliorare le prestazioni degli elaboratori, mediante l’introduzione di una unità di prelievo e della pipeline: analisi della loro introduzione nelle architetture MIC2, MIC3 e MIC4. Tecniche di ottimizzazione delle prestazioni degli elaboratori: memorie cache, predizione dei salti, esecuzione fuori ordine. Analisi delle caratteristiche dei linguaggi macchina (Instruction Set Architecture): tipi di dato, tipi di istruzioni, formato delle istruzioni, modalità di indirizzamento, la gestione delle chiamate a procedura. Caratteristiche dell’ISA dei processori di tipo load/store. Studio delle tecniche per l’interazione tra il processore ed i dispositivi di Input/Output. Analisi e comparazione di architetture e linguaggi macchina di processori reali. Introduzione della tecnica della memoria virtuale, collocandola nel quadro della gerarchia delle memorie: confronto con la cache ed approfondimento della tecnica di paginazione.
Refinement of the description of the layered architecture introduced in module I: hardware level, micro-architecture level, Instruction Set Architecture level, Operating System level, Assembler programming level. Analysis of MIC1 and of MAL, the related programming language, as an example of a microprogrammed architecture. Description of the implementation of IJVM, derived from the Java bytecode Virtual machine, on MIC1 by means of a micro-interpreter implemented in MAL. Exercises on MAL and IJVM programming and execution by means of a MIC-1 emulator equipped with a IJVM compiler and micro-interpreter. Investigation of techniques to improve performance, by means of the introduction of a fetch unit and pipeline: analysis of their adoption in MIC2, MIC3 and MIC4 architectures. Optimization techniques to improve performance: jump prediction, out-of-order execution, cache memories. Characteristics of machine languages ​​(Instruction Set Architecture): data types, types of instructions, instruction format, addressing mode, handling of procedure calls. Characteristics of load/store machine ISA. Analysis of solutions for interaction among CPU and Input / Output devices. Analysis and comparison of architectures and machine languages ​​of real processors. Introduction to virtual memory, in the context of memory hierarchy: comparison with the cache, and in-depth analysis on virtual memory based on paging technique.
Risultati di apprendimento attesi/Intended learning objectives
Sapere spiegare l’organizzazione di un microprocessore e le sue principali unità funzionali. Sapere descrivere come è eseguita un’istruzione in questo tipo di macchina e sapere analizzare le diverse tecniche per l’aumento delle prestazioni. Essere in grado di realizzare la conversione dalla rappresentazione simbolica di istruzioni di linguaggio macchina a livello simbolico, orientato al programmatore, al formato binario interno alla macchina. Essere in grado di scrivere brevi programmi in linguaggio macchina (MAL and IJVM) e di estendere il micro-interprete introducendo nuove istruzioni Conoscere le caratteristiche generali di un linguaggio macchina (tra cui tipi di istruzioni, formato delle istruzioni, modalità d’indirizzamento). Comprendere le caratteristiche e le differenze degli ISA nelle architetture CISC, RISC e load/sore. Acquisire le competenze necessarie per analizzare e confrontare i linguaggi macchina esistenti. Sapere descrivere l’uso della gerarchia delle memorie, comprendendo l’importanza del principio della località spaziale e temporale. Essere in grado di applicare le tecniche della cache tra CPU e RAM e della memoria virtuale tra RAM e memoria secondaria. Comprendere la differenza tra spazio degli indirizzi (virtuali) e locazioni di memoria (fisica) e le relative tecniche di corrispondenza.
Explain the organization of a micro-processor and its main functional units. Describe how it is performed an instruction in this type of machine know analysis the techniques to improve performance. Be able to perform the conversion from the symbolic representation of machine language instructions, oriented to programming, to the binary format inside the machine. Be able to develop short programs in machine language (MAL and IJVM) and to extend the micro-interpreter with the introduction of new instructions. Know the main characteristics of a machine language (e.g., instruction types, instruction formats, addressing modes). Understand the characteristics and the differences of the ISA in the CISC, RISC and load/store architectures. Achieve the necessary skills to analyze and compare existing machine languages. Know the use of the memory hierarchy, by understanding the relevance of spatial locality and temporal locality principles. To be able to apply the technique of cache between CPU and RAM and of virtual memory between RAM and secondary memory. To understand the difference between (virtual) address space and (physical) memory location and the related mapping techniques.
×
Stampa
Insegnamento
MATEMATICA DISCRETA
Codice
MF0204
Anno Accademico
2024/2025
Anno regolamento
2024/2025
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
LAGUZZI Giorgio
CFU
9.0
Ore di lezione
72.0
Ore di studio individuale
0.0
Settore Scientifico Disciplinare (SSD)
MAT/03 - GEOMETRIA, MAT/01 - LOGICA MATEMATICA
Tipo di insegnamento
Attività formativa integrata
Fruizione insegnamento
OBB
Anno
1
Periodo
Primo Semestre
Sede
VERCELLI
Tipo di valutazione
V
Lingua insegnamento/Teaching language
Italiano.
Italian.
Contenuti/Content Summary
Teoria elementare dei numeri. Alcune nozioni di base dell'algebra lineare.
Elementary theory of numbers. Some basic ideas of linear algebra.
Testi di riferimento/Textbooks
Testi consigliati: + Bramanti, Pagani, Salsa, "Analisi Matematica 1 con elementi di geometria e algebra lineare", Ed. Zanichelli. + Appunti del docente caricati sulla piattaforma DIR.
Recommended texts: + Bramanti, Pagani, Salsa, "Analisi matematica 1 con elementi di geometria e algebra lineare", Ed. Zanichelli. + Teacher's notes available on the DIR platform.
Obiettivi formativi/Mission
L'insegnamento si propone di fornire alle studentesse e agli studenti la conoscenza degli elementi principali dell'algebra, del calcolo vettoriale e matriciale e delle loro applicazioni. Scopo dell'insegnamento è che le studentesse e gli studenti acquisiscano e sappiano utilizzare un linguaggio matematico appropriato in relazione agli argomenti trattati nel corso. Obiettivo formativo dell'insegnamento è quello di sviluppare la capacità di modellizzare semplici situazioni con l'aiuto di idee e metodi di base di algebra (teoria elementare dei numeri) e algebra lineare.
The course aims to provide students with the knowledge of the main elements of elementary number theory and some notions of linear algebra. The aim of the teaching is that students acquire and know how to use an appropriate mathematical language in relation to topics covered in the course. The educational objective of the teaching is to develop the ability to model simple situations with the help of basic ideas and methods of algebra (elementary number theory) and linear algebra.
Prerequisiti/Required background knowledge
Lettura e produzione di brevi testi scritti in italiano. Proprietà di base dei numeri interi. Proprietà di base del piano cartesiano.
Reading and production of short texts in italian. Basic properties of integers. Basic properties of the cartesian plane.
Metodi didattici/Teaching methods
La didattica si svolgerà mediante lezioni frontali alla lavagna con parte teorica ed esercizi. Ogni argomento del corso viene introdotto per mezzo di una discussione generale che ha lo scopo di renderla il più possibile comprensibile alle studentesse e agli studenti. In un secondo momento vengono introdotte le nozioni di base di ciascun argomento; esse sono successivamente seguite da esempi con lo scopo di chiarirne il significato. L'ultima parte è dedicata agli esercizi che saranno svolti dal docente con il coinvolgimento attivo delle studentesse e degli studenti per stimolarne il senso critico e l’autonomia di giudizio.
Face-to-face lectures. Teaching will take place through lectures on the blackboard with theoretical part and exercises. Each topic of the course is introduced by means of a general discussion which aims to make it as understandable as possible to students. In a second moment the basic notions of each topic are introduced; they are subsequently followed by examples with the aim of clarifying their meaning. The last part is dedicated to the exercises that will be carried out by the teacher with the active involvement of students to stimulate their critical sense and independent judgment.
Altre informazioni/Further information
Il controllo dell'apprendimento in itinere verrà effettuato svolgendo esercizi in aula con la partecipazione attiva delle studentesse e degli studenti. Oltre ai libri suggeriti per la teoria e gli esercizi, eventuale ulteriore materiale per la preparazione dell'esame verrà fornito durante lo svolgimento del corso. Il voto del modulo di algebra e geometria è una media ponderata con il voto del modulo di logica per ottenere il voto finale di matematica discreta. 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.
The control of ongoing learning will be carried out by carrying out exercises in the classroom with the active participation of students. In addition to the books suggested for the theory and exercises, any further material for the preparation of the exam will be provided during the course. The algebra and geometry module grade is a weighted average with the logic module grade to obtain the final discrete mathematics grade. 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.
Modalità di verifica dell'apprendimento/Assessment methods
L'esame è costituito da una prova scritta contenente quattro esercizi di cui due su argomenti di Aritmetica Modulare e due su argomenti di Algebra Lineare. In ogni prova scritta, la maggior parte degli argomenti contenuti nel corso viene coperta. La presenza di domande sulla parte teorica non è esclusa. La prova scritta ha la durata di un'ora e si considera superata se si svolgono correttamente almeno un esercizio di Aritmetica Modulare e un esercizio di Algebra Lineare. Durante la prova scritta è consentito l'uso di una calcolatrice.
The exam consists of a written test containing four exercises, two of which on Modular Arithmetic topics and two on Linear Algebra topics. In each written test, most of the topics contained in the course are covered. The presence of questions on the theoretical part is not excluded. The written test lasts one hour and is considered passed if at least one exercise of Modular Arithmetic and one of Linear Algebra are correctly carried out. During the written test, the use of a calculator is allowed.
Programma esteso/Content
Numeri interi. Divisibilità e numeri primi. Massimo comune divisore. Algoritmo di Euclide. Minimo comune multiplo. Equazioni diofantee. Congruenze e classi di resto. Criteri di divisibilità. Rappresentazione di numeri con base diversa da dieci. Teorema cinese del resto. Condivisione di segreti mediante sistemi di congruenze. Il teorema di Eulero. Il problema del logaritmo discreto. Il protocollo di Diffie-Hellman. Il protocollo RSA. Sistemi lineari. Metodo di Eliminazione di Gauss. Matrici, determinanti, rango, matrice inversa. Spazi vettoriali, basi, dipendenza lineare. Applicazioni lineari, prodotto scalare. Applicazioni ai sistemi lineari.
Integers. Divisibility and primes. Greatest common divisor. Euclid's algorithm. Least common multiple. Diophantine equations. Congruences and residue classes. Divisibility criteria. Representation of number in basis other than ten. Chinese remainder theorem. Sharing secrets by means of systems of congruences. Euler's theorem. The problem of the discrete logarithm. The Diffie-Hellman protocol. The RSA protocol. Linear systems. Gauss' elimination method. Matrices, determinants, rank, inverse matrix. Vector spaces, bases, linear dependence. Linear functions, scalar product. Applications to linear systems.
Risultati di apprendimento attesi/Intended learning objectives
Conoscenza e comprensione di alcuni concetti basilari della teoria elementare dei numeri e dell'algebra lineare, e capacità di applicarli a semplici problemi. Queste nozioni devono necessariamente entrare a far parte del bagaglio culturale delle studentesse e degli studenti per consentire loro di poter affrontare con maggiore facilità alcuni esami applicativi in cui le suddette nozioni trovano un'applicazione diretta come nel caso della Fisica. Capacità di valutare l'appropriatezza di un algoritmo che applica tali concetti. Capacità di comunicare in modo semplice e chiaro i procedimenti adottati.
Knowledge and understanding of some basic concepts of elementary number theory and linear algebra, and ability to apply them to simple problems. These notions must necessarily become part of the cultural background of the students to allow them to be able to face more easily some applicative exams in which the aforementioned notions find a direct application as in the case of Physics. Ability to evaluate the appropriateness of an algorithm that applies these concepts. Ability to communicate the procedures adopted in a simple and clear way.
Moduli
Codice Insegnamento Settore Scientifico Disciplinare (SSD) Docenti Agenda web
MF0205ALGEBRA E GEOMETRIA MAT/03 - GEOMETRIA Luzzini Paolo, Laguzzi Giorgio
MF0206LOGICA MAT/01 - LOGICA MATEMATICA Laguzzi Giorgio
Mostra scheda insegnamento padre
×
Stampa
Insegnamento
MATEMATICA DISCRETA: ALGEBRA E GEOMETRIA
Codice
MF0205
Anno Accademico
2024/2025
Anno regolamento
2024/2025
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
LAGUZZI Giorgio
CFU
6.0
Ore di lezione
48.0
Ore di studio individuale
102.0
Settore Scientifico Disciplinare (SSD)
MAT/03 - GEOMETRIA
Tipo di insegnamento
Modulo di sola Frequenza
Fruizione insegnamento
OBB
Categoria insegnamento
A
Anno
1
Periodo
Primo Semestre
Sede
VERCELLI
Tipo di valutazione
G
Lingua insegnamento/Teaching language
ITALIANO
Italian
Contenuti/Content Summary
Teoria elementare dei numeri. Alcune nozioni di base dell'algebra lineare.
Elementary theory of numbers. Some basic ideas of linear algebra.
Testi di riferimento/Textbooks
Testi consigliati: + Bramanti, Pagani, Salsa, "Analisi Matematica 1 con elementi di geometria e algebra lineare", Ed. Zanichelli. + Appunti del docente caricati sulla piattaforma DIR.
Recommended texts: + Bramanti, Pagani, Salsa, "Analisi matematica 1 con elementi di geometria e algebra lineare", Ed. Zanichelli. + Teacher's notes available on the DIR platform.
Obiettivi formativi/Mission
L'insegnamento si propone di fornire alle studentesse e agli studenti la conoscenza degli elementi principali dell'algebra, del calcolo vettoriale e matriciale e delle loro applicazioni. Scopo dell'insegnamento è che le studentesse e gli studenti acquisiscano e sappiano utilizzare un linguaggio matematico appropriato in relazione agli argomenti trattati nel corso. Obiettivo formativo dell'insegnamento è quello di sviluppare la capacità di modellizzare semplici situazioni con l'aiuto di idee e metodi di base di algebra (teoria elementare dei numeri) e algebra lineare.
The course aims to provide students with the knowledge of the main elements of elementary number theory and some notions of linear algebra. The aim of the teaching is that students acquire and know how to use an appropriate mathematical language in relation to topics covered in the course. The educational objective of the teaching is to develop the ability to model simple situations with the help of basic ideas and methods of algebra (elementary number theory) and linear algebra.
Prerequisiti/Required background knowledge
Lettura e produzione di brevi testi scritti in italiano. Proprietà di base dei numeri interi. Proprietà di base del piano cartesiano.
Reading and production of short texts in italian. Basic properties of integers. Basic properties of the cartesian plane.
Metodi didattici/Teaching methods
La didattica si svolgerà mediante lezioni frontali alla lavagna con parte teorica ed esercizi. Ogni argomento del corso viene introdotto per mezzo di una discussione generale che ha lo scopo di renderla il più possibile comprensibile alle studentesse e agli studenti. In un secondo momento vengono introdotte le nozioni di base di ciascun argomento; esse sono successivamente seguite da esempi con lo scopo di chiarirne il significato. L'ultima parte è dedicata agli esercizi che saranno svolti dal docente con il coinvolgimento attivo delle studentesse e degli studenti per stimolarne il senso critico e l’autonomia di giudizio.
Face-to-face lectures. Teaching will take place through lectures on the blackboard with theoretical part and exercises. Each topic of the course is introduced by means of a general discussion which aims to make it as understandable as possible to students. In a second moment the basic notions of each topic are introduced; they are subsequently followed by examples with the aim of clarifying their meaning. The last part is dedicated to the exercises that will be carried out by the teacher with the active involvement of students to stimulate their critical sense and independent judgment.
Altre informazioni/Further information
Il controllo dell'apprendimento in itinere verrà effettuato svolgendo esercizi in aula con la partecipazione attiva delle studentesse e degli studenti. Oltre ai libri suggeriti per la teoria e gli esercizi, eventuale ulteriore materiale per la preparazione dell'esame verrà fornito durante lo svolgimento del corso. Il voto del modulo di algebra e geometria è una media ponderata con il voto del modulo di logica per ottenere il voto finale di matematica discreta. 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.
The control of ongoing learning will be carried out by carrying out exercises in the classroom with the active participation of students. In addition to the books suggested for the theory and exercises, any further material for the preparation of the exam will be provided during the course. The algebra and geometry module grade is a weighted average with the logic module grade to obtain the final discrete mathematics grade. 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.
Modalità di verifica dell'apprendimento/Assessment methods
L'esame è costituito da una prova scritta contenente quattro esercizi di cui due su argomenti di Aritmetica Modulare e due su argomenti di Algebra Lineare. In ogni prova scritta, la maggior parte degli argomenti contenuti nel corso viene coperta. La presenza di domande sulla parte teorica non è esclusa. La prova scritta ha la durata di un'ora e si considera superata se si svolgono correttamente almeno un esercizio di Aritmetica Modulare e un esercizio di Algebra Lineare. Durante la prova scritta è consentito l'uso di una calcolatrice.
The exam consists of a written test containing four exercises, two of which on Modular Arithmetic topics and two on Linear Algebra topics. In each written test, most of the topics contained in the course are covered. The presence of questions on the theoretical part is not excluded. The written test lasts one hour and is considered passed if at least one exercise of Modular Arithmetic and one of Linear Algebra are correctly carried out. During the written test, the use of a calculator is allowed.
Programma esteso/Content
Numeri interi. Divisibilità e numeri primi. Massimo comune divisore. Algoritmo di Euclide. Minimo comune multiplo. Equazioni diofantee. Congruenze e classi di resto. Criteri di divisibilità. Rappresentazione di numeri con base diversa da dieci. Teorema cinese del resto. Condivisione di segreti mediante sistemi di congruenze. Il teorema di Eulero. Il problema del logaritmo discreto. Il protocollo di Diffie-Hellman. Il protocollo RSA. Sistemi lineari. Metodo di Eliminazione di Gauss. Matrici, determinanti, rango, matrice inversa. Spazi vettoriali, basi, dipendenza lineare. Applicazioni lineari, prodotto scalare. Applicazioni ai sistemi lineari.
Integers. Divisibility and primes. Greatest common divisor. Euclid's algorithm. Least common multiple. Diophantine equations. Congruences and residue classes. Divisibility criteria. Representation of number in basis other than ten. Chinese remainder theorem. Sharing secrets by means of systems of congruences. Euler's theorem. The problem of the discrete logarithm. The Diffie-Hellman protocol. The RSA protocol. Linear systems. Gauss' elimination method. Matrices, determinants, rank, inverse matrix. Vector spaces, bases, linear dependence. Linear functions, scalar product. Applications to linear systems.
Risultati di apprendimento attesi/Intended learning objectives
Conoscenza e comprensione di alcuni concetti basilari della teoria elementare dei numeri e dell'algebra lineare, e capacità di applicarli a semplici problemi. Queste nozioni devono necessariamente entrare a far parte del bagaglio culturale delle studentesse e degli studenti per consentire loro di poter affrontare con maggiore facilità alcuni esami applicativi in cui le suddette nozioni trovano un'applicazione diretta come nel caso della Fisica. Capacità di valutare l'appropriatezza di un algoritmo che applica tali concetti. Capacità di comunicare in modo semplice e chiaro i procedimenti adottati.
Knowledge and understanding of some basic concepts of elementary number theory and linear algebra, and ability to apply them to simple problems. These notions must necessarily become part of the cultural background of the students to allow them to be able to face more easily some applicative exams in which the aforementioned notions find a direct application as in the case of Physics. Ability to evaluate the appropriateness of an algorithm that applies these concepts. Ability to communicate the procedures adopted in a simple and clear way.
Mostra scheda insegnamento padre
×
Stampa
Insegnamento
MATEMATICA DISCRETA: LOGICA
Codice
MF0206
Anno Accademico
2024/2025
Anno regolamento
2024/2025
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
Modulo di sola Frequenza
Fruizione insegnamento
OBB
Categoria insegnamento
C
Anno
1
Periodo
Primo Semestre
Sede
VERCELLI
Tipo di valutazione
G
×
Stampa
Insegnamento
PROGRAMMAZIONE 2
Codice
MF0164
Anno Accademico
2024/2025
Anno regolamento
2024/2025
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
PENNISI MARZIO ALFIO
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
A
Anno
1
Periodo
Secondo Semestre
Sede
ALESSANDRIA
Tipo di valutazione
V
Lingua insegnamento/Teaching language
ITALIANO
Italian
Contenuti/Content Summary
Gestione di stutture dati dinamiche. Iterazione. Ricorsione. Algoritmi classici di ordinamento
Management of dynamic data structures. Iteration. Recursion. Classical sorting algorithms
Testi di riferimento/Textbooks
Paul Deitel, Harvey Deitel “Il linguaggio C. Fondamenti e tecniche di programmazione”. Pearson Italia, 2013 Brian W. Kernighan, Dennis M. Ritchie "Il linguaggio C. Principi di programmazione e manuale di riferimento" Pearson Italia
Paul Deitel, Harvey Deitel “Il linguaggio C. Fondamenti e tecniche di programmazione”. Pearson Italia, 2013 Brian W. Kernighan, Dennis M. Ritchie "Il linguaggio C. Principi di programmazione e manuale di riferimento" Pearson Italia
Obiettivi formativi/Mission
Al termine del corso, le studentesse e gli studenti devono essere in grado, dato un problema di programmazione (per gestire la struttua dinamica lista), di individuarne un algoritmo risolutivo sia iterazione sia in ricorsione, implementarlo in linguaggio C, eseguirlo al calcolatore. Conoscenza e comprensione: programmazione in iterazione, programmazione in ricorsione, la struttura dinamica lista. Capacità di applicare conoscenza e comprensione: dato un problema inerente alla struttura dinamica lista, - definire un algoritmo iterativo che trasforma i dati di input nei dati di output, seguendo i costrutti della programmazione; - definire un algoritmo ricorsivo che trasforma i dati di input nei dati di output, seguendo i costrutti della programmazione; - scrivere al calcolatore il programma sorgente che implementa l'algoritmo, utilizzando un linguaggio di programmazione (C); - compilare, eseguire e testare tale programma al calcolatore. Autonomia di giudizio: in modo autonomo le studentesse e gli studenti devono riuscire definire ed implementare un'algoritmo per risolvere un problema inerenti alla gestione di strutture dinamiche nel linguaggio di programmazione (C), a valutarne la complessità, e compilare ed eseguire il programma. Abilità comunicative: le studentesse e gli studenti devono riuscire a definire un algoritmo sia in iterazione sia in ricorsione, e deve sapere presentare il suo costo espresso come complessità in tempo e spazio. Capacità di apprendimento: le studentesse e gli studenti devono essere capaci di apprendere come si definiscae un algoritmo a partire dal problema sia in iterazione sia in ricorsione, valutarne i costi (complessità in tempo e spazio) e come si implementa tale algoritmo in C.
At the end of the course, students must be able, given a programming problem (to handle dynamic list structure), to identify a solving algorithm both iteratively and in recursion, implement it in C language, and execute it on the computer. Knowledge and understanding: programming in iteration, programming in recursion, the dynamic list structure. Ability to apply knowledge and understanding: given a dynamic list structure problem, - define an iterative algorithm that transforms input data into output data, following programming constructs; - define a recursive algorithm that transforms input data into output data, following programming constructs; - write the source programme implementing the algorithm to the computer, using a programming language (C); - compile, execute and test this programme on the computer. Autonomy of judgement: autonomously, the students must be able to define and implement an algorithm to solve a problem concerning the handling of dynamic structures in the programming language (C), to evaluate its complexity, and to compile and execute the program. Communication skills: students must be able to define an algorithm in both iteration and recursion, and must know how to present its cost expressed as complexity in time and space. Learning ability: students must be able to learn how to define an algorithm from the problem in both iteration and recursion, evaluate its cost (complexity in time and space) and how to implement such an algorithm in C.
Prerequisiti/Required background knowledge
Agli studenti e alle studentesse, è caldamente consigliato il superamento dell'esame di Programmazione 1
Students are strongly encouraged to pass the Programming 1 exam.
Metodi didattici/Teaching methods
Lezioni frontali, esercitazioni in aula e in laboratorio 2/3 delle lezioni sono in aula mentre 1/3 delle lezioni sono in laboratorio.
Lectures, classroom and laboratory exercises 2/3 of the lessons of the course are classroom lessons and 1/3 are in the laboratory.
Altre informazioni/Further information
L'attività in laboratorio richiede una partecipazione attiva e individuale delle studentesse e degli studenti, che in tal modo sviluppano abilità pratiche (le capacità di realizzare un programma). La partecipazione attiva permette una 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.
The laboratory activity requires active and individual participation of the students, who thereby develop practical skills (the ability to carry out a programme). Active participation allows a check on how topics are received. 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: Esercizi orientati a testare le capacità e le conoscenze inerenti alla programmazione iterativa e ricorsiva; - esame in laboratorio: sviluppo in laboratorio di funzioni iterative e ricorsive in linguaggio C. A discrezione del docente, l'esame può anche essere in forma di orale.
- Written examination: Exercises aimed at testing skills and knowledge inherent to iterative and recursive programming; - laboratory examination: laboratory development of iterative and recursive functions in C language. At the discretion of the professor, the examination may also be in the form of an oral.
Programma esteso/Content
- puntatori in C e loro uso per la realizzazione di liste - funzioni interattive sulla liste: - gestione di una singola lista - gestione di più liste - ricorsione: - definizione e concetti di base - simulazione di funzione ricorsive mediante record di attivazione - un esempio complesso: le torri di Hanoi - funzioni ricorsive su liste: - gestione di una singola lista - gestione di più liste - funzioni ricorsive di ordinamento: - QuickSort - MergeSort
- pointers in C and their use for list-making - interactive functions on lists: - management of a single list - management of several lists - recursion: - definition and basic concepts - simulation of recursive functions using activation records - a complex example: the towers of Hanoi - recursive functions on lists - management of a single list - management of several lists - recursive sorting functions: - QuickSort - MergeSort
Risultati di apprendimento attesi/Intended learning objectives
Conoscenza della ricorsione, delle struct, degli algoritmi di ordinamento (ricorsivi/iterativi), del caricamento di liste e strutture dati da file, di analisi della complessità spazio/tempo su algoritmi su liste ricorsivi/iterativi
Knowledge of recursion, struct, sorting algorithms (recursive/iterative), loading lists and data structures from files, space/time complexity analysis on recursive/iterative list algorithms
×
Stampa
Insegnamento
TECNICHE DI COMUNICAZIONE E SCRITTURA
Codice
MF0395
Anno Accademico
2024/2025
Anno regolamento
2024/2025
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
BUSSOLINO CLAUDIA
CFU
3.0
Ore di lezione
24.0
Ore di studio individuale
51.0
Settore Scientifico Disciplinare (SSD)
L-FIL-LET/12 - LINGUISTICA ITALIANA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OBB
Categoria insegnamento
C
Anno
1
Periodo
Secondo Semestre
Sede
ALESSANDRIA
Tipo di valutazione
V
Lingua insegnamento/Teaching language
Italiano
Italian
Contenuti/Content Summary
Il corso punta a fornire una buona conoscenza delle principali tecniche di comunicazione e di scrittura, tenendo in particolare considerazione il tipo di formazione scientifica degli studenti e le loro più frequenti occasioni di scrittura in campo accademico e professionale. Per questo, sono esaminati i principali modelli della comunicazione, compresi i principi e le massime del comunicare. Inoltre, sono precisate le fasi della scrittura ed è approfondita la strutturazione del testo in capoversi e paragrafi. Il corso include anche una descrizione delle principali caratteristiche della lingua italiana, e un esame dei più ricorrenti errori di grammatica e scrittura; questi saranno rilevati e monitorati attraverso diverse modalità durante gli incontri, al fine di promuoverne un recupero consapevole e autonomo da parte degli studenti.
The course aims to provide a good knowledge of the main communication and writing techniques, taking into particular consideration the type of scientific training of the students and their more frequent academic and professional writing opportunities. For this, the main models of communication are examined, including the principles and maxims of communicating. In addition, the phases of writing are specified and the structuring of the text into paragraphs and paragraphs is deepened. The course also includes a description of the main characteristics of the Italian language, and an examination of the most common grammar and writing errors; these will be detected and monitored in different ways during the meetings, in order to promote a conscious and autonomous re-use by the students.
Testi di riferimento/Textbooks
Testo di riferimento: Dario Corno, Scrivere e comunicare. La scrittura in lingua italiana in teoria e in pratica. Pearson (ed. digitale: https://he.pearson.it/catalogo/4306). Ulteriori riferimenti: Luca Cignetti, Simone Fornara, Il piacere di scrivere. Guida all’italiano del Terzo millennio. Roma: Carocci, 2014. Luca Cignetti, Silvia Demartini, L’ortografia. Roma: Carocci, 2016. Giuseppe Patota, L’italiano dalla A alla X. Prontuario di grammatica. Roma-Bari: Laterza, 2013.
Testo di riferimento: Dario Corno, Scrivere e comunicare. La scrittura in lingua italiana in teoria e in pratica. Pearson (ed. digitale: https://he.pearson.it/catalogo/4306). Ulteriori riferimenti: Luca Cignetti, Simone Fornara, Il piacere di scrivere. Guida all’italiano del Terzo millennio. Roma: Carocci, 2014. Luca Cignetti, Silvia Demartini, L’ortografia. Roma: Carocci, 2016. Giuseppe Patota, L’italiano dalla A alla X. Prontuario di grammatica. Roma-Bari: Laterza, 2013.
Obiettivi formativi/Mission
Il corso punta a formare una buona competenza: - nell’uso analitico dei modelli della comunicazione - nell’uso delle massime del comunicare - di scrittura verificata in tutte le sue componenti (documentazione, pianificazione, stesura, revisione, editing, pubblicazione) - della lingua italiana scritta - nella progettazione di testi scritti - nella realizzazione scritta di testi scientifici.
The course aims to train good competence: - in the analytical use of communication models - in the use of the maxims of communicating - writing verified in all its components (documentation, planning, drafting, revision, editing, publication) - of the written Italian language - in the design of written texts - in the written production of scientific texts.
Prerequisiti/Required background knowledge
È richiesta la conoscenza della lingua italiana, almeno a livello C1.
Proficiency in the Italian language is required (C1 QCER).
Metodi didattici/Teaching methods
Sono presentate lezioni frontali con l’ausilio di slides (ppt).
Lectures are presented with the use of slides.
Altre informazioni/Further information
Durante il corso gli studenti si impegnano in esercitazioni scritte che sono valutate talora collettivamente, talora individualmente.
Durante il corso gli studenti si impegnano in esercitazioni scritte che sono valutate talora collettivamente, talora individualmente.
Modalità di verifica dell'apprendimento/Assessment methods
In sede d’esame allo studente è richiesto di comporre per iscritto un testo e di rispondere a 15 domande (tempo: 2h30).
During the exam, the student is required to compose in writing a text consisting of a report on what they have learned in the course (time: 2h30).
Programma esteso/Content
Il corso esamina i seguenti contenuti: 1. Comunicazione e linguaggio – 2. I modelli della comunicazione – 3. Il testo – 4. La scrittura professionale – 5. Il processo di scrittura – 6. La documentazione – 7. La pianificazione – 8. Il paragrafo – 9. La stesura – 10.Il capoverso e l’uso della lingua – 11. Le norme – 12. Lo stile e la revisione. – 13. Il significato e il lessico – 14. La sintassi e il testo. – 15. La relazione d’esame – 16. Il testo professionale – 17. La lingua italiana e le sue caratteristiche – 18. La lingua italiana e i suoi principali errori nella scrittura – 19. Il testo scientifico.
The course examines the following contents: 1. Communication and language - 2. The communication models - 3. The text - 4. The professional writing - 5. The writing process - 6. The documentation - 7. The planning - 8. Paragraph - 9. The drafting - 10. The paragraph and the use of language - 11. The rules - 12. The style and revision. - 13. The meaning and the lexicon - 14. The syntax and the text. - 15. The examination report - 16. The professional text - 17. The Italian language and its characteristics - 18. The Italian language and its main errors in writing - 19. The scientific text.
Risultati di apprendimento attesi/Intended learning objectives
Lo studente dovrà dimostrare una competenza nella comprensione e produzione dei testi complessi utili nel percorso universitario e lavorativo.
The student will have to demonstrate competence in the understanding and production of complex texts useful in the university and work path.
×
Stampa
Insegnamento
TECNICHE DI COMUNICAZIONE E SCRITTURA
Codice
MF0396
Anno Accademico
2024/2025
Anno regolamento
2024/2025
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
DEMARTINI SILVIA
CFU
3.0
Ore di lezione
24.0
Ore di studio individuale
51.0
Settore Scientifico Disciplinare (SSD)
L-FIL-LET/12 - LINGUISTICA ITALIANA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OBB
Categoria insegnamento
C
Anno
1
Periodo
Secondo Semestre
Sede
VERCELLI
Tipo di valutazione
V
Lingua insegnamento/Teaching language
ITALIANO
Italian
Contenuti/Content Summary
Il corso punta a fornire una buona conoscenza delle principali tecniche di comunicazione e di scrittura, tenendo in particolare considerazione il tipo di formazione scientifica degli studenti e le loro più frequenti occasioni di scrittura in campo accademico e professionale. Per questo, sono esaminati i principali modelli della comunicazione, compresi i principi e le massime del comunicare. Inoltre, sono precisate le fasi della scrittura ed è approfondita la strutturazione del testo in capoversi e paragrafi. Il corso include anche una descrizione delle principali caratteristiche della lingua italiana, e un esame dei più ricorrenti errori di grammatica e scrittura; questi saranno rilevati e monitorati attraverso diverse modalità durante gli incontri, al fine di promuoverne un recupero consapevole e autonomo da parte degli studenti.
The course aims to provide a good knowledge of the main communication and writing techniques, taking into particular consideration the type of scientific training of the students and their more frequent academic and professional writing opportunities. For this, the main models of communication are examined, including the principles and maxims of communicating. In addition, the phases of writing are specified and the structuring of the text into paragraphs and paragraphs is deepened. The course also includes a description of the main characteristics of the Italian language, and an examination of the most common grammar and writing errors; these will be detected and monitored in different ways during the meetings, in order to promote a conscious and autonomous re-use by the students.
Testi di riferimento/Textbooks
Testo di riferimento: Dario Corno, Scrivere e comunicare. La scrittura in lingua italiana in teoria e in pratica. Pearson (ed. digitale: https://he.pearson.it/catalogo/4306). Ulteriori riferimenti: Luca Cignetti, Simone Fornara, Il piacere di scrivere. Guida all’italiano del Terzo millennio. Roma: Carocci, 2014. Luca Cignetti, Silvia Demartini, L’ortografia. Roma: Carocci, 2016. Giuseppe Patota, L’italiano dalla A alla X. Prontuario di grammatica. Roma-Bari: Laterza, 2013.
Testo di riferimento: Dario Corno, Scrivere e comunicare. La scrittura in lingua italiana in teoria e in pratica. Pearson (ed. digitale: https://he.pearson.it/catalogo/4306). Ulteriori riferimenti: Luca Cignetti, Simone Fornara, Il piacere di scrivere. Guida all’italiano del Terzo millennio. Roma: Carocci, 2014. Luca Cignetti, Silvia Demartini, L’ortografia. Roma: Carocci, 2016. Giuseppe Patota, L’italiano dalla A alla X. Prontuario di grammatica. Roma-Bari: Laterza, 2013.
Obiettivi formativi/Mission
Alla fine del corso, ci si aspetta che gli studenti inizino a cogliere l’importanza di una comunicazione corretta, chiara e funzionale come aspetto imprescindibile della loro formazione scientifica e della loro professione futura. Inoltre, dovranno saper applicare alla redazione di un testo le indicazioni fornite ed esercitate durante il corso, in modo adeguato alle diverse tipologie e generi testuali (con attenzione particolare al saggio scientifico). Infine, dovranno aver in gran parte colmato le lacune grammaticali di base e, soprattutto, dovranno aver accresciuto la loro sensibilità a cogliere e a risolvere le proprie difficoltà linguistico-comunicative.
At the end of the course, students are expected to begin to grasp the importance of correct, clear and functional communication as an essential aspect of their scientific training and their future profession. Furthermore, they will have to know how to apply the indications provided and exercised during the course to the drafting of a text, in an appropriate way for the different text types and genres (with particular attention to the scientific essay). Finally, they must have largely filled the basic grammatical gaps and, above all, they must have increased their sensitivity to check and solve their linguistic-communicative difficulties.
Prerequisiti/Required background knowledge
Nessuno
No background knowledge is required
Metodi didattici/Teaching methods
Lezioni frontali Laboratori di scrittura Apprendimento cooperativo
Frontal lessons Writing workshops Cooperative learning
Altre informazioni/Further information
Il corso è aperto agli studenti e alle studentesse che non hanno l'italiano come madrelingua
Students that are learning Italian as a L2 o LS are welcome
Modalità di verifica dell'apprendimento/Assessment methods
Esercitazioni in itinere Esame scritto
Writing exercices Final written exam
Programma esteso/Content
• La comunicazione (segni, codici) • Prova formativa d'entrata (2 ore) • Restituzione prova d'entrata • Segni e linguaggi, significato e significante, langue e parole, registri linguistici • Spiegazione esercitazione sulla scrittura di una mail • Registri linguistici e Modello di Jakobson (della comunicazione). Ideazione di uno slogan per l’UPO (esercitazione orale). • Il parlato in pubblico: tratti del parlato; la presentazione; il dibattito. • Esercitazione orale a gruppi: presentare e dibattere su un argomento • che si presta alla documentazione e alla discussione. • Il processo di scrittura e le sue fasi (focus su destinatari, pianificazione, fonti) • Consigli pratici di scrittura • La citazione delle fonti • Quiz su aspetti grammaticali • Cenni di storia della scrittura e dell'italiano (breve focus su scrittura scientifica) • Un'ora di esercitazione e cenni al CV
• Communication (signs, codes) • Entry exam (2 hours) • Return proof of entry • Signs and languages, meaning and signifier, langue and parole, linguistic registers • Explanation of the tutorial on writing an email • Linguistic registers and the Jakobson model (of communication). Creation of a slogan for the UPO (oral exercise). • Public speaking: speech traits; the presentation; the debate. • Oral exercise in groups: presenting and discussing a topic • which lends itself to documentation and discussion. • The writing process and its phases (focus on recipients, planning, sources) • Practical writing tips • The citation of sources • Quiz on grammar aspects • Notes on the history of writing and Italian (short focus on scientific writing) • One hour of practice and references to the CV
Risultati di apprendimento attesi/Intended learning objectives
- Padroneggiare le basi della scrittura funzionale, accademica e professionale; - colmare le lacune grammaticali; - acquisire conoscenze di base sui processi comunicativi orali e scritti; - acquisire competenza di scrittura idonea al percorso accademico.
- Magaging the basics of functional, academic and professional writing; - filling in grammatical gaps; - acquiring basic knowledge on oral and written communication processes; - acquiring writing skills suitable for the academic path.
×
Stampa
Insegnamento
ARCHITETTURA DEGLI ELABORATORI
Codice
S1363
Anno Accademico
2024/2025
Anno regolamento
2024/2025
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
FRANCESCHINIS Giuliana Annamaria
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
1
Periodo
Annuale
Sede
ALESSANDRIA
Tipo di valutazione
V
Lingua insegnamento/Teaching language
Italiano
Italian
Contenuti/Content Summary
Descrizione dell'architettura, strutturata a livelli, di un moderno sistema di elaborazione, delle sue principali componenti hardware e della sua interfaccia verso i livelli software eseguiti su tale hardware. Il corso si articola in due moduli: il primo pone le basi introducendo la rappresentazione binaria di tutti i tipi di dati (numeri, testo, immagini, grandezze analogiche); i componenti base dell’hardware di un calcolatore e in particolare la struttura interna del processore; l’interazione tra il processore e la memoria centrale e i principali dispositivi di input/output. Il secondo analizza più dettagliatamente la struttura interna di uno specifico processore, semplice ma realistico, il suo linguaggio macchina e la relativa implementazione tramite microinterprete; vengono discusse possibili varianti di tale processore, via via più efficienti; viene inoltre presentato il meccanismo di funzionamento della memoria cache e in generale tutta la gerarchia delle memorie di un sistema di calcolo; infine segue un’analisi generale sul livello della Instruction Set Architecture (ISA), con lo studio delle caratteristiche dei linguaggi macchina e dei modi alternativi di realizzare l’interazione tra il processore e i dispositivi di I/O.
The layered architecture of modern computers is introduced. The main hardware components are presented and their interface towards the upper software layers is explained. The course comprises two units: the first one introduces the basic concepts, in particular the binary representation of data (numbers, text, images, analog quantities); the basic hardware components of a computer, in particular the processor architecture; the interaction between the processor, the memory and the main I/O devices. The second unit analyzes in detail a processor architecture, which is relatively simple but realistic, including its Instruction Set Architecture which is implemented through a microinterpreter; alternative internal organizations of the processor are discussed and their efficiency is compared; the basic principles about the cache memory and in general about the memory hierarchy of a computer system are introduced; finally the Instruction Set Architecture (ISA) level is introduced, with the analysis of the main characteristics of machine languages and the possible interaction modes between the processor and the I/O devices.
Testi di riferimento/Textbooks
A.S. Tanenbaum, T.Austin: "Architettura dei Calcolatori: un approccio strutturale", VI Edizione, Pearson Education Italia, 2013.
A.S. Tanenbaum, T. Austin: "Structured Computer Organization", VI Ed., Pearson Education, 2013.
Obiettivi formativi/Mission
Un obiettivo del corso è far conoscere i principali componenti di un sistema di calcolo ed aiutare a comprendere i principi di base del loro funzionamento e delle loro interazioni, che si basano sulla codifica binaria di tutti i tipi di dato elaborati e memorizzati. Un importante concetto introdotto in questo corso è quello di architettura stratificata: lo scopo è far comprendere come essa permetta di realizzare funzioni complesse componendo funzioni più semplici realizzate tramite hardware o tramite software (applicando il metodo di scomposizione di un problema complesso in sottoproblemi più semplici). Un altro importante obiettivo è far comprendere l’impatto delle conquiste tecnologiche sull’evoluzione dell’organizzazione dei sistemi di calcolo; la riflessione su questi temi serve anche a sviluppare l’abilità di confrontare le caratteristiche di organizzazioni alternative di sistemi di calcolo (o di singoli componenti) e valutarne le differenze in termini di costo e prestazioni. Entrando un po’ più nei dettagli, si intende mostrare l’architettura interna di un processore, le tecniche di ottimizzazione, le principali caratteristiche dei linguaggi macchina, ed il funzionamento della gerarchia delle memorie, senza trascurare le principali tipologie di architetture parallele (che sollevano nuove problematiche relative alla gestione della memoria e alla programmazione). Infine il corso intende stimolare lo sviluppo della capacità di aggiornarsi autonomamente su aspetti specifici e temi più avanzati dell’architettura dei sistemi di calcolo.
One objective of this course is to set the basic knowledge on the high level structure of a computer, introducing its components and allowing to understand the basic operational principles and the interactions among such components, which are based on the binary encoding of any data type stored and processed by a computer. An important concept introduced by this course is that of layered architecture: the goal is to help understanding how complex functions can be implemented by composing simpler functions which can be realized in hardware or in software (applying the method of decomposing a complex problem in simpler subproblems). Another important goal is to help understanding the impact of technological advances on the computer organization evolution; reasoning on this topic contributes developing the ability to compare the characteristics of different computer architecture (or computer component) organizations and to evaluate the differences in cost and performance. Going into some detail, the course allows to acquire knowledge on the internal architecture of a processor, the optimization techniques, the main features of the machine languages, and how memory hierarchy works; in order to be aligned with the more recent architectural developments, some basic concepts on the main types of parallel architectures, and the problems related with the memory management and the impact on the programming style are presented. Finally, during the course, the development of skills for autonomous learning of the latest advances concerning computer systems architecture is encouraged (in particular skills to search the necessary documentation on-line).
Prerequisiti/Required background knowledge
Il corso è introduttivo, quindi non ci sono specifici requisiti. I contenuti del primo modulo sono propedeutici a quelli del secondo, quindi è necessario studiare i due moduli in sequenza.
The course is introductory, so there are no specific requirements. The first unit should be studied before proceeding to the second one.
Metodi didattici/Teaching methods
Gli argomenti trattati nel corso sono esposti tramite lezioni frontali ed integrate con esercitazioni pratiche basate sull’uso di vari strumenti software allo scopo di far osservare tramite esempi concreti quanto esposto a lezione. Per ogni argomento trattato vengono proposti esercizi o quiz formativi. Vengono inoltre proposti incontri a piccoli gruppi alla presenza di un tutor, per svolgere e discutere esercizi (simili a quelli proposti nelle prove scritte).
The topics of the course are mainly presented through class lectures that may be integrated with practical exercises based on various software tools with the aim of allowing to observe through examples the concepts presented in the lectures. After presenting each topic the students are challenged with exercises and formative quizzes. Tutored meetings in small groups are proposed, to develop and discuss exercises (similar to those included in the written exam).
Altre informazioni/Further information
Sulla piattaforma DIR sono disponibili: la copia elettronica delle slide utilizzate a lezione, esempi di testi d’esame, esercizi o quiz on-line utili ai fini dell’autovalutazione, l’emulatore dell’architettura MIC1, con il relativo micro-interprete di IJVM ed esempi di programmi. Tramite un forum specifico del corso vengono pubblicate informazioni generali sul corso, avvisi relativi allo svolgimento del corso e informazioni riguardanti gli esami. Inoltre sono attivi forum dove gli studenti possono porre domande sugli argomenti del corso e sugli esercizi proposti, e rispondere a domande pubblicate da altri 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, 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.
It is possible to download electronic copy of all slides of the lectures, perform self-assessment on-line tests or exercises, the emulator of the MIC1 architecture, the associated micro-interpreter of IJVM and some programming examples. It is possible to find general information on the course and news about the lectures and the exam organization on the e-learning platform DIR. Specific forums can be used by students to ask questions on course topics or exercises, or to provide answers posted by other students. 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 prevede due prove parziali, una per ciascuno dei due moduli. Di norma la prova parziale è in forma di compito scritto, ma può essere proposta una integrazione orale (per esempio nel caso di compito quasi sufficiente per raggiungere la sufficienza piena). Possono essere proposte prove in itinere (come supporto al superamento dell’esame finale, che possono anche assumere la forma di esercizi da svolgere in laboratorio). La prova comprende da quattro a sei domande che possono essere articolate in sottopunti e comprendono anche esercizi di applicazione delle nozioni apprese ad esempi concreti. Ciascuno dei due moduli ha un suo esame ed è necessario conseguire un esito sufficiente in ciascun modulo per superare l’esame complessivo. Il voto finale è stabilito in modo collegiale dai docenti dei due moduli, tenuto conto dell’esito ottenuto in ciascun modulo.
The exam is composed by two tests, one for each unit. The tests are written, but an oral integration may be required (for instance this could be the case when the written test grade is not fully sufficient, and the oral integration may allow to improve the grade and pass the exam). Intermediate tests can be organized (as a facilitation to pass the exam early at the end of the course) that may comprise lab exercises. The test includes four to six questions each of which possibly structured into several points. The questions may also take the form of exercises testing the ability to apply the learned concepts to practical examples. Each unit has its own exam, and a sufficient final result is required in each unit in order to pass the exam of the whole course. The final grade is agreed upon by the teachers of the two units, taking into account the final result obtained in each one.
Programma esteso/Content
Questo corso non prevede conoscenze preliminari, quindi nel primo modulo viene tracciata in breve l’evoluzione storica dei calcolatori sottolineando l’impatto della tecnologia nei passaggi da una generazione alla successiva; in seguito viene introdotte la terminologia di base necessaria per poter affrontare più in dettaglio la descrizione dell’organizzazione interna dei moderni calcolatori, ponendo in risalto la struttura stratificata; in particolare vengono descritti ad alto livello il processore (CPU – Central Processing Unit), la memoria centrale e i dispositivi di I/O. Viene definita la codifica binaria di numeri naturali, numeri interi e frazionari, di testi, di immagini e di grandezze analogiche. Vengono poi introdotti i circuiti logici combinatori e sequenziali dopo aver presentato l’algebra di Boole e aver mostrato la corrispondenza tra espressioni booleane e circuiti composti da porte logiche. Vengono illustrati esempi di circuiti comuni e il loro impiego all’interno di un processore. Vengono anche discusse le modalità di interazione tra i componenti di un calcolatore (cenni sui protocolli dei bus). Su queste basi prosegue il secondo modulo che approfondisce la struttura del processore (i cui componenti di base sono stati studiati nel primo modulo) sviluppando un esempio completo di processore microprogrammato mostrando come il suo linguaggio macchina possa essere realizzato tramite un microinterprete a partire da un’architettura relativamente semplice ma realistica. Vengono poi discusse versioni successive del processore di esempio che introducono miglioramenti nelle prestazioni, secondo un percorso evolutivo che riflette l’evoluzione dei moderni processori. Con questo approccio vengono presentate le architetture basate su pipeline, e si accenna a ulteriori evoluzioni (come la predizione dei salti, l’esecuzione speculativa e fuori ordine). Vengono anche affrontate le problematiche della differenza di prestazioni tra CPU e memoria centrale, introducendo la cache (nelle sue diverse declinazioni) e discutendone l’efficacia attraverso i concetti di località spaziale e temporale. Segue una panoramica sulle caratteristiche del “linguaggio macchina” (Instruction Set Architecture) approfondendo i linguaggi CISC, RISC, load/store. Viene, quindi, introdotta la tecnica della memoria virtuale, collocandola nel quadro della gerarchia delle memorie. Il modulo si chiude con la descrizione di alcuni tipi di architetture parallele, ed analisi della problematica della coerenza delle memorie cache nei multiprocessori.
This course doesn’t have specific prerequisites. The first unit starts with a brief review of the historical evolution of computers, highlighting the impact that some technological advances had on the evolution from each generation to the next one. Then the basic terminology needed to dive into the details of the internal layered organization of modern computers is introduced; in particular the CPU (Central Processing Unit), the central memory and the I/O devices are described at an high level. The binary encoding of natural, integer and fractional numbers as well as text, images and analog quantities is defined. The combinatorial and sequential logical circuits are then introduced, after having presented the Boolean algebra, showing the correspondence between any Boolean expression and circuits composed of logical gates. Examples of common circuits are discussed and their use within the processor is explained. The interaction modes among the computer components are also described (including some examples of bus protocols). The second unit builds on the concepts introduced in the first one and develops the details of a microprogrammed processor structure (whose basic components are presented in the first unit) showing how its machine language can be implemented through a microinterpreter based on the elementary operations of a simple but realistic hardware architecture. Possible variations on the theme of this first architecture are then discussed, each one introducing new performance improvements, following a path that resembles the evolution of modern processors. This step-by-step approach allows to introduce the pipeline-based architectures (complemented with hints on further improvements through techniques as branch prediction, speculative and out-of-order execution). The performance gap between the speed of CPU and central memory is also discussed, leading to the introduction of the cache memory (with its variants) and studying its effectiveness based on the concepts of temporal and spatial locality. Next an overview on the features of machine languages (the so called Instruction Set Architecture - ISA) is proposed, including the classification in CISC, RISC or Load/Store ISA. The virtual memory technique is also introduced, in the framework of the memory hierarchy. Finally some examples of parallel architectures are presented, discussing the problem of cache coherence in multiprocessors.
Risultati di apprendimento attesi/Intended learning objectives
Modulo 1: Saper descrivere l’evoluzione storica dei calcolatori indicando i principali fattori tecnologici abilitanti. Saper definire la notazione posizionale di numeri interi e frazionari in base r qualsiasi. Descrivere e saper applicare gli algoritmi di trasformazione di numeri interi e frazionari tra basi. Saper distinguere e saper ricavare le diverse codifiche binarie dei numeri interi con segno. Conoscere e saper ricavare la rappresentazione dei numeri frazionari in virgola mobile secondo lo standard IEEE 754. Enunciare e spiegare le principali leggi dell’algebra di Boole. Saper rappresentare una funzione booleana in varie forme normali SP e PS e semplificare tali forme tramite operazioni algebriche o con le mappe di Karnaugh. Saper definire la tavola di verità delle principali porte logiche. Saper ricavare un circuito combinatorio corrispondente ad una data espressione booleana. Saper descrivere quale funzione booleana realizza un dato circuito. Saper riconoscere alcuni circuiti logici combinatori e sequenziali di base e descrivere la funzione che realizzano. Descrivere i principali componenti di un sistema di calcolo e in particolare della CPU, indicarne le caratteristiche salienti, i meccanismi di funzionamento e le modalità di interazione. In particolare descrivere le componenti della CPU e il ciclo fetch-decode-execute, la differenza tra architetture CISC e RISC e l’idea alla base delle architetture a pipeline. Descrivere l’architettura e il linguaggio delle microistruzioni del processore MIC1, realizzare alcune semplici sequenze di microistruzioni e spiegare quale cambiamento di stato causano. Modulo 2: Sapere descrivere come è eseguita un’istruzione su MIC1 e sapere analizzare le diverse tecniche per l’aumento delle prestazioni. Essere in grado di scrivere brevi programmi in linguaggio macchina (IJVM) e di estendere il micro-interprete. Conoscere le caratteristiche generali dei linguaggi macchina (es. tipi di istruzioni, modalità d’indirizzamento), nelle architetture CISC, RISC e load/store. Sapere descrivere l’uso della gerarchia delle memorie, comprendendo l’importanza del principio della località spaziale e temporale. Essere in grado di spiegare ed applicare le tecniche di funzionamento della cache e della memoria virtuale tra memoria centrale e memoria secondaria. Comprendere la differenza fra indirizzi virtuali e indirizzi fisici e le tecniche per la traduzione dai primi ai secondi. Acquisire la capacità di aggiornarsi sulle principali soluzioni di architetture parallele.
Unit 1: Describe the historical evolution of computers highlighting the impact of technology on their organization. Know the the positional representation of numbers in any base r (both integer and fractional numbers). Describe and apply the procedures for transforming an integer or a fractional number from decimal to base 2, 8 or 16 and viceversa. Be able to distinguish and derive the different encodings of signed integer numbers. Know and acquire the ability to apply the procedure to transform a fractional number into the floating point representation according to standard IEEE 754. Enunciate and explain the main Boolean algebra laws. Know how to represent a Boolean function in the two classical normal forms (sum of products or product of sums) and be able to apply simplification procedures (e.g. through the Karnaugh maps). Know the truth table of the main logical gates. Know how to derive a logic circuit implementing a given Boolean function. Be able to derive the Boolean function corresponding to a given circuit. Recognize a few common combinatorial and sequential circuits and describe the function(s) they implement. Describe the main components of a computer system and of the CPU, explain which are their characteristics, the operational behavior and the interaction modes. In particular describe the CPU and the fetch-decode-execute cycle, the difference between CISC and RISC architectures end the idea behand the pipeline based architectures. Describe the MIC1 architecture and the microinstructions language and explain which state change is caused by executing each microistruction. Unit 2: Describe how an instruction is executed in MIC1 and analyze the techniques allowing to improve performance. Acquire the ability to develop short programs in machine language (IJVM) and to extend the micro-interpreter with the introduction of new instructions. Know the main characteristics of a machine language (e.g., instruction types, instruction formats, addressing modes). Understand the characteristics and the differences of the ISA in the CISC, RICS and load/store architectures. Know the basic concepts behind the memory hierarchy, and understand the relevance of spatial locality and temporal locality principles in this context. Acquire the ability to explain and apply the operational techniques of the cache between CPU and central memory and of the virtual memory between central memory and secondary memory. Understand the difference between (virtual) address space and (physical) memory location and the related mapping techniques. Achieve the capability to orienteering and autonomously learning the new trends about parallel architectures.
Moduli
Codice Insegnamento Settore Scientifico Disciplinare (SSD) Docenti Agenda web
S1364ARCHITETTURA 1 INF/01 - INFORMATICA Franceschinis Giuliana Annamaria
S1365ARCHITETTURA 2 INF/01 - INFORMATICA Lai Mirko, Franceschinis Giuliana Annamaria
Mostra scheda insegnamento padre
×
Stampa
Insegnamento
ARCHITETTURA DEGLI ELABORATORI: ARCHITETTURA 1
Codice
S1364
Anno Accademico
2024/2025
Anno regolamento
2024/2025
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
FRANCESCHINIS Giuliana Annamaria
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
1
Periodo
Primo Semestre
Sede
ALESSANDRIA
Tipo di valutazione
G
Lingua insegnamento/Teaching language
Italiano
Italian
Contenuti/Content Summary
Descrizione dell'architettura, strutturata a livelli, di un moderno sistema di elaborazione, delle sue principali componenti hardware e della sua interfaccia verso i livelli software eseguiti su tale hardware. Questo è il primo di due moduli integrati in un unico corso. Esso pone le basi introducendo: la rappresentazione binaria di tutti i tipi di dati (numeri, testo, immagini, grandezze analogiche), i componenti base dell’hardware di un calcolatore e in particolare la struttura interna del processore, l’interazione tra il processore e la memoria centrale e tra il processore e i dispositivi di input/output
The architecture of modern computers is introduced emphasizing its layered structure. The main hardware components are presented and their interface towards the upper software layers is explained. This is the first of two units that together constitute one integrated course. It lays out the basis by introducing: the binary encoding of all data types (numbers, text, images, analog quantities), the basic hardware components of a computer and in particular the internal structure of the CPU, the interaction between the CPU and the central memory and between the CPU and the I/O devices.
Testi di riferimento/Textbooks
A.S. Tanenbaum, T.Austin: "Architettura dei Calcolatori: un approccio strutturale", VI Edizione, Pearson Education Italia, 2013.
A.S. Tanenbaum, T. Austin: "Structured Computer Organization", VI Ed., Pearson Education, 2013.
Obiettivi formativi/Mission
Il primo obiettivo del corso è far conoscere le basi della codifica binaria dell’informazione numerica, testuale e delle immagini e le basi dell’elaborazione di dati codificati in binario attraverso funzioni logiche, definite per mezzo dell’algebra di Boole, e realizzabili concretamente sotto forma di circuiti logici. Un altro obiettivo è quello di far conoscere i principali componenti di un sistema di calcolo, far comprendere i principi di base del loro funzionamento e delle interazioni, sottolineando come il rapido sviluppo di nuove tecnologie abbia influito sull’evoluzione dell’organizzazione dei sistemi di calcolo. Ciò contribuisce a sviluppare l’abilità di confrontare le caratteristiche di diverse organizzazioni di sistemi di calcolo (o di componenti di un sistema di calcolo) e valutarne le differenze in termini di costo e prestazioni. Un altro importante concetto introdotto nel corso è la strutturazione stratificata dei sistemi di calcolo: si vuole sottolineare che tale struttura deriva dall’applicazione del metodo di scomposizione di un problema complesso in sotto-problemi più semplici. Per far comprendere in termini più concreti tale concetto, esso viene esemplificato attraverso l’architettura di un semplice processore (il MIC1, non reale ma realistico): le semplici operazioni che l’architettura di base è in grado di eseguire permettono di realizzare un linguaggio macchina più evoluto (IJVM) tramite la microprogrammazione, questo secondo argomento viene affrontato nel secondo modulo.
The first goal of this course is to develop the knowledge on the basic concepts of binary information encoding (binary representation of numbers, text and images) and of the processing of binary data through logical functions, defined by means of Boolean algebra, and implemented by logic circuits. Another goal is to develop the knowledge about the main components of a computer, and understand the basic operational principles and the interactions between such components; in this context it is interesting to highlight the impact that the technological advances have on the organization of computer architecture. Such observations allow to exercise the ability to compare the characteristics of different computer architecture organizations (or of different computer component organizations) and to evaluate the differences in cost and performance. Another important concept introduced in this course is the layered structure of the computer systems: it derives from the application of the method of problem decomposition into simpler sub-problems. To help understanding in practice such concept, it is exemplified by presenting the architecture of a simple processor (MIC1, not real but realistic): building on the simple operations that can be executed directly by the basic hardware architecture, it is possible to implement the more powerful MIC1 machine language (IJVM) through microprogramming, the latter topic is developed in the second module.
Prerequisiti/Required background knowledge
Nessuno
None
Metodi didattici/Teaching methods
Gli argomenti trattati nel corso sono esposti prevalentemente tramite lezioni frontali che potranno essere integrate con alcune esercitazioni in laboratorio (allo scopo di osservare la rappresentazione in memoria di diversi tipi di dato, di disegnare e simulare circuiti logici combinatori e sequenziali, di sperimentare l’esecuzione di semplici programmi in linguaggio macchina tramite un emulatore). Durante le lezioni viene usato uno strumento (Wooclap) che permette di interagire con gli studenti tramite quiz anonimi e interattivi accessibili tramite smartphone. In questo modo è possibile stimolare la riflessione e rilevare eventuali criticità nel processo di apprendimento. Per ogni argomento trattato vengono proposti esercizi o quiz formativi. Vengono inoltre proposti incontri a piccoli gruppi alla presenza di un tutor, per svolgere e discutere esercizi (simili a quelli proposti nelle prove scritte).
The topics of the course are mainly presented through class lectures that may be integrated with lab sessions (to experiment the internal representation of various data types, to design and simulate combinatorial and sequential circuits, to experiment the execution of simple machine language programs through an emulator). During the lectures an interactive tool (Wooclap) is used to get a feedback from the students through anonymous quizzes that can be answered using the smartphone. This way the students are stimulated to reflect; moreover this activity allows an early detection of the possible critical aspects in the learning process. After presenting each topic the students are challenged with exercises and formative quizzes. Tutored meetings in small groups are proposed, to develop and discuss exercises (similar to those included in the written exam).
Altre informazioni/Further information
Sulla piattaforma DIR sono disponibili: la copia elettronica delle slide utilizzate a lezione, esempi di testi d’esame, quiz di autovalutazione, informazioni generali sul corso e avvisi relativi allo svolgimento del corso e sugli esami. Tramite un forum specifico del corso vengono pubblicate informazioni generali sul corso, avvisi relativi allo svolgimento del corso e informazioni riguardanti gli esami. Inoltre sono attivi forum dove gli studenti possono porre domande sugli argomenti del corso e sugli esercizi proposti, e rispondere a domande pubblicate da altri studenti.
It is possible to download electronic copy of all slides of the lectures, perform self-assessment tests, read general information on the course and news about the lectures and the exam organization on the e-learning platform DIR . General information on the organization of the course and of the exams are published through a forum. Specific forums can be used by students to ask questions on course topics or exercises, or to provide answers posted by other students.
Modalità di verifica dell'apprendimento/Assessment methods
L’esame di norma è scritto ma è possibile richiedere l’orale; inoltre una integrazione orale può essere proposta (dopo lo scritto) dalla docente quando sia necessario chiarire qualche punto oscuro dello scritto. Possono essere proposte prove in itinere (come supporto al superamento dell’esame finale) che possono anche assumere la forma di esercizi da svolgere in laboratorio. La prova comprende da quattro a sei domande che possono essere articolate in sottopunti e comprendono anche esercizi di applicazione delle nozioni apprese ad esempi concreti. La prova è superata se si raggiunge un punteggio di almeno il 60% dei punti totalizzabili sull’insieme di domande. Ciascuno dei due moduli del corso integrato ha un suo esame ed è necessario conseguire un esito sufficiente in ciascun modulo per superare l’esame complessivo. Il voto finale è stabilito in modo collegiale dai docenti dei due moduli, tenuto conto dell’esito ottenuto in ciascun modulo.
The examination consists of a written test, however it is possible to ask for an oral exam. Moreover an oral integration may be required (by the teacher) to clarify some unclear parts of the answers in the written test. Intermediate tests can be organized (as a facilitation to pass the exam early at the end of the course) that may comprise lab exercises. The test includes four to six questions each of which possibly structured into several points. The questions may also take the form of an exercise testing the ability to apply the learned concepts to practical examples. The threshold to pass the exam is the 60% of the global sum of points assigned to the questions. Each unit has its own exam, and a sufficient final result is required in each unit in order to pass the exam of the whole course. The final grade is agreed upon by the teachers of the two units, taking into account the final result obtained in each one.
Programma esteso/Content
Breve panoramica sulla evoluzione storica dei sistemi di calcolo (dalla Macchina Analitica di Charles Babbage ai giorni nostri). Codifica dell’informazione: codifica binaria dei numeri interi con e senza segno. Trasformazione dalla rappresentazione binaria alla rappresentazione ottale ed esadecimale e viceversa. Operazioni aritmetiche con numeri binari. Codifica dei numeri frazionari: virgola fissa e virgola mobile (standard IEEE 754). Operazioni aritmetiche con numeri in virgola mobile. Codifica del testo (ASCII, UNICODE, UTF-8). Codici ridondanti per rilevazione e correzione di errori. Codifica delle immagini (mappa di bit, profondità e risoluzione). Algebra di Boole. Porte logiche AND, OR, NOT, NAND e NOR. Dalle funzioni logiche ai circuiti combinatori (tavole di verità, espressioni in forma normale Somma di Prodotti e Prodotto di Somme, semplificazione applicando le leggi dell’algebra o tramite mappe di Karnaugh). Esempi di circuiti: Decoder, Multiplexer, Half Adder, Full Adder, ALU, ecc. Circuiti sequenziali: Latch, Flip-Flop, registri e memorie. Principali componenti di un calcolatore (CPU, Memoria RAM, Dischi magnetici, RAID, Dischi ottici, BUS, e varie periferiche. Cenni sui principi di funzionamento. CPU: ciclo di fetch-decode-execute. Processori CISC e RISC. CPU con struttura a pipeline (cenni). Introduzione all’architettura MIC1 (si veda il libro di testo).
Brief review of the historical evolution of computers (from Charles Babbage’s Analytical Engine up to current computers).Information encoding: binary encoding of integer numbers, both unsigned and signed. Transformation from binary to octal and hexadecimal representation and viceversa. Arithmetic operations with binary numbers. Encoding of the fractional numbers: fixed point and floating point (according to IEEE 754 standard). Text encoding (ASCII, Unicode, UTF-8). Redundant codes for error detection and correction. Images encoding (bitmap, image resolution and depth).Boolean algebra, AND, OR, NOT, NAND, NOR gates. From logical functions to combinatorial circuits (truth tables, sum of products and product of sums normal form expressions, simplification by means of algebra laws, or through Karnaugh’s maps). Examples of circuits: Decoder, Multiplexer, Half Adder, Full Adder, ALU, etc. Sequential circuits: Latch, Flip-flop, registers and memories. Main components of a computer (CPU, RAM memory, Magnetic disks, RAID, Optical disks, BUS, various peripherals) and their basic operating principles. Central Processing Unit: fetch-decode-execute cycle. CISC and RISC processors, Processors with pipeline architecture. Introduction the MIC1 architecture (see textbook).
Risultati di apprendimento attesi/Intended learning objectives
Al termine del corso si sarà in grado di: Descrivere l’evoluzione storica dei sistemi di calcolo sottolineando il legame tra evoluzione tecnologica ed evoluzione dell’organizzazione di tali sistemi. Spiegare la rappresentazione posizionale in base r di un numero (intero o frazionario). Descrivere e saper applicare il procedimento per la trasformazione di un numero frazionario senza segno da base 10 a base 2, 8 o 16 e viceversa, e il procedimento per ottenere la codifica binaria in modulo e segno o in complemento a due di un numero intero con segno. Saper eseguire operazioni aritmetiche con numeri binari. Descrivere e saper applicare il procedimento per la trasformazione di un numero frazionario nella sua rappresentazione in virgola mobile secondo lo standard IEEE 754. Enunciare e spiegare le principali leggi dell’algebra di Boole. Saper rappresentare una funzione booleana in varie forme (forme normali SP e PS e semplificate tramite operazioni algebriche o con le mappe di Karnaugh). Saper ricavare un circuito combinatorio corrispondente ad una data espressione booleana. Saper descrivere quale funzione booleana realizza un dato circuito. Saper riconoscere alcuni circuiti logici combinatori e sequenziali di base e descrivere la funzione che realizzano. Descrivere i principali componenti di un sistema di calcolo, indicarne le caratteristiche salienti, i meccanismi di funzionamento e le modalità di interazione. In particolare descrivere le componenti della CPU e il ciclo fetch-decode-execute, la differenza tra architetture CISC e RISC e l’idea alla base delle architetture a pipeline. Descrivere il linguaggio delle microistruzioni del processore MIC1 (istruzioni sia in forma mnemonica che in forma binaria) realizzare alcuni semplici microprogrammi e simularne l’esecuzione. Acquisire la capacità di aggiornarsi su aspetti specifici e temi più avanzati dell’architettura dei sistemi di calcolo, in particolare facendo ricorso a risorse disponibili on-line.
After the course the participants will be able to: Describe the historical evolution of computers highlighting the impact of technology on their organization. Explain the positional representation of numbers in any base r (both integer and fractional numbers). Describe and apply the procedures for transforming a fractional number from decimal to base 2, 8 or 16 and viceversa. Describe and apply the procedure to obtain the binary encoding of signed integers in the two representation: sign and modulus or two’s complement. Execute arithmetic operation with binary numbers. Describe and apply the procedure to transform a fractional number into the floating point representation according to standard IEEE 754. Enunciate and explain the main Boolean algebra laws. Represent a Boolean function in different form (SP and PS normal forms, and simplified either applying algebraic rules or through Karnaugh maps). Derive a logical circuit for a given Boolean algebra expression. Given a circuit, state which Boolean function it implements. Recognize the basic combinatorial and sequential circuits and describe the function they implement. Describe the main components of a computer, list the main characteristics, how they work and how they interact. In particular describe the CPU main components and the fetch-decode-execute cycle. State the differences between CISC and RISC architectures and the principle behind the pipeline architectures. Describe the microinstructions language of MIC1 (both in binary and mnemonic representation), implement some simple microprograms using such language and simulate their execution. Acquire the skills for autonomous learning specific aspects or more advanced topics about computer architecture (in particular skills to search the necessary documentation on-line).
Mostra scheda insegnamento padre
×
Stampa
Insegnamento
ARCHITETTURA DEGLI ELABORATORI: ARCHITETTURA 2
Codice
S1365
Anno Accademico
2024/2025
Anno regolamento
2024/2025
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
FRANCESCHINIS Giuliana Annamaria
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
1
Periodo
Secondo Semestre
Sede
ALESSANDRIA
Tipo di valutazione
G
Lingua insegnamento/Teaching language
ITALIANO
English
Contenuti/Content Summary
Proseguimento dello studio iniziato nel modulo I dell'architettura di un moderno sistema di elaborazione, strutturato come un insieme di macchine virtuali sovrapposte. In particolare, in questo modulo si approfondisce la struttura del processore micro-programmato (non reale ma verosimile, introdotto nel modulo I) MIC1, analizzando come realizzare un micro-interprete per il linguaggio macchina IJVM, una semplificazione del byte-code della Java Virtual Machine. Saranno, quindi, illustrate diverse versioni della microarchitettura con prestazioni via via migliori, tramite l’introduzione di varie tecniche di ottimizzazione delle prestazioni dei processori (pipeline, meccanismi di predizione salti, esecuzione fuori ordine, memorie cache). Segue una panoramica generale sul livello della Instruction Set Architecture (ISA), con lo studio delle caratteristiche dei linguaggi macchina, con un approfondimento sull’ISA dei processori di tipo load/store. Inoltre, il modulo introduce il concetto di memoria virtuale (proprio del livello del sistema operativo) inquadrandolo nel discorso generale della gerarchia delle memorie e sottolineando similitudini e differenze rispetto ai principi e meccanismi di funzionamento della cache. Infine, presenta una panoramica sulle architetture parallele, con un approfondimento degli argomenti relative alla coerenza delle memorie cache nei multiprocessori.
Continuation of the investigation of the computing architectures, organized as a layered set of virtual machines. This module details the structure of MIC1, a microprogrammed processor (not real but plausible, introduced in module I) through the analysis of a micro-interpreter of IJVM machine language, derived from the Java bytecode Virtual machine. Different versions of the microarchitecture are illustrated with progressively better performances. In addition, various process optimization techniques are illustrated (pipelines, jump prediction mechanisms, out of order execution, cache memories). The following is a general overview of the Set Architecture (ISA) instruction level, with the analysis of the main characteristics of machine languages and the description of the load/store processors. In addition, the module introduces operating system layer and the concept of virtual memory in the context of the hierarchy of memories in a computing architecture: in particular, the analogies and the differences with the cache are addressed. Finally, an overview of parallel architectures is presented, with some details on the issues related to the coherence of cache memories in multi-processor architectures.
Testi di riferimento/Textbooks
A.S. Tanenbaum, T.Austin: "Architettura dei Calcolatori: un approccio strutturale", VI Edizione, Pearson Education Italia, 2013.
A.S. Tanenbaum, T.Austin: "Computer Architecture: a structural approach", VI Edizione, Pearson Education Italia, 2013.
Obiettivi formativi/Mission
Scopo del modulo è quello di acquisire conoscenze sull’architettura interna di un processore, le tecniche di ottimizzazione (quali pipeline, meccanismi di predizione salti, esecuzione fuori ordine, memorie cache), comprendendo le differenze delle architetture micro-programmate rispetto a quelle che eseguono direttamente in hardware il linguaggio macchina. Un secondo obiettivo formativo del modulo è apprendere le caratteristiche generali di un linguaggio macchina (tra cui tipi di istruzioni, formato delle istruzioni, modalità d’indirizzamento) e saper analizzare motivazioni, vantaggi e svantaggi delle diverse scelte. Inoltre, il modulo ha lo scopo di fornire le conoscenze per comprendere la tecnica della memoria virtuale collocandola nel quadro della gerarchia delle memorie e studiando la sua realizzazione con la tecnica della paginazione Infine, il modulo ha l’obiettivo di fornire conoscenze di base sulle principali tipologie di architetture parallele, comprendendo le problematiche relative alla gestione della memoria e gli impatti sulla programmazione.
The goal of this module is to acquire knowledge about the internal organization of a processor and some architectural variants (e.g., pipeline, jump prediction, out-of-order execution, cache memories) can significantly change the speed of execution; understand how to distinguish between microprogrammed architectures and architectures that execute machine language instructions directly in hardware. A second objective of the module is to learn the general characteristics of a machine language (types of instructions, instruction format, addressing modes) and discuss motivations, advantages and disadvantages of different choices. Moreover, the module is intended to provide the knowledge to understand the virtual memory technique by placing it within the hierarchy of memories and by analyzing its implementation according to the paging technique. Finally, the module aims to provide basic knowledge about the main types of parallel architectures and understand the main impact on the memory management and issues on programming.
Prerequisiti/Required background knowledge
Conoscenza dei concetti studiati nel primo modulo del corso.
Knowledge of topics studied in module 1
Metodi didattici/Teaching methods
Gli argomenti trattati nel corso sono esposti prevalentemente tramite lezioni frontali. Alcune tematiche (es. le caratteristiche e la programmazione IJVM, il funzionamento del micro-interprete IJVM su MIC1) sono esemplificate per mezzo di esercitazioni utilizzando un emulatore dell’architettura MIC1 e del relativo micro-interprete di IJVM. Durante il corso sono proposti esercizi da sviluppare in autonomia per verificare il proprio livello di apprendimento e per stimolare il proprio spirito critico, tramite l’elaborazione di soluzioni originale e/o alternative. Il corso è integrato da un tutoraggio in cui saranno sviluppate alcune esercitazioni di gruppo.
The topics covered in the course are mainly exposed through lectures Some topics (e.g., IJVM characteristics and programming, the behavior of MIC1 micro-interpreter for IJVM) are exemplified by means of experimentation through an emulator of the MIC1 architecture and of the associated IJVM micro-interpreter. During the course, some exercises are submitted to be developed autonomously by students to verify their level of learning and stimulate a critical spirit, through the development of original and/or alternative solutions. The course is complemented by a tutoring class in which some exercises will be proposed and developed in group.
Altre informazioni/Further information
Sulla piattaforma DIR sono disponibili: la copia elettronica delle slide utilizzate a lezione, una selezione dei testi d’esame, l’emulatore dell’architettura MIC1, con il relativo micro-interprete di IJVM ed esempi di programmi, informazioni generali sul corso ed avvisi relativi allo svolgimento del corso e sugli esami. 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 are available: the electronic copy of the slides used in the lectures, a selection of examples of exam texts, the emulator of the MIC1 architecture the associated micro-interpreter of IJVM and some programming examples, general information on the course and notices related to the course and exams. 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 è svolta in forma scritta. Il compito include sette domande ciascuna delle quali può essere strutturata in più punti. Le domande possono anche assumere la forma di esercizi per valutare la capacità di applicare ad esempi pratici i concetti teorici appresi nel corso. Ad ogni domanda è assegnato un voto massimo (in genere da 3 a 5). La valutazione tiene conto della correttezza della risposta e del livello di completezza. La sufficienza si ottiene se si dimostra di avere appreso e di sapere applicare gli elementi chiave indirizzati dalla domanda. Il voto complessivo per la valutazione dell’apprendimento degli argomenti di questo modulo è la somma dei voti ottenuti in ogni domanda.
The assessment of learning is carried out in written form. The test includes seven questions, each of which is, in general, structured in multiple points. The questions can also take the form of exercises to evaluate the ability to apply the theoretical concepts learned in the course to practical examples. Each question is assigned a maximum grade (generally from 3 to 5). The evaluation considers the correctness of the answer and the level of completeness. A sufficient score is obtained if the student demonstrates that he has learned and knows how to apply the key elements addressed by the question. The final grade for the learning assessment of contents addressed by this module is the sum of the marks obtained in each question.
Programma esteso/Content
Approfondimento della architettura a livelli introdotta nel modulo I: il livello hardware, il livello della microarchitettura, il livello della Instruction Set Architecture, il livello del Sistema Operativo, il livello della programmazione Assembler. Studio di un esempio di architettura micro-programmata che realizza IJVM, una semplificazione del byte-code della Java Virtual Machine, sull’architettura MIC1 introdotta nel primo modulo, mediante lo sviluppo di un micro-interprete implementato nel linguaggio MAL. Esercitazioni di sviluppo ed esecuzione di programmi in IJVM con un emulatore di MIC1. Studio delle tecniche per migliorare le prestazioni degli elaboratori, mediante l’introduzione di una unità di prelievo e della pipeline: analisi della loro introduzione nelle architetture MIC2, MIC3 e MIC4. Tecniche di ottimizzazione delle prestazioni degli elaboratori: memorie cache, predizione dei salti, esecuzione fuori ordine. Analisi delle caratteristiche dei linguaggi macchina (Instruction Set Architecture): tipi di dato, tipi di istruzioni, formato delle istruzioni, modalità di indirizzamento, la gestione delle chiamate a procedura. Caratteristiche dell’ISA dei processori di tipo load/store. Studio delle tecniche per l’interazione tra il processore ed i dispositivi di Input/Output. Analisi e comparazione di architetture e linguaggi macchina di processori reali. Introduzione della tecnica della memoria virtuale, collocandola nel quadro della gerarchia delle memorie: confronto con la cache ed approfondimento della tecnica di paginazione. Descrizione di alcuni tipi di architetture parallele, ed analisi della problematica della coerenza delle memorie cache nei multiprocessori.
Refinement of the description of the layered architecture introduced in module I: hardware level, micro-architecture level, Instruction Set Architecture level, Operating System level, Assembler programming level. Investigation of an example of microprogrammed architecture that executes IJVM, derived from the Java bytecode Virtual machine, on MIC1 architecture introduced in module I, by means of a micro-interpreter implemented in MAL. Exercises on IJVM programming and executions by means of a MIC-1 emulator equipped with a IJVM compiler and micro-interpreter. Investigation of techniques to improve performance, by means of the introduction of a fetch unit and pipeline: analysis of their adoption in MIC2, MIC3 and MIC4 architectures. Optimization techniques to improve performance: jump prediction, out-of-order execution, cache memories. Characteristics of machine languages ​​(Instruction Set Architecture): data types, types of instructions, instruction format, addressing mode, handling of procedure calls. Characteristics of load/store machine ISA. Analysis of solutions for interaction among CPU and Input / Output devices. Analysis and comparison of architectures and machine languages ​​of real processors. Introduction to virtual memory, in the context of memory hierarchy: comparison with the cache, and in-depth analysis on virtual memory based on paging technique. Description of some types of parallel architectures, and analysis of issues related to coherence of cache memories in multi-processor architectures.
Risultati di apprendimento attesi/Intended learning objectives
Sapere spiegare l’organizzazione di un microprocessore e le sue principali unità funzionali. Sapere descrivere come è eseguita un’istruzione in questo tipo di macchina e sapere analizzare le diverse tecniche per l’aumento delle prestazioni. Essere in grado di realizzare la conversione dalla rappresentazione simbolica di istruzioni di linguaggio macchina a livello simbolico, orientato al programmatore, al formato binario interno alla macchina. Essere in grado di scrivere brevi programmi in linguaggio macchina (IJVM) e di estendere il micro-interprete introducendo nuove istruzioni Conoscere le caratteristiche generali di un linguaggio macchina (tra cui tipi di istruzioni, formato delle istruzioni, modalità d’indirizzamento). Comprendere le caratteristiche e le differenze degli ISA nelle architetture CISC, RISC e load/sore. Acquisire le competenze necessarie per analizzare e confrontare i linguaggi macchina esistenti. Sapere descrivere l’uso della gerarchia delle memorie, comprendendo l’importanza del principio della località spaziale e temporale. Essere in grado di applicare le tecniche della cache tra CPU e RAM e della memoria virtuale tra RAM e memoria secondaria. Comprendere la differenza tra spazio degli indirizzi (virtuali) e locazioni di memoria (fisica) e le relative tecniche di corrispondenza. Acquisire la capacità di approfondire ed orientarsi sulle principali soluzioni per la realizzazione di architetture parallele.
Explain the organization of a micro-processor and its main functional units. Describe how it is performed an instruction in this type of machine know analysis the techniques to improve performance. Be able to perform the conversion from the symbolic representation of machine language instructions, oriented to programming, to the binary format inside the machine. Be able to develop short programs in machine language (IJVM) and to extend the micro-interpreter with the introduction of new instructions. Know the main characteristics of a machine language (e.g., instruction types, instruction formats, addressing modes). Understand the characteristics and the differences of the ISA in the CISC, RISC and load/store architectures. Achieve the necessary skills to analyze and compare existing machine languages. Know the use of the memory hierarchy, by understanding the relevance of spatial locality and temporal locality principles. To be able to apply the technique of cache between CPU and RAM and of virtual memory between RAM and secondary memory. To understand the difference between (virtual) address space and (physical) memory location and the related mapping techniques. Achieve the capability to update the knowledge and orienteer among the main solutions for the realization of parallel architectures.
×
Stampa
Insegnamento
FISICA
Codice
MF0202
Anno Accademico
2024/2025
Anno regolamento
2024/2025
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
SITTA Mario
CFU
6.0
Ore di lezione
48.0
Ore di studio individuale
102.0
Settore Scientifico Disciplinare (SSD)
FIS/01 - FISICA SPERIMENTALE
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OBB
Categoria insegnamento
C
Anno
1
Periodo
Secondo Semestre
Sede
ALESSANDRIA
Tipo di valutazione
V
Lingua insegnamento/Teaching language
ITALIANO
Italian
Contenuti/Content Summary
Concetti fondamentali della Fisica classica: Meccanica, Calorimetria e Termodinamica, Elettricità e Magnetismo.
Fundamental concepts of Classical Physics: Mechanics, Calorimetry and Thermodynamics, Electricity and Magnetism.
Testi di riferimento/Textbooks
A.Giambattista, B.McCarthy, R.Richardson, Fisica generale, McGraw Hill D.C.Giancoli, Fisica, Casa Editrice Ambrosiana D.Halliday, R.Resnick, J.Walker, Fondamenti di Fisica, Casa Editrice Ambrosiana J.W.Jewett, R.A.Serway, Principi di Fisica, EdiSES
A.Giambattista, B.McCarthy, R.Richardson, Fisica generale, McGraw Hill D.C.Giancoli, Fisica, Casa Editrice Ambrosiana D.Halliday, R.Resnick, J.Walker, Fondamenti di Fisica, Casa Editrice Ambrosiana J.W.Jewett, R.A.Serway, Principi di Fisica, EdiSES
Obiettivi formativi/Mission
Fornire alle studentesse e agli studenti una conoscenza del metodo di indagine in Fisica e dei fondamenti della Fisica Classica. Modellizzare semplici sistemi e spiegare alcuni fenomeni dell'esperienza ordinaria.
To give the Students a knowledge of the research methods in Physics and of the fundamental concepts in Classical Physics. Modelling simple systems and understanding some phenomena of ordinary experience,
Prerequisiti/Required background knowledge
Analisi Matematica 1
Calculus 1
Metodi didattici/Teaching methods
Lezioni frontali sulla parte teorica ed esercizi numerici. Le studentesse e gli tudenti possono trovare sulla piattaforma DIR molti esercizi messi a disposizione dal Docente al fine di migliorare la preparazione all'esame.
Frontal lectures on the theoretical part and numerical exercises. On the DIR web site Students can find many exercises made available for improve their competence for the exam.
Altre informazioni/Further information
Sulla pagina DIR del Corso sono messe a disposizione delle dispense come guida allo studio, e una raccolta di esercizi, divisi per argomento, per una migliore preparazione all'esame. Le dispense non possono essere considerate sostitutive di un libro di testo. 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 web page of the Course some notes are available as a guide for studying, along with a collection of exercises, divided by argument, for a better preparation to the exam. The notes cannot be considered a replacement of a good textbook. 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
Prova scritta con quiz a risposta multipla e domande aperte, consistenti in esercizi numerici e domande di teoria. E' possibile utilizzare un formulario privo di testo e una calcolatrice non programmabile. Ad ogni domanda è assegnato un punteggio proporzionale alla difficoltà. Per il superamento dell'esame scritto è necessario raggiungere un punteggio minimo di 18/30. A richiesta, eventuale prova orale integrativa per migliorare il voto.
Written exam with multiple choice tests and open questions, consisting in numerical exercises and theoretical questions. Students can use a formulary without text and a non-programmable calculator. A score is associated to each question, proportional to its complexity. To pass the written test a minimum total score of 18/30 is required. On demand, possible supplementary oral exam to improve the grade.
Programma esteso/Content
Richiami di matematica di base. Grandezze fisiche e unità di misura. Cinematica del punto materiale. Forze e principi della Dinamica. Lavoro ed energia. Forza gravitazionale. Elementi di meccanica dei fluidi. Temperatura, calore e principi della Termodinamica. Carica elettrica, campo elettrico, conduttori e isolanti, moto di cariche in campo elettrico. Potenziale elettrico, capacità elettrica. Corrente elettrica, effetto Joule, resistenze. Campo magnetico, effetti magnetici di una corrente, induzione magnetica. Elementi di meccanica delle onde. Integrazione della dimensione di genere: verrà discussa l'importanza dell'integrazione di genere nella ricerca, nei programmi degli insegnamenti e nella formazione.
Recall of basic Mathematics. Physical quantities and unit measures. Kinematics of a material point. Forces and the Principles of Dynamics. Work and energy. The gravitational force. Elements of Mechanics of fluids. Temperature, heat and the Principles of Thermodynamics. Electric charge, electric field, conductors and insulations, motion of charges in an electric field. Electric potential and capacity. Electric current, Joule effect resistance. The magnetic field, magnetic effects of currents, induction. Elements of Mechanics of waves. Gender integration: the importance of gender integration in research, teaching programs and training will be discussed.
Risultati di apprendimento attesi/Intended learning objectives
Conoscenza e comprensione - solida conoscenza delle basi della Fisica classica. Capacità di applicare conoscenza e comprensione - saper affrontare e risolvere semplici problemi di Fisica utilizzando le conoscenze apprese a Lezione.- Autonomia di giudizio - valutare il modo migliore di risolvere un problema di Fisica e la correttezza del risultato ottenuto. Abilità comunicative - essere in grado di comunicare con efficacia il metodo seguito e il risultato ottenuto.
Knowledge and understanding - solid knowledge of the basis of classical Physics. Ability to apply knowledge and understanding - deal with and solve simple Physics problems using the notions learnt during Lessons.Judgement - evaluate the best solving strategy and the accuracy of the result. Communication - to be able to communicate the strategy used and the result obtained.
×
Stampa
Insegnamento
FISICA
Codice
MF0203
Anno Accademico
2024/2025
Anno regolamento
2024/2025
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
CASTELLANI Leonardo
CFU
6.0
Ore di lezione
48.0
Ore di studio individuale
102.0
Settore Scientifico Disciplinare (SSD)
FIS/01 - FISICA SPERIMENTALE
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OBB
Categoria insegnamento
C
Anno
1
Periodo
Secondo Semestre
Sede
VERCELLI
Tipo di valutazione
V
Lingua insegnamento/Teaching language
italiano
italian
Contenuti/Content Summary
Concetti fondamentali della Fisica classica: Meccanica, Calorimetria e Termodinamica, Elettricità e Magnetismo.
Fundamental concepts of Classical Physics: Mechanics, Calorimetry and Thermodynamics, Electricity and Magnetism.
Testi di riferimento/Textbooks
A.Giambattista, B.McCarthy, R.Richardson, Fisica generale, McGraw Hill D.C.Giancoli, Fisica, Casa Editrice Ambrosiana D.Halliday, R.Resnick, J.Walker, Fondamenti di Fisica, Casa Editrice Ambrosiana J.W.Jewett, R.A.Serway, Principi di Fisica, EdiSES
A.Giambattista, B.McCarthy, R.Richardson, Fisica generale, McGraw Hill D.C.Giancoli, Fisica, Casa Editrice Ambrosiana D.Halliday, R.Resnick, J.Walker, Fondamenti di Fisica, Casa Editrice Ambrosiana J.W.Jewett, R.A.Serway, Principi di Fisica, EdiSES
Obiettivi formativi/Mission
Fornire agli Studenti una conoscenza del metodo di indagine in Fisica e dei fondamenti della Fisica Classica. Modellizzare semplici sistemi e spiegare alcuni fenomeni dell'esperienza ordinaria.
To give the Students a knowledge of the research methods in Physics and of the fundamental concepts in Classical Physics. Modelling simple systems and understanding some phenomena of ordinary experience,
Prerequisiti/Required background knowledge
Analisi Matematica 1
Calculus 1
Metodi didattici/Teaching methods
Lezioni frontali sulla parte teorica ed esercizi numerici. Gli Studenti possono trovare sulla piattaforma DIR molti esercizi messi a disposizione dal Docente al fine di migliorare la preparazione all'esame.
Frontal lectures on the theoretical part and numerical exercises. On the DIR web site Students can find many exercises made available for improve their competence for the exam.
Altre informazioni/Further information
Sulla pagina DIR del Corso sono messe a disposizione delle dispense come guida allo studio, e una raccolta di esercizi, divisi per argomento, per una migliore preparazione all'esame. Le dispense non possono essere considerate sostitutive di un libro di testo. 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 web page of the Course some notes are available as a guide for studying, along with a collection of exercises, divided by argument, for a better preparation to the exam. The notes cannot be considered a replacement of a good textbook. 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
Prova scritta con quiz a risposta multipla e domande aperte, consistenti in esercizi numerici e domande di teoria. E' possibile utilizzare un formulario privo di testo e una calcolatrice non programmabile. Ad ogni domanda è assegnato un punteggio proporzionale alla difficoltà. Per il superamento dell'esame scritto è necessario raggiungere un punteggio minimo di 18/30. A richiesta, eventuale prova orale integrativa per migliorare il voto.
Written exam with multiple choice tests and open questions, consisting in numerical exercises and theoretical questions. Students can use a formulary without text and a non-programmable calculator. A score is associated to each question, proportional to its complexity. To pass the written test a minimum total score of 18/30 is required. On demand, possible supplementary oral exam to improve the grade.
Programma esteso/Content
Richiami di matematica di base. Grandezze fisiche e unità di misura. Cinematica del punto materiale. Forze e principi della Dinamica. Lavoro ed energia. Forza gravitazionale. Elementi di meccanica dei fluidi. Temperatura, calore e principi della Termodinamica. Carica elettrica, campo elettrico, conduttori e isolanti, moto di cariche in campo elettrico. Potenziale elettrico, capacità elettrica. Corrente elettrica, effetto Joule, resistenze. Campo magnetico, effetti magnetici di una corrente, induzione magnetica. Elementi di meccanica delle onde.
Recall of basic Mathematics. Physical quantities and unit measures. Kinematics of a material point. Forces and the Principles of Dynamics. Work and energy. The gravitational force. Elements of Mechanics of fluids. Temperature, heat and the Principles of Thermodynamics. Electric charge, electric field, conductors and insulations, motion of charges in an electric field. Electric potential and capacity. Electric current, Joule effect resistance. The magnetic field, magnetic effects of currents, induction. Elements of Mechanics of waves.
Risultati di apprendimento attesi/Intended learning objectives
Conoscenza delle basi della Fisica classica. Capacità di comprendere e risolvere semplici problemi di Fisica utilizzando le conoscenze apprese a Lezione.
Knowledge of the basis of classical Physics. Ability to understand and solve simple Physics problems using the notions learnt during Lessons.
×
Stampa
Insegnamento
MATEMATICA DISCRETA
Codice
S1366
Anno Accademico
2024/2025
Anno regolamento
2024/2025
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
ACETO LIDIA
CFU
9.0
Ore di lezione
72.0
Ore di studio individuale
0.0
Settore Scientifico Disciplinare (SSD)
MAT/03 - GEOMETRIA, MAT/01 - LOGICA MATEMATICA
Tipo di insegnamento
Attività formativa integrata
Fruizione insegnamento
OBB
Anno
1
Periodo
Primo Semestre
Sede
ALESSANDRIA
Tipo di valutazione
V
Lingua insegnamento/Teaching language
Italiano
Italian
Contenuti/Content Summary
Parte di Algebra: numeri interi, algoritmo di Euclide, equazioni diofantee, classi di resto, elementi di crittografia. Parte di Geometria: vettori nel piano, nello spazio tridimensionale ed estensione al caso di R^N, matrici, sistemi lineari, geometria analitica nello spazio tridimensionale. Parte di Logica: logica proposizionale e relativo calcolo della deduzione naturale. Introduzione alla logica dei predicati.
Part of Algebra: integers, Euclid's algorithm, Diophantine equations, remainder classes, elements of cryptography. Part of Geometry: vectors in the plane, in three-dimensional space and extension to the case of R^N, matrices, linear systems, analytic geometry in three-dimensional space. Part of Logic: propositional logic and relative calculation of natural deduction. Introduction to the logic of predicates.
Testi di riferimento/Textbooks
Testi consigliati per la parte di Algebra e Geometria: + Bramanti, Pagani, Salsa, "Analisi Matematica 1 con elementi di geometria e algebra lineare", Ed. Zanichelli. + Appunti del docente caricati sulla piattaforma DIR. Testo consigliato per la parte di Logica: + Asperti, Ciabattoni, "Logica a Informatica". Mc Grow Hill Education, 1997 (disponibile solo in formato PDF).
Recommended texts for the Algebra and Geometry part: + Bramanti, Pagani, Salsa, "Analisi Matematica 1 con elementi di geometria e algebra lineare", Ed. Zanichelli. + Notes of the teacher's upload on the IT platform DIR. Recommended text for the Logic part: + Asperti, Ciabattoni, "Logica a Informatica". Mc Grow Hill Education, 1997 (disponibile solo in formato PDF).
Obiettivi formativi/Mission
L'insegnamento si propone di fornire alle/agli studentesse/studenti la conoscenza degli elementi principali dell'algebra, del calcolo vettoriale e matriciale e delle loro applicazioni e di introdurre le nozioni elementari di logica delle proposizioni e del primo ordine con particolare attenzione alla relazione fra verità e derivabilità ed alla rappresentabilità nel calcolo dei predicati. Scopo dell'insegnamento è che le/gli studentesse/studenti acquisiscano e sappiano utilizzare un linguaggio matematico appropriato in relazione agli argomenti trattati nel corso. Obiettivo formativo dell'insegnamento è quello di sviluppare la capacità di modellizzare semplici situazioni con l'aiuto di idee e metodi di base di algebra (teoria elementare dei numeri) e algebra lineare.
The course aims to provide students with the knowledge of the main elements of algebra, vector and matrix calculus and their applications and to introduce the elementary notions of logic of propositions and of the first order with particular attention to the relationship between truth and derivability. and to the representability in the calculation of predicates. The purpose of the teaching is that students acquire and know how to use an appropriate mathematical language in relation to the topics covered in the course. The educational objective of the teaching is to develop the ability to model simple situations with the help of basic ideas and methods of algebra (elementary number theory) and linear algebra.
Prerequisiti/Required background knowledge
Lettura e produzione di brevi testi scritti in italiano. Proprietà di base dei numeri interi. Proprietà di base del piano cartesiano.
Reading and production of short texts in italian. Basic properties of integers. Basic properties of the cartesian plane.
Metodi didattici/Teaching methods
La didattica si svolgerà mediante lezioni frontali alla lavagna. Oltre alle lezioni teoriche verranno svolti esercizi in aula 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 aula per stimolare nelle/negli studentesse/studenti il senso critico e l’autonomia di giudizio.
Teaching will take place through lectures on the blackboard. In addition to the theoretical lessons, classroom exercises will be carried out by the teacher with the active involvement of the students to deepen the topics covered during the theoretical lessons. The concepts covered by the course will come stimulate collegially in the classroom and applied directly during classroom exercises for students' critical sense and autonomy of judgment.
Altre informazioni/Further information
Il piano degli studi prevede per gli insegnamenti di "Algebra e Geometria" e "Logica" un unico esame. Tuttavia, alla/o studentessa/studente viene data la possibilità di sostenere separatamente le prove. In ogni caso, viene registrato un unico voto per i due insegnamenti di "Algebra e Geometria" e "Logica", che verrà assegnato a partire dalla media arrotondata per eccesso dei due voti ottenuti a seguito di una valutazione collegiale della/o studentessa/studente. 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.
The study plan includes a single exam for the courses of "Algebra and Geometry" and "Logic". However, the student is given the opportunity to take the tests separately. In any case, a single grade is recorded for the two courses of "Algebra and Geometry" and "Logic", which will be assigned starting from the average rounded upwards of the two grades obtained following a collegial evaluation of the student. 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
L'esame si compone di una prova scritta e di una prova orale facoltativa. La prova scritta consiste nello svolgimento di esercizi relativi al programma svolto durante le lezioni e ha una durata di un'ora e trenta minuti. La prova orale è a discrezione del docente e consiste in una discussione sulla prova scritta. Alla/o studentessa/studente è assicurata la possibilità di sostenere separatamente i due moduli dell'esame (ovvero "Algebra e Geometria" e "Logica"): in tal caso la prova scritta di "Algebra e Geometria" avrà una durata di un'ora mentre quella di "Logica" di trenta minuti. Tuttavia, viene registrato un unico voto per i due insegnamenti di "Algebra e Geometria" e "Logica", che verrà assegnato a partire dalla media arrotondata per eccesso dei due voti ottenuti a seguito di una valutazione collegiale della/o studentessa/studente. Durante la prova scritta è consentito l'uso della calcolatrice. Al termine della prova scritta il/la docente procede alla correzione della stessa e comunica i risultati sulla piattaforma DIR e/o sul portale ESSE3. A questo segue, in genere, la prova orale. I risultati dell’esame mettono in luce il grado di comprensione dei concetti teorici e la capacità di utilizzarli per risolvere nuovi problemi.
The exam consists of a written test and an optional oral test. The written test consists in carrying out exercises related to the program carried out during the lessons and has a duration of one hour and thirty minutes. The oral test is a lecturer of the teacher and consists of a discussion on the written test. The student is assured the possibility of taking the two exam modules separately (i.e. "Algebra and Geometry" and "Logic"): in this case the written test will last one hour and half an hour, respectively. However, only one vote is recorded for the two courses in "Algebra and Geometry" and "Logic", which will be assigned starting from the average rounded up by the excess of the marks obtained following a collegial evaluation of the student. During the written test it is allowed to use the calculator. At the end of the written test, the teacher corrects it and communicates the results on the DIR platform and/or on the portal ESSE3. This is usually followed by the oral exam. The results of the exam highlight the degree of understanding of theoretical concepts and the ability to use them to solve new problems.
Programma esteso/Content
Numeri interi. Divisibilità e numeri primi. Massimo comune divisore. Algoritmo di Euclide. Minimo comune multiplo. Equazioni diofantee. Congruenze e classi di resto. Criteri di divisibilità. Rappresentazione di numeri con base diversa da dieci. Teorema cinese del resto. Condivisione di segreti mediante sistemi di congruenze. Il teorema di Eulero. Il problema del logaritmo discreto. Il protocollo di Diffie-Hellman. Il protocollo RSA. Sistemi lineari. Metodo di Eliminazione di Gauss. Matrici, determinanti, rango, matrice inversa. Spazi vettoriali, basi, dipendenza lineare. Applicazioni lineari, prodotto scalare. Applicazioni ai sistemi lineari. Logica Proposizionale: • Sintassi. • Semantica: interpretazione, definizioni di soddisfacibile, contraddittorio, tautologia, conseguenza semantica e risultati connessi, equivalenza semantica, completezza funzionale e forma normali. • Deduzione naturale: regole e dimostrazioni, correttezza, enunciato di completezza. Logica dei Predicati: • Sintassi: variabili libere e legate, sostituzione. • Semantica: Interpretazione, definizioni di soddisfacibile, contraddittorio, tautologia, conseguenza semantica e risultati connessi.
Integers numbers. Divisibility and prime numbers. Greatest common divisor. Euclid's algorithm. Least common multiple. Diophantine equations. Congruences and remainder classes. Severability criteria. Representation of numbers with a base other than ten. Chinese remainder theorem. Sharing of secrets by means of systems of congruences. Euler's theorem. The discrete logarithm problem. The Diffie-Hellman protocol. The RSA protocol. Linear systems. Method of elimination of Gauss. Matrices, determinants, rank, inverse matrix. Vector spaces, bases, linear dependence. Linear applications, scalar product. Applications to linear systems. Logical proposition: • Syntax. • Semantics: interpretation, definitions of satisfiable, contradictory, tautology, semantic consequence and related results, semantic equivalence, functional completeness and normal form. • Natural deduction: rules and proofs, correctness, completeness. Logic of predicates: • Syntax: free and bound variables, substitution. • Semantics: Interpretation, definitions of satisfiable, contradictory, tautology, semantic consequence and related results.
Risultati di apprendimento attesi/Intended learning objectives
Al termine del corso la/o studentessa/studente deve conoscere le nozioni di base dell'algebra, dell'algebra lineare e della logica proposizionale (sia per quanto riguarda la semantica sia per quanto riguarda i metodi di prova) e della logica dei predicati e avere sviluppato una padronanza delle nozioni apprese che le/gli consenta di collegarle tra loro in autonomia e di utilizzarle congiuntamente nella risoluzione di semplici problemi teorici. Inoltre, la/lo studentessa/studente deve essere in grado di spiegare chiaramente sia le nozioni stesse, sia il loro utilizzo in termini generali o nel caso specifico di un problema.
At the end of the course the student must know the basic notions of algebra, linear algebra and propositional logic (both as regards semantics and as regards test methods) and predicate logic and have developed a mastery of the notions learned that allows him to connect them independently and to use them jointly in solving simple theoretical problems. Furthermore, the student must be able to clearly explain both the concepts themselves and their use in general terms or in the specific case of a problem.
Moduli
Codice Insegnamento Settore Scientifico Disciplinare (SSD) Docenti Agenda web
S1367ALGEBRA E GEOMETRIA MAT/03 - GEOMETRIA Aceto Lidia
S1368LOGICA MAT/01 - LOGICA MATEMATICA Laguzzi Giorgio, Aceto Lidia
Mostra scheda insegnamento padre
×
Stampa
Insegnamento
MATEMATICA DISCRETA: ALGEBRA E GEOMETRIA
Codice
S1367
Anno Accademico
2024/2025
Anno regolamento
2024/2025
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/03 - GEOMETRIA
Tipo di insegnamento
Modulo di sola Frequenza
Fruizione insegnamento
OBB
Categoria insegnamento
A
Anno
1
Periodo
Primo Semestre
Sede
ALESSANDRIA
Tipo di valutazione
G
Lingua insegnamento/Teaching language
Italiano.
Italian.
Contenuti/Content Summary
Teoria elementare dei numeri. Alcune nozioni di base dell'algebra lineare.
Elementary theory of numbers. Some basic ideas of linear algebra.
Testi di riferimento/Textbooks
Testi consigliati: + Bramanti, Pagani, Salsa, "Analisi Matematica 1 con elementi di geometria e algebra lineare", Ed. Zanichelli. + Appunti del docente caricati sulla piattaforma DIR.
Recommended texts: + Bramanti, Pagani, Salsa, "Analisi matematica 1 con elementi di geometria e algebra lineare", Ed. Zanichelli. + Teacher's notes available on the DIR platform.
Obiettivi formativi/Mission
L'insegnamento si propone di fornire alle studentesse e agli studenti la conoscenza degli elementi principali dell'algebra, del calcolo vettoriale e matriciale e delle loro applicazioni. Scopo dell'insegnamento è che le/gli studentesse/studenti acquisiscano e sappiano utilizzare un linguaggio matematico appropriato in relazione agli argomenti trattati nel corso. Obiettivo formativo dell'insegnamento è quello di sviluppare la capacità di modellizzare semplici situazioni con l'aiuto di idee e metodi di base di algebra (teoria elementare dei numeri) e algebra lineare.
The course aims to provide students with the knowledge of the main elements of elementary number theory and some notions of linear algebra. The aim of the teaching is that students acquire and know how to use an appropriate mathematical language in relation to topics covered in the course. The educational objective of the teaching is to develop the ability to model simple situations with the help of basic ideas and methods of algebra (elementary number theory) and linear algebra.
Prerequisiti/Required background knowledge
Lettura e produzione di brevi testi scritti in italiano. Proprietà di base dei numeri interi. Proprietà di base del piano cartesiano.
Reading and production of short texts in italian. Basic properties of integers. Basic properties of the cartesian plane.
Metodi didattici/Teaching methods
La didattica si svolgerà mediante lezioni frontali alla lavagna con parte teorica ed esercizi. Ogni argomento del corso viene introdotto per mezzo di una discussione generale che ha lo scopo di renderla il più possibile comprensibile alle studentesse e agli studenti. In un secondo momento vengono introdotte le nozioni di base di ciascun argomento; esse sono successivamente seguite da esempi con lo scopo di chiarirne il significato. L'ultima parte è dedicata agli esercizi che saranno svolti dal docente con il coinvolgimento attivo delle studentesse e degli studenti per stimolarne il senso critico e l’autonomia di giudizio.
Face-to-face lectures. Teaching will take place through lectures on the blackboard with theoretical part and exercises. Each topic of the course is introduced by means of a general discussion which aims to make it as understandable as possible to students. In a second moment the basic notions of each topic are introduced; they are subsequently followed by examples with the aim of clarifying their meaning. The last part is dedicated to the exercises that will be carried out by the teacher with the active involvement of students to stimulate their critical sense and independent judgment.
Altre informazioni/Further information
Il controllo dell'apprendimento in itinere verrà effettuato svolgendo esercizi in aula con la partecipazione attiva delle studentesse e degli studenti. Oltre ai libri suggeriti per la teoria e gli esercizi, eventuale ulteriore materiale per la preparazione dell'esame verrà fornito durante lo svolgimento del corso. Il voto del modulo di algebra e geometria è una media ponderata con il voto del modulo di logica per ottenere il voto finale di matematica discreta. 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.
The control of ongoing learning will be carried out by carrying out exercises in the classroom with the active participation of students. In addition to the books suggested for the theory and exercises, any further material for the preparation of the exam will be provided during the course. The algebra and geometry module grade is a weighted average with the logic module grade to obtain the final discrete mathematics grade. 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
L'esame è costituito da una prova scritta contenente quattro esercizi di cui due su argomenti di Aritmetica Modulare e due su argomenti di Algebra Lineare. In ogni prova scritta, la maggior parte degli argomenti contenuti nel corso viene coperta. La presenza di domande sulla parte teorica non è esclusa. La prova scritta ha la durata di un'ora e si considera superata se si svolgono correttamente almeno un esercizio di Aritmetica Modulare e un esercizio di Algebra Lineare. Durante la prova scritta è consentito l'uso di una calcolatrice.
The exam consists of a written test containing four exercises, two of which on Modular Arithmetic topics and two on Linear Algebra topics. In each written test, most of the topics contained in the course are covered. The presence of questions on the theoretical part is not excluded. The written test lasts one hour and is considered passed if at least one exercise of Modular Arithmetic and one of Linear Algebra are correctly carried out. During the written test, the use of a calculator is allowed.
Programma esteso/Content
Numeri interi. Divisibilità e numeri primi. Massimo comune divisore. Algoritmo di Euclide. Minimo comune multiplo. Equazioni diofantee. Congruenze e classi di resto. Criteri di divisibilità. Rappresentazione di numeri con base diversa da dieci. Teorema cinese del resto. Condivisione di segreti mediante sistemi di congruenze. Il teorema di Eulero. Il problema del logaritmo discreto. Il protocollo di Diffie-Hellman. Il protocollo RSA. Sistemi lineari. Metodo di Eliminazione di Gauss. Matrici, determinanti, rango, matrice inversa. Spazi vettoriali, basi, dipendenza lineare. Applicazioni lineari, prodotto scalare. Applicazioni ai sistemi lineari.
Integers. Divisibility and primes. Greatest common divisor. Euclid's algorithm. Least common multiple. Diophantine equations. Congruences and residue classes. Divisibility criteria. Representation of number in basis other than ten. Chinese remainder theorem. Sharing secrets by means of systems of congruences. Euler's theorem. The problem of the discrete logarithm. The Diffie-Hellman protocol. The RSA protocol. Linear systems. Gauss' elimination method. Matrices, determinants, rank, inverse matrix. Vector spaces, bases, linear dependence. Linear functions, scalar product. Applications to linear systems.
Risultati di apprendimento attesi/Intended learning objectives
Conoscenza e comprensione di alcuni concetti basilari della teoria elementare dei numeri e dell'algebra lineare, e capacità di applicarli a semplici problemi. Queste nozioni devono necessariamente entrare a far parte del bagaglio culturale delle studentesse e degli studenti per consentire loro di poter affrontare con maggiore facilità alcuni esami applicativi in cui le suddette nozioni trovano un'applicazione diretta come nel caso della Fisica. Capacità di valutare l'appropriatezza di un algoritmo che applica tali concetti. Capacità di comunicare in modo semplice e chiaro i procedimenti adottati.
Knowledge and understanding of some basic concepts of elementary number theory and linear algebra, and ability to apply them to simple problems. These notions must necessarily become part of the cultural background of the students to allow them to be able to face more easily some applicative exams in which the aforementioned notions find a direct application as in the case of Physics. Ability to evaluate the appropriateness of an algorithm that applies these concepts. Ability to communicate the procedures adopted in a simple and clear way.
Mostra scheda insegnamento padre
×
Stampa
Insegnamento
MATEMATICA DISCRETA: LOGICA
Codice
S1368
Anno Accademico
2024/2025
Anno regolamento
2024/2025
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
ACETO LIDIA
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
Modulo di sola Frequenza
Fruizione insegnamento
OBB
Categoria insegnamento
C
Anno
1
Periodo
Primo Semestre
Sede
ALESSANDRIA
Tipo di valutazione
G
Lingua insegnamento/Teaching language
ITALIANO
Italian
Contenuti/Content Summary
Logica Proposizionale e relativo calcolo della Deduzione naturale. Introduzione alla Logica dei Predicati.
Propositional logic and relative calculation of the natural deduction. Introduction to the Logic of Predicates.
Testi di riferimento/Textbooks
"Logica a Informatica" di A. Asperti e A. Ciabattoni, Mc Grow Hill Education (1997) Disponibile in formato PDF
"Logica a Informatica" di A. Asperti e A. Ciabattoni, Mc Grow Hill Education (1997) Only available in PDF format
Obiettivi formativi/Mission
Introdurre le nozioni elementari di logica delle proposizioni e del primo ordine con particolare attenzione alla relazione fra verità e derivabilità ed alla rappresentabilità nel calcolo dei predicati.
Introduce the elementary notions of logic of propositions and of the first order with particular attention to the relationship between truth and derivability and to representability in the calculation of predicates.
Prerequisiti/Required background knowledge
Conoscenze acquisite nel corso di algebra e geometria.
Knowledge acquired in the course of algebra and geometry.
Metodi didattici/Teaching methods
Lezioni frontali che includono esercitazioni.
Frontal lessons that include exercises.
Altre informazioni/Further information
Il voto del modulo di logica fa media pesata con il voto del modulo di algebra e geometria per ottenere il voto finale di Matematica discreta.
The grade of the logic module is a weighted average with the grade of the algebra and geometry module to obtain the final grade of discrete mathematics.
Modalità di verifica dell'apprendimento/Assessment methods
La verifica finale consiste in una prova scritta della durata di mezz'ora e in una prova orale facoltativa.
The final exam consists of a written test lasting half an hour and an optional oral test.
Programma esteso/Content
Logica Proposizionale: • Sintassi. • Semantica: interpretazione, definizioni di soddisfacibile, contraddittorio, tautologia, conseguenza semantica e risultati connessi, equivalenza semantica, completezza funzionale e forma normali. • Deduzione naturale: regole e dimostrazioni, correttezza, enunciato di completezza. Logica dei Predicati: • Sintassi: variabili libere e legate, sostituzione. • Semantica: Interpretazione, definizioni di soddisfacibile, contraddittorio, tautologia, conseguenza semantica e risultati connessi.
Propositional Logic: • Syntax. • Semantics: interpretation, definitions of satisfiable, contradictory, tautology, semantic consequence and related results, semantic equivalence, functional completeness and normal form. • Natural deduction: rules and proofs, correctness, completeness statement. Logic of Predicates: • Syntax: free and bound variables, substitution. • Semantics: Interpretation, definitions of satisfiable, contradictory, tautology, semantic consequence and related results.
Risultati di apprendimento attesi/Intended learning objectives
Le competenze da verificare, e necessarie per il superamento del corso consistono nella comprensione dei concetti di base della logica proposizionale (sia per quanto riguarda la semantica sia per quanto riguarda i metodi di prova) e della logica dei predicati.
The skills to be tested, and necessary for passing the course, consist in the understanding of the basic concepts of propositional logic (both as regards semantics and as regards test methods) and predicate logic.
×
Stampa
Insegnamento
PROGRAMMAZIONE 2
Codice
MF0208
Anno Accademico
2024/2025
Anno regolamento
2024/2025
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
SANTOMAURO Andrea
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
A
Anno
1
Periodo
Secondo Semestre
Sede
VERCELLI
Tipo di valutazione
V
Lingua insegnamento/Teaching language
ITALIANO
Italian
Contenuti/Content Summary
Gestione di stutture dati dinamiche. Iterazione. Ricorsione. Algoritmi classici di ordinamento Tipi dati astratti: Code e liste
Management of dynamic data structures. Iteration. Recursion. Classical sorting algorithms Abstract data types: Heap and stack
Testi di riferimento/Textbooks
Paul Deitel, Harvey Deitel “Il linguaggio C. Fondamenti e tecniche di programmazione”. Pearson Italia, 2013 Brian W. Kernighan, Dennis M. Ritchie "Il linguaggio C. Principi di programmazione e manuale di riferimento" Pearson Italia
Paul Deitel, Harvey Deitel “Il linguaggio C. Fondamenti e tecniche di programmazione”. Pearson Italia, 2013 Brian W. Kernighan, Dennis M. Ritchie "Il linguaggio C. Principi di programmazione e manuale di riferimento" Pearson Italia
Obiettivi formativi/Mission
Permettere agli studenti l’acquisizione di concetti di programmazione avanzati, approfondendo il concetto di programmazione iterativa ed introducendo il concetto di programmazione in ricorsione. Consentire la valutazione delle prestazioni di un algoritmo iterativo e/o ricorsivo attraverso il concetto di complessità asintotica. Acquisire il concetto di gestione della memoria dinamica attraverso l’uso del linguaggio C e la sua applicazione per l’uso di strutture dati avanzate come le liste collegate, le code e le pile. Comprendere il funzionamento e la complessità di due tra i principali algoritmi ricorsivi di ordinamento (quicksort e mergesort).
Allowing students to acquire advanced programming concepts, deepening the concept of iterative programming and introducing the concept of recursion. Allowing the performance evaluation of an iterative and / or recursive algorithm through the concept of asymptotic complexity. Acquire the concept of dynamic memory management through the use of the C language, and its application for the use of advanced data structures such as linked lists, queues and stacks. Understand the functioning and complexity of two of the main recursive sorting algorithms (quicksort and mergesort).
Prerequisiti/Required background knowledge
Lo studente deve aver superato Programmazione 1
The student must have passed Programming 1
Metodi didattici/Teaching methods
Lezioni frontali, esercitazioni in aula e in laboratorio
Lectures, classroom and laboratory exercises
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). La partecipazione attiva permette una verifica del modo in cui gli argomenti vengono recepiti.
The activity in the laboratory requires an active and individual participation of the students, who thus develop practical skills (the ability to carry out a program). Active participation allows a verification of the way in which the arguments are received.
Modalità di verifica dell'apprendimento/Assessment methods
Esame scritto/ in laboratorio. 6 Quesiti. Due domande mirate a valutare le conoscenze teoriche: una domanda sugli argomenti di teoria trattati durante il corso, ed un esercizio sulla simulazione di un algoritmo mediante i record di attivazione. Sviluppo in laboratorio di un programma che comprende 4 esercizi orientati a testare le capacità e le conoscenze inerenti alla programmazione iterativa e ricorsiva, all’uso delle liste, alla gestione della memoria dinamica. Per superare la prova lo studente deve almeno raggiungere un punteggio pari al 60% del punteggio massimo raggiungibile per entrambe le parti (prova scritta e di laboratorio).
Written exam/laboratory examination: 6 Questions. Two questions aimed at assessing theoretical knowledge: one question on the theoretical topics covered during the course, and one exercise on the simulation of an algorithm using the activation records. 4 exercises developed within a unique program to test the skills and knowledge about iterative and recursive programming, the use of linked lists, dynamic memory management. To pass the test, the student must achieve a score greater or equal to the 60% of the maximum attainable score for both parts (written and laboratory tests).
Programma esteso/Content
- puntatori in C e loro uso per la realizzazione di liste - funzioni interattive sulla liste: - gestione di una singola lista - gestione di più liste - ricorsione: - definizione e concetti di base - simulazione di funzione ricorsive mediante record di attivazione - un esempio complesso: le torri di Hanoi - funzioni ricorsive su liste: - gestione di una singola lista - gestione di più liste - funzioni ricorsive di ordinamento: - QuickSort - MergeSort - Tipi dati astratti: - Pile - code
- pointers in C and their use for the realization of lists - interactive functions on the lists: - management of a single list - management of multiple lists - recursion: - definition and basic concepts - simulation of recursive function by means of activation records - a complex example: the towers of Hanoi - recursive functions on lists: - management of a single list - management of multiple lists - recursive sorting functions: - QuickSort - MergeSort - Abstract data types: - Stack - Queue
Risultati di apprendimento attesi/Intended learning objectives
Al termine del corso, lo studente deve essere in grado, dato un problema di programmazione (per gestire la struttua dinamica lista), di individuarne un algoritmo risolutivo sia iterazione sia in ricorsione, implementarlo in linguaggio C, eseguirlo al calcolatore. Conoscenza e comprensione: programmazione in iterazione, programmazione in ricorsione, la struttura dinamica lista. Capacità di applicare conoscenza e comprensione: dato un problema inerente alla struttura dinamica lista, - definire un algoritmo iterativo che trasforma i dati di input nei dati di output, seguendo i costrutti della programmazione; - definire un algoritmo ricorsivo che trasforma i dati di input nei dati di output, seguendo i costrutti della programmazione; - scrivere al calcolatore il programma sorgente che implementa l'algoritmo, utilizzando un linguaggio di programmazione (C); - compilare, eseguire e testare tale programma al calcolatore. Autonomia di giudizio: in modo autonomo lo studente deve riuscire definire ed implementare un'algoritmo per risolvere un problema inerenti alla gestione di strutture dinamiche nel linguaggio di programmazione (C), a valutarne la complessità, e compilare ed eseguire il programma. Abilità comunicative: lo studente deve riuscire a definire un algoritmo sia in iterazione sia in ricorsione, e deve sapere presentare il suo costo espresso come complessità in tempo e spazio. Capacità di apprendimento: lo studente deve essere capace di apprendere come si definiscae un algoritmo a partire dal problema sia in iterazione sia in ricorsione, valutarne i costi (complessità in tempo e spazio) e come si implementa tale algoritmo in C.
At the end of the course, students must be able, given a programming problem (to manage the dynamic list structure), to identify a solution algorithm both iteration and recursion, implement it in C language, execute it on the computer. Knowledge and understanding: iteration programming, recursion programming, dynamic list structure. Ability to apply knowledge and understanding: given a problem inherent in the dynamic list structure, - define an iterative algorithm that transforms the input data into the output data, following the programming constructs; - define a recursive algorithm that transforms the input data into the output data, following the programming constructs; - write to the computer the source program that implements the algorithm, using a programming language (C); - compile, run and test this program on the computer. Autonomy of judgment: the student must be able to define and implement an algorithm independently to solve a problem inherent in the management of dynamic structures in the programming language (C), to evaluate their complexity, and to compile and execute the program. Communication skills: the student must be able to define an algorithm both in iteration and in recursion, and must know how to present its cost expressed as complexity in time and space. Learning skills: the student must be able to learn how to define an algorithm starting from the problem both in iteration and in recursion, evaluate its costs (complexity in time and space) and how to implement this algorithm in C.
×
Stampa
Insegnamento
CONOSCENZE INIZIALI
Codice
MF0435
Anno Accademico
2024/2025
Anno regolamento
2024/2025
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
MARTIGNONE Francesca
CFU
0.0
Ore di lezione
24.0
Ore di studio individuale
0.0
Settore Scientifico Disciplinare (SSD)
NN -
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OBB
Categoria insegnamento
D
Anno
1
Periodo
Primo Semestre
Sede
ALESSANDRIA
Tipo di valutazione
G
Lingua insegnamento/Teaching language
Italiano
Italian
Contenuti/Content Summary
Il corso ha lo scopo di sviluppare competenze di base e capacità relative alla comprensione dei testi scientifici, incluse le rappresentazioni e le notazioni della matematica, tenuto conto dei programmi delle Indicazioni Nazionali e Linee Guida per della scuola secondaria di secondo grado.
The course aims at developing basic competencies and skills related to the comprehension of scientific texts, including mathematical representations and notations, taking into account the National Guidelines for secondary school.
Testi di riferimento/Textbooks
Materiale didattico messo a disposizione dal docente sulla piattaforma DIR del corso.
Didactic material provided by the teacher on the DIR platform of the course
Obiettivi formativi/Mission
Saper interpretare testi scientifici e, in particolare, saper decodificare e manipolare scritture specifiche della matematica. Si vogliono sviluppare competenze relative all'interpretazione di testi di problemi matematici e all'applicazione delle strategie risolutive. Tutte le attività richiederanno una comunicazione efficace dei processi svolti e dei risultati ottenuti.
Being able to interpret scientific texts and, in particular, to be able to decode and manipulate specific mathematical notations. The goal is to develop competencies related to the interpretation of mathematical problem texts and to the implementation of solution strategies. All the activities will require effective communication of the processes carried out and of the results obtained.
Prerequisiti/Required background knowledge
Competenze relative al linguaggio e alla matematica richieste al termine della scuola secondaria di secondo grado.
Language and mathematical skills required at the end of secondary school.
Metodi didattici/Teaching methods
Lezioni in presenza e esercitazioni a distanza svolte anche attraverso l'uso della piattaforma Moodle dell’Università.
Lectures and training sessions carried out by means of the use of the University Moodle platform.
Altre informazioni/Further information
Controllo dell'apprendimento: attività supportate dall'utilizzo della piattaforma Moodle dell’Università. Queste attività hanno un obiettivo formativo: sono discusse e corrette insieme alle studentesse e agli 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, 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.
Learning monitoring: activities supported by the use of the Moodle platform of the University. These activities have a formative goal: they are discussed and corrected together with the students. 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
Test finale in analogia con il test iniziale delle competenze. La prova consiste in 20 domande di comprensione e uso dei testi scientifici, incluse le rappresentazioni e le notazioni della matematica. Per superare la prova è necessario ottenere più del 50% dei punti.
Final test in analogy with the competence assessment initial test. The final test consists of 20 questions about the understanding of scientific texts, including representations and notations of mathematics. To get through the test it is necessary to get more than the 50% of the points.
Programma esteso/Content
Nel corso saranno trattati contenuti e affrontati problemi relativi a competenze di base che sono necessarie per affrontare i corsi del primo anno del DiSIT. Saranno analizzati testi scientifici che includono le rappresentazioni e le notazioni della matematica e saranno svolte di attività di problem solving. In particolare saranno oggetto di studio: 1)Alcune caratteristiche fondamentali dei testi scientifici. 2)Diverse rappresentazioni dei numeri e delle misure. 3) Proprietà delle notazioni algebriche. 4)Rappresentazioni grafiche di fenomeni
The course will deal with content and problems related to basic skills that are required to face the DiSIT first year courses. Scientific texts, that include mathematical representations and notations, will be analyzed and problem solving activities will be carried out. In particular they will be studied: 1) Some fundamental features of scientific texts. 2) Different representations of number and measures. 3) Algebraic notations proprieties. 4) Graphic representations of phenomena
Risultati di apprendimento attesi/Intended learning objectives
Conoscenza di alcuni concetti di base della matematica, in particolare: numeri reali e loro rappresentazioni e principali funzioni elementari. Capacità di applicare questi concetti nella risoluzione di semplici problemi e nell'interpretazione di grafici. Consapevolezza delle potenzialità e dei limiti dei concetti e dei metodi adottati.
Knowledge of some basic concepts of mathematics, in particular: real numbers and their representations and main elementary functions. Ability at applying these concepts in simple problem solving and in the interpretation of graphs. Awareness about potential and limits of the concepts and methods adopted.
×
Stampa
Insegnamento
CONOSCENZE INIZIALI
Codice
MF0436
Anno Accademico
2024/2025
Anno regolamento
2024/2025
Corso di studio
INFORMATICA
Curriculum
CORSO GENERICO
Responsabile didattico
MARTIGNONE Francesca
CFU
0.0
Ore di lezione
24.0
Ore di studio individuale
0.0
Settore Scientifico Disciplinare (SSD)
NN -
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OBB
Categoria insegnamento
D
Anno
1
Periodo
Primo Semestre
Sede
VERCELLI
Tipo di valutazione
G
Lingua insegnamento/Teaching language
Italiano
Italian
Contenuti/Content Summary
Il corso ha lo scopo di sviluppare competenze di base e capacità relative alla comprensione dei testi scientifici, incluse le rappresentazioni e le notazioni della matematica, tenuto conto dei programmi delle Indicazioni Nazionali e Linee Guida per della scuola secondaria di secondo grado.
The course aims at developing basic competencies and skills related to the comprehension of scientific texts, including mathematical representations and notations, taking into account the National Guidelines for secondary school.
Testi di riferimento/Textbooks
Materiale didattico messo a disposizione dal docente sulla piattaforma DIR del corso.
Didactic material provided by the teacher on the DIR platform of the course
Obiettivi formativi/Mission
Saper interpretare testi scientifici e, in particolare, saper decodificare e manipolare scritture specifiche della matematica. Si vogliono sviluppare competenze relative all'interpretazione di testi di problemi matematici e all'applicazione delle strategie risolutive. Tutte le attività richiederanno una comunicazione efficace dei processi svolti e dei risultati ottenuti.
Being able to interpret scientific texts and, in particular, to be able to decode and manipulate specific mathematical notations. The goal is to develop competencies related to the interpretation of mathematical problem texts and to the implementation of solution strategies. All the activities will require effective communication of the processes carried out and of the results obtained
Prerequisiti/Required background knowledge
Competenze relative al linguaggio e alla matematica richieste al termine della scuola secondaria di secondo grado.
Language and mathematical skills required at the end of secondary school.
Metodi didattici/Teaching methods
Lezioni in aula e esercitazioni svolte anche attraverso l'uso della piattaforma Moodle dell’Università.
Lectures and training sessions carried out also by means of the use of the University Moodle platform.
Altre informazioni/Further information
Controllo dell'apprendimento: attività supportate anche dall'utilizzo della piattaforma Moodle dell’Università. Queste attività hanno un obiettivo formativo: sono discusse e corrette insieme alle studentesse e agli 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, 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.
Learning monitoring: activities supported by the use of the Moodle platform of the University. These activities have a formative goal: they are discussed and corrected together with the students. 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
Test finale in analogia con il test iniziale delle competenze. La prova consiste in 20 domande di comprensione e uso dei testi scientifici, incluse le rappresentazioni e le notazioni della matematica. Per superare la prova è necessario ottenere almeno il 50% dei punti.
Final test in analogy with the competence assessment initial test. The final test consists of 20 questions about the understanding of scientific texts, including representations and notations of mathematics. To get through the test it is necessary to get at least 50% of the points.
Programma esteso/Content
Nel corso saranno trattati contenuti e affrontati problemi relativi a competenze di base che sono necessarie per affrontare i corsi del primo anno del DiSIT. Saranno analizzati testi scientifici che includono le rappresentazioni e le notazioni della matematica e saranno svolte di attività di problem solving. In particolare saranno oggetto di studio: 1)Alcune caratteristiche fondamentali dei testi scientifici. 2)Diverse rappresentazioni dei numeri e delle misure. 3) Proprietà delle notazioni algebriche. 4)Rappresentazioni grafiche di fenomeni
The course will deal with content and problems related to basic skills that are required to face the DiSIT first year courses. Scientific texts, that include mathematical representations and notations, will be analyzed and problem solving activities will be carried out. In particular they will be studied: 1) Some fundamental features of scientific texts. 2) Different representations of number and measures. 3) Algebraic notations proprieties. 4) Graphic representations of phenomena
Risultati di apprendimento attesi/Intended learning objectives
Conoscenza di alcuni concetti di base della matematica, in particolare: numeri reali e loro rappresentazioni e principali funzioni elementari. Capacità di applicare questi concetti nella risoluzione di semplici problemi e nell'interpretazione di grafici. Consapevolezza delle potenzialità e dei limiti dei concetti e dei metodi adottati.
Knowledge of some basic concepts of mathematics, in particular: real numbers and their representations and main elementary functions. Ability at applying these concepts in simple problem solving and in the interpretation of graphs. Awareness about potential and limits of the concepts and methods adopted.
×
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.
Anno Codice Insegnamento Docenti Settore Scientifico Disciplinare (SSD) Curriculum Sede CFU
1 MF0575 ANALISI MATEMATICA Luzzini Paolo MAT/05 Tutti VERCELLI 6.0
1 MF0574 ANALISI MATEMATICA Ferrero Alberto MAT/05 Tutti ALESSANDRIA 6.0
1 S1363 ARCHITETTURA DEGLI ELABORATORI Franceschinis Giuliana Annamaria, Lai Mirko INF/01 Tutti ALESSANDRIA 12.0
1 MF0199 ARCHITETTURA DEGLI ELABORATORI Sacco Alessio, Lai Mirko INF/01 Tutti VERCELLI 12.0
1 MF0436 CONOSCENZE INIZIALI Landra Paola, Martignone Francesca NN Tutti VERCELLI 0.0
1 MF0435 CONOSCENZE INIZIALI Martignone Francesca NN Tutti ALESSANDRIA 0.0
1 MF0202 FISICA Panzieri Daniele, Sitta Mario FIS/01 Tutti ALESSANDRIA 6.0
1 MF0203 FISICA Castellani Leonardo FIS/01 Tutti VERCELLI 6.0
1 MF0204 MATEMATICA DISCRETA Luzzini Paolo, Laguzzi Giorgio MAT/03, MAT/01 Tutti VERCELLI 9.0
1 S1366 MATEMATICA DISCRETA Aceto Lidia, Laguzzi Giorgio MAT/03, MAT/01 Tutti ALESSANDRIA 9.0
1 MF0163 PROGRAMMAZIONE 1 Terenziani Paolo, Bottrighi Alessio INF/01 Tutti ALESSANDRIA 9.0
1 MF0207 PROGRAMMAZIONE 1 Codetta Raiteri Daniele INF/01 Tutti VERCELLI 9.0
1 MF0208 PROGRAMMAZIONE 2 Santomauro Andrea INF/01 Tutti VERCELLI 9.0
1 MF0164 PROGRAMMAZIONE 2 Striani Manuel, Pennisi Marzio Alfio INF/01 Tutti ALESSANDRIA 9.0
1 MF0395 TECNICHE DI COMUNICAZIONE E SCRITTURA Bussolino Claudia L-FIL-LET/12 Tutti ALESSANDRIA 3.0
1 MF0396 TECNICHE DI COMUNICAZIONE E SCRITTURA Demartini Silvia L-FIL-LET/12 Tutti VERCELLI 3.0
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
Dati aggiornati al: 16/07/2026, 04:25