Assignments

Overall Structure

There are 3 mandatory assignments, to be done in alone, worth 2 higher-education credits (ECTS credits) in total.

The main objective of the assignments is to exercise the theoretical knowledge gained in the lectures. You are to hand in the code and a report. The code should follow the coding convention and the report must follow the structure and content of the demo report

For each assignment, the assistants supervise 3 help sessions for troubleshooting in the preparation of your reports.

Each assignment has 2 independent problems, each yielding a problem score in $0..5$, hence there is a maximum of 30 points to earn. For each problem, a skeleton code in Python 3 with test cases is provided. Insufficiently good reports can be defended orally to an assistant in scheduled grading sessions. Solutions are discussed by the assistants in solution sessions.

Submission Requirements

You must submit :

  • Your report
  • All relevant python files. You must not change the API or function signatures. If you do this, then we cannot run the automated testing and you will receive a mark of 0.

The skeleton code comes with an extensive set of test cases. Your submitted code must pass all test cases. If you code does not pass all test cases, then we will not read your report and you will receive a mark of 0 for that part of the assignment. Your implementation should be correct, and if it is correct then you should be able to pass all the provided test cases.

Help Sessions

The objective of a help session is only for the assistants to help you prepare an acceptable solution for the assignment with the closest upcoming deadline. Also, the necessary course material will normally have been presented in lectures at least a week prior to the first help session. You are thus able and even strongly encouraged to prepare your solution as far as possible until the help sessions and to attend them, in order to make best use of that reserved time span of personal attention by the assistants.

Solution Session

The objective of a solution session is only for the assistants to discuss acceptable solutions to the assignment of the previous deadline. No code will be handed out. The first two solution sessions are merged with the initial help sessions to the next assignment. For timetable reasons, the third assignment has no solution session.

Comments on your submitted report can be found on Studium; more detailed comments can be obtained orally from the assistants upon appointment.

Submission and Deadlines

All assignment reports, with imposed structure must be submitted electronically via Studium, whose clock may be different from yours. Submission deadlines are hard. Grading will only start after a deadline, so you can submit multiple times until then.

Ethics

Please see the Ethics Guidelines in the FAQ.

We reserve the right to give different assignment scores to the teammates of a team, depending on the performance at the grading session.

Please report any problems within a team to the head teacher, who will handle the case in confidence, in the best interest of both teammates, keeping the ethics dimension in mind.

Expected Effort

One higher-education credit (ECTS credit) translates under Swedish university law into an expected 26.67 hours of work for the average student. Hence 133.33 hours are expected on this 5-credit course.

The assignments are worth 2 credits in total. Not counting the 19.5 hours spent on the 13 lectures, the 3 assignments are calibrated to take an average of 30 hours each, for the average student, for each teammate, including the corresponding help, grading, and solution sessions, and this time counts also as exam preparation.

All this does not clash with other courses you are taking, as university studies are legally defined to take 400 hours of work per study period (normally 10 weeks), and the standard 15 credits targeted in a study period are calibrated to reach that total.

Do not expect the 3 assignments to be equally labour-intensive, and do not expect the 2 problems of each assignment to be equally labour-intensive. Assignment 3 is calibrated somewhat shorter due to the proximity of the exam.

Former Students

Students from previous academic years who have not yet been awarded the credit point(s) for the assignments contact the head teacher.

Subsections of Assignments

Coding Convention

Software

All assignments are to be written in Python 3. Your assignments will be partially tested by an automated system, and the exact version of Python that will be used will be specified on the assignments.

The learning of sufficient Python skills is within your time budget for this course, and this should not take more than a couple hours.

We highly recommend you learn or use LaTex for typesetting your assignment reports in a professional way, but this is optional. The learning of LaTeX is outside your time budget for this course, but very well-invested as you will find out during the course or later.

Example

A program for insertion sort that is fully annotated according to the coding convention is given on page 3 of the AD2 demo report which also contains examples of all LaTeX2e commands you need for this course.

Coding Convention and Checklist before submitting

The first two pages of the AD2 demo report contain a checklist that you must follow before submitting and the coding convention that you must follow.

Demo Report

The main objective of the assignments is to exercise the theoretical knowledge gained in the lectures, on carefully selected problems of our choice. We are not just interested in sufficiently correct and efficient programs, but also in explanations and a runtime analysis, hence a report is also required for each assignment and its quality has an impact on the score for your assignment.

See the demo report and LaTeX source for the imposed document structure and an indication of the expected quality of content. Our expectations are higher than at the exam, as the aims are to learn something and to prepare for the exam: we expect at least a high degree of correctness, completeness, and compliance with the coding convention of this course.

Assignment 1

  • The specification and the grading rules for assignment 1 can be found in the following document. You are advised to read the grading rules carefully.

  • All skeleton code can be found here. You must use this years skeleton code, as it has changed from previous years.

  • A Zip file with all the assignments and the source of the demo report. If that link does not work then try copying and pasting the following link into your browser: http://user.it.uu.se/~justin/Assets/Teaching/AD2/ad2_source.zip

Don’t forget that your code must pass all the provided test cases. If not all test cases are passed then you will get score of 0 on that part of the question.

Assignment 2

  • The specification and the grading rules for assignment 2 can be found in the following document. You are advised to read the grading rules carefully.

  • All skeleton code can be found here. You must use this years skeleton code, as it has changed from previous years.

  • A Zip filewith all the assignments and the source of the demo report. If that link does not work then try copying and pasting the following link into your browser: http://user.it.uu.se/~justin/Assets/Teaching/AD2/ad2_source.zip

Don’t forget that your code must pass all the provided test cases. If not all test cases are passed then you will get score of 0 on that part of the question.

Assignment 3

  • The specification and the grading rules for assignment 3 can be found in the following document. You are advised to read the grading rules carefully.

  • All skeleton code can be found here. You must use this years skeleton code, as it has changed from previous years.

  • A Zip filewith all the assignments and the source of the demo report. If that link does not work then try copying and pasting the following link into your browser: http://user.it.uu.se/~justin/Assets/Teaching/AD2/ad2_source.zip

Don’t forget that your code must pass all the provided test cases. If not all test cases are passed then you will get score of 0 on that part of the question.