The two Units are taught by different professors, but they share the same topics, have the same examination, and result in only one grade (in 30th).
We will publish eight (8) homework assignments during the course, plus four (4) recovery ones. Homework assignments have to be carried out individually at home. Four (4) of them are optional, and four (4) are mandatory for admission to the exam, both of Programming and Programming Lab.
Each homework assignment consists of one exercise to be carried out. Usually, these exercises need a preliminary analysis and oblige you to think well about the problem, how to represent the intermediate data and how to solve the problem efficiently. The difficulty is calibrated to let you devise the possible solutions taking efficiency and effectiveness into account.
The four optional homework assignments are used to get acquainted with the homework mechanism and with the topics carried out during the course. The optional homework assignments do not yield points (even if they have their separate ranking) and are not subject to a deadline.
The four mandatory homework assignments are used to verify that you can deal with different exam topics. Each of those homework assignments has a deadline (usually two weeks) and is explained in the classroom right after the deadline. Those homework assignments can also receive some extra points (as explained next). Your code will be visible to everybody after the final deadline.
You can recover missed (or improve the score of) mandatory homework assignments by performing the corresponding recovery homework assignments, usually of the same difficulty as the former. Recovery homework assignments are subject to no deadline, and no explanation nor bonus will be given. The best score will be considered between the two achieved (mandatory and recovery assignments), in case.
Homework assignments are automatically tested on a sample data set via a test program that is delivered to you together with a description of the assignment. In addition to the provided tests, some additional hidden tests will be run to further check the provided solution and obtain the final score.
Every exercise is given a score in the range of 0–30 points, proportionally to the number of tests passed. On top of that, the score will receive a bonus to reward
Students who deliver solutions that are too similar or try dirty tricks will have their homework canceled. A canceled homework assignment must be recovered. Beware that if the recovery homework is also canceled, its contribution to the overall grade will be 0 (you can not recover a recovery homework).
Mandatory homework solutions that pass all the tests (i.e., yield 30 points), can have up to 4 additional points if:
To encourage the exchange of ideas (NOT the code though) and the understanding of exercises, there will be a peer assessment activity during which you can voluntarily suggest to one another how to improve your homework solutions.
Each homework assignment will have two deadline dates, then: the first is mandatory for everyone, while the second (4 days later) is for the voluntary peer assessment. By the first deadline, all the students have to deliver the code of their solution and the description in English of the implemented algorithm. The description must be anonymous. After the first deadline, students who want to participate in the peer assessment have 4 more days to revise their solution, providing and getting advice to and from colleagues. In particular: during the first 2 days, the students have to evaluate the algorithms of 3 randomly chosen anonymous peers and give effective suggestions to improve the algorithm. At the same time, they will receive advice from 3 random anonymous peers. In the last 2 days, the participating students are required to give feedback about the received pieces of advice and can deliver a revised (possibly improved) solution of their algorithm, leveraging received ideas and feedback.
Taking part in the peer assessment also gives access to a bonus in the grade. At the end of the course, the clarity of algorithm descriptions, the usefulness, and the quality of provided advice collected with the feedback to the anonymous peers will determine a ranking: those who are in the top ⅓ of the ranking will receive a bonus up to +3 points that will be added to the final exam grade.
Note: the evaluations that you give/receive do not directly affect the score (apart from the bonus that you can get for helping others better) and will be used by us to investigate the social mechanisms underlying the peer assessment.
To encourage socialization, there are some incentives for the involvement in the official Q2A forum of the course. Any activity in the forum is worth some points: asking questions, giving answers, voting and receiving votes, receiving the “best answer” mark from the asking user or the teachers. At the end of the course, there will be a ranking of the forum users. Those in the top ⅓ of the ranking will receive a bonus up to +3 points to the final exam grade.
The recovery homework assignments will be about the same topics as those of the corresponding mandatory ones. They will be out upon the expiry of the PA deadlines.
This is a tentative calendar with the HW dates:
HW Release date First deadline PA deadline Topic ------------- -------------- ----------------- -------------- ------------------------------------------ 1 optional -- -- -- strings, sequences, sets and lists 2 mandatory 27/10/2021 6/11/2021 10/11/2021 same as (1) 3 optional -- -- -- dictionaries and file access 4 mandatory 10/11/2021 20/11/2021 24/11/2021 same as (3) 5 optional -- -- -- matrices, images and classes 6 mandatory 24/11/2021 4/12/2021 8/12/2021 same as (5) 7 optional -- -- -- directory or tree or game tree recursion 8 mandatory 8/12/2021 18/12/2021 22/12/2021 same as (7)
To be admitted to the examination, a grade of 16 or more in each of the 4 mandatory homework assignments is required. The final grade to be recorded is the weighted average of the collected scores, computed as follows:
For example, let us assume a student gets:
As a result, the final grade will be 28, namely (24 + 1.5) × 1/3 + 29 × 2/3 = 27.83
A final grade greater than 30 will be registered as 30 cum laude.