Studying at the University of Verona
Here you can find information on the organisational aspects of the Programme, lecture timetables, learning activities and useful contact details for your time at the University, from enrolment to graduation.
Academic calendar
The academic calendar shows the deadlines and scheduled events that are relevant to students, teaching and technical-administrative staff of the University. Public holidays and University closures are also indicated. The academic year normally begins on 1 October each year and ends on 30 September of the following year.
Course calendar
The Academic Calendar sets out the degree programme lecture and exam timetables, as well as the relevant university closure dates..
Period | From | To |
---|---|---|
I semestre | Oct 1, 2019 | Jan 31, 2020 |
II semestre | Mar 2, 2020 | Jun 12, 2020 |
Session | From | To |
---|---|---|
Sessione invernale d'esame | Feb 3, 2020 | Feb 28, 2020 |
Sessione estiva d'esame | Jun 15, 2020 | Jul 31, 2020 |
Sessione autunnale d'esame | Sep 1, 2020 | Sep 30, 2020 |
Session | From | To |
---|---|---|
Sessione Estiva. | Jul 16, 2020 | Jul 16, 2020 |
Sessione Autunnale. | Oct 15, 2020 | Oct 15, 2020 |
Sessione Invernale. | Mar 18, 2021 | Mar 18, 2021 |
Period | From | To |
---|---|---|
Festa di Ognissanti | Nov 1, 2019 | Nov 1, 2019 |
Festa dell'Immacolata | Dec 8, 2019 | Dec 8, 2019 |
Vacanze di Natale | Dec 23, 2019 | Jan 6, 2020 |
Vacanze di Pasqua | Apr 10, 2020 | Apr 14, 2020 |
Festa della Liberazione | Apr 25, 2020 | Apr 25, 2020 |
Festa del lavoro | May 1, 2020 | May 1, 2020 |
Festa del Santo Patrono | May 21, 2020 | May 21, 2020 |
Festa della Repubblica | Jun 2, 2020 | Jun 2, 2020 |
Vacanze estive | Aug 10, 2020 | Aug 23, 2020 |
Exam calendar
Exam dates and rounds are managed by the relevant Science and Engineering Teaching and Student Services Unit.
To view all the exam sessions available, please use the Exam dashboard on ESSE3.
If you forgot your login details or have problems logging in, please contact the relevant IT HelpDesk, or check the login details recovery web page.
Academic staff
Study Plan
The Study Plan includes all modules, teaching and learning activities that each student will need to undertake during their time at the University.
Please select your Study Plan based on your enrollment year.
1° Year
Modules | Credits | TAF | SSD |
---|
2° Year activated in the A.Y. 2020/2021
Modules | Credits | TAF | SSD |
---|
Modules | Credits | TAF | SSD |
---|
Modules | Credits | TAF | SSD |
---|
Modules | Credits | TAF | SSD |
---|
2 modules among the following
Legend | Type of training activity (TTA)
TAF (Type of Educational Activity) All courses and activities are classified into different types of educational activities, indicated by a letter.
Algorithms (2019/2020)
The teaching is organized as follows:
Learning outcomes
We refer to the web pages of the modules for the complete and precise list of goals of the course as divided into its two parts. We limit ourselves to focus here on the overall targets of the Algorithm course, as a whole, which is to expose some aspects of the deep and important dialectic exchange between the search for algorithmic solutions and the study of the complexity of problems. Here, we can only touch upon the nature of the privileged relationship of these two disciplines, and their actual unity (like the Yin and Yang sides of a single one art), hoping, nonetheless, that this will help orienting the student in tackling this adventurous path with the right enthusiasm and perspective. Algorithms are the backbone and the substance of information technologies, but at the same time their study goes beyond the "mere" computer science and is pervasive to all the disciplines that are problem-bearers. The design of an algorithm starts from the study of the structure of the problem to be solved and it usually represents the highest achievement of this process. The study of algorithms requires and offers methodologies and techniques of problem solving, logical and mathematical skills. The course therefore aims to provide students with fundamental skills and methodologies for the analysis of problems and the design of the algorithms for solving them. Particular emphasis is given to the efficiency of the algorithms themselves, and the theory of computational complexity plays a profound methodological role in the analysis of problems. For non-trivial problems, the process of algorithm design rests on the theory of complexity not only to identify on which questions, and subproblems, it may make sense to concentrate efforts, but also as a dialectical counterpart providing the right language to disclose the subtle nuances of the problem and guiding towards the appropriate way of addressing its solution. A goal of the course is to highlight and illustrate the symbiosis between the competences (algorithm design and the study of problem complexity) which are addressed in the two modules. With reference to the overall didactic aims of the Master program, the course leads students to deepen and expand the three-year training in the field of analysis and evaluation of problems, algorithms, and computational models, providing a wealth of advanced tools to address non-trivial problems in different IT fields.
Program
1. The workflow of problem solving: analysis and comprehension of the problem, conception of an algorithmic solution, design of an efficient algorithm, planning the implementation, conducting the implementation, testing and debugging.
2. Methodology in analyzing a problem:
The study of special cases. Particularization and generalization.
Building a dialog with the problem. Conjectures. Simplicity assumptions.
Solving a problem by reducing it to another. Reductions among problems to organize them into classes. Reducing problems to isolate the most fundamental questions. The role of complexity theory in classifying problems into classes. The role of complexity theory in analyzing problems. Counterexamples and NP-hardness proofs. Good conjectures and good characterizations. The belief can make conjectures true. Decomposing problems and inductive thinking.
3. Algorithm design general techniques.
Recursion. Divide et impera. Recursion with memoization. Dynamic programming (DP). Greedy.
DP on sequences. DP on DAGs. More in depth: good characterization of DAGs and scheduling, composing partial orders into new ones.
DP on trees. More in depth: adoption of the children one by one; advantages of an edge-centric vision over the node-centric one.
The asymptotic eye on worst case performance guides the design of algorithms:
the binary search example; negligible improvements; amortized analysis.
Some data structures: binary heaps; prefix-sums; Fenwick trees; range trees.
4. Algorithms on graphs and digraphs.
Bipartite graphs: recognition algorithms and good characterizations.
Eulerian graphs: recognition algorithms and good characterizations.
Shortest paths. Minimum spanning trees.
Maximum flows and minimum cuts.
Bipartite matchings and node covers.
The kernel of a DAG. Progressively finite games. Sums of games.
5. General hints on implementing, coding, testing and debugging.
Plan your implementation. Anticipate the important decisions, and realize where the obscure points are. Try to go round the most painful issues you foresee. Code step by step. Verify step by step. Use the assert. Testing and debugging techniques. Self-certifying algorithms.
Bibliography
Author | Title | Publishing house | Year | ISBN | Notes |
---|---|---|---|---|---|
J. Kleinberg, É. Tardos | Algorithm Design (Edizione 1) | Addison Wesley | 2006 | 978-0321295354 | |
Garey, M. R. and Johnson, D. S. | Computers intractability: a guide to the theory of NP-completeness | Freeman | 1979 | 0-7167-1045-5 | |
T. Cormen, C. Leiserson, R. Rivest, C. Stein | Introduzione agli Algoritmi e Strutture Dati (Edizione 2) | McGraw-Hill | 2005 | 88-386-6251-7 | |
Michael Sipser | Introduction to the Theory of Computation | PWS | 1997 | 053494728X | |
Cristopher Moore, Stephan Mertens | The Nature of Computation | Oxford | 2011 | ||
Sanjoy Dasgupta, Christos Papadimitriou, Umesh Vazirani | Algorithms (Edizione 1) | McGraw-Hill Higher Education | 2007 | 978-0-07-352340-8 | |
Steven S Skiena, Miguel A. Revilla | Programming Challenges: The Programming Contest Training Manual (Edizione 2013) | Springer New York, 2013 | 2003 | 147578970X |
Examination Methods
Because of the CoVid19 emergency the organization and procedures of the exam have departed from what written more below in the official version. Since things are in continuous evolution, and we want to make sure no student gets lost, we redirect the student directly to the reference service site that we can maintain constantly updated:
http://profs.sci.univr.it/~rrizzi/classes/Algoritmi/index.html
We warmly advise every student to subscribe to the Telegram group for the 2020 edition of the course. This and other useful resources are conveniently accessed from the URL here above.
HERE BELOW FOLLOWS THE OFFICIAL VERSIONE THAT WAS INSERTED HERE AT THE BEGINNING OF THE ACADEMIC YEAR:
Students must face a 5 hours test held in computer room. Here, they are assigned some problems. The students must analyze and comprehend the problem and its structure, think of possible algorithmic solutions, design an algorithm and implement it in c/c++ or Pascal. The most efficient their algorithm is, the more points they will get.
During the exam, the students can submit their source codes to a site organized precisely as the one they have experimented during the exercise sessions in lab and/or at home. In this way they can get an immediate and contextual feedback that can guide them in conducting and managing their exam at their best.
Their solutions are evaluated based on the subtasks of the problem that they can solve correctly within the allotted computation time and memory as fixed by each single problem or subtask of it.
In this way, the efficiency of the solutions and algorithms they have designed and coded determines the final scores.
It is guaranteed that, at every exam session, at least one problem will be chosen among the problems that have been proposed and made available at the site for the home/laboratory exercises.
Often, other problems are taken from the COCI competitions or among problems of the olympiads in informatics or in problem solving.
Even after having achieved a positive vote, the student can participate to later exam sessions and see whether he can improve its current mark without any risk of reducing or tampering it anyhow: our policy is to keep the best mark ever.
To the mark from the exam are summed the points the students may have possibly collected in projects. As possible projects, this year we proposed the students to help us in designing problems and/or help us in the realization of a new system for the compilation of problem packages of new conception.
As such, each student has its own mark wallet. When the students decides he wants his (positive) mark registered, then the final mark is obtained as the average with the mark for the Computational Complexity twin module (which must also be positive in order to proceed) and this average is the mark for the whole course.
The site for the home/laboratory exercises:
https://cms.di.unipi.it/algo/
and the problems you find there, are your first resource for preparing to your exam. The system you will encounter at the exam is a clone of it.
For more information on the modalities and possibilities at the exam, and for further preparation material, explore the site of the course (and help us improving it):
http://profs.sci.univr.it/~rrizzi/classes/Algoritmi/index.html
Here you can find the wallet of your marks for both the "Algorithms" and the "Computationl Complexity" modules comprising the course (if any), plus your extra scores for Algorithms in case you have collected any of them with projects.
You will also find here the problems given at previous exam sessions,
and more detailed instructions on the procedures for the exam and for the composition and registration of your final mark.
Type D and Type F activities
Documents and news
-
PIANO DIDATTICO / DEGREE PROGRAMME LM-18/32 2019/20 (octet-stream, it, 16 KB, 25/03/19)
years | Modules | TAF | Teacher |
---|---|---|---|
1° 2° | The fashion lab (1 ECTS) | D | Not yet assigned |
years | Modules | TAF | Teacher |
---|---|---|---|
1° 2° | Python programming language | D |
Maurizio Boscaini
(Coordinator)
|
years | Modules | TAF | Teacher |
---|---|---|---|
1° 2° | CyberPhysical Laboratory | D |
Andrea Calanca
(Coordinator)
|
1° 2° | C++ Programming Language | D |
Federico Busato
(Coordinator)
|
1° 2° | Matlab-Simulink programming | D |
Bogdan Mihai Maris
(Coordinator)
|
years | Modules | TAF | Teacher |
---|---|---|---|
1° 2° | Corso Europrogettazione | D | Not yet assigned |
1° 2° | The course provides an introduction to blockchain technology. It focuses on the technology behind Bitcoin, Ethereum, Tendermint and Hotmoka. | D |
Matteo Cristani
|
Career prospects
Module/Programme news
News for students
There you will find information, resources and services useful during your time at the University (Student’s exam record, your study plan on ESSE3, Distance Learning courses, university email account, office forms, administrative procedures, etc.). You can log into MyUnivr with your GIA login details: only in this way will you be able to receive notification of all the notices from your teachers and your secretariat via email and also via the Univr app.
Tutoring faculty members
Graduation
Deadlines and administrative fulfilments
For deadlines, administrative fulfilments and notices on graduation sessions, please refer to the Graduation Sessions - Science and Engineering service.
Need to activate a thesis internship
For thesis-related internships, it is not always necessary to activate an internship through the Internship Office. For further information, please consult the dedicated document, which can be found in the 'Documents' section of the Internships and work orientation - Science e Engineering service.
Final examination regulations
List of thesis proposals
Attendance modes and venues
As stated in the Teaching Regulations, attendance at the course of study is not mandatory.
Part-time enrolment is permitted. Find out more on the Part-time enrolment possibilities page.
The course's teaching activities take place in the Science and Engineering area, which consists of the buildings of Ca‘ Vignal 1, Ca’ Vignal 2, Ca' Vignal 3 and Piramide, located in the Borgo Roma campus.
Lectures are held in the classrooms of Ca‘ Vignal 1, Ca’ Vignal 2 and Ca' Vignal 3, while practical exercises take place in the teaching laboratories dedicated to the various activities.