Assignment #1: DECIDE
- Due 1 Feb 2023 by 17:59
- Points 2
- Submitting a website url or a file upload
- File types pdf
Goal
The goal of assignment #1 Download assignment #1 is to implement a program according to the modern development techniques. To this extent, the grading focuses more on the software engineering part of the assignment than on the program, see the grading scheme below.
Task
Each group has to implement the DECIDE program, whose specification is given here.
The task has been chosen because it is very appropriate for splitting the work and for unit testing.
You must use a development platform (Github, Bitbucket or KTH Github). Only the content published on the development platform is used for grading. The content means: 1) the code 2) the issues 3) the pull requests 4) the continuous integration data (eg Travis) if available.
The students can start the task now, and have to be done at the final grading session for this assignment.
Roles
Roles of the students: coordinate in the group, do the work, deliver on time, ask for feedback on the Canvas discussion forum.
Roles of the teaching assistants: provide support for students during laboratory exercise, on the Canvas discussion forum, prepare a first version of the grading form.
Roles of the lecturers: final assessment and official grading.
Grading
The assignment is graded either "Pass" or "Pass with distinction".
It contributes to the final course grade according to the grading specification of the course.
By default all students of a group have the same grade. However, if there is unbalanced work, as reported by the student or detected by the teaching team, more qualified grading can be taken.
To get a Pass (every point must be achieved).
Task |
Achieved (Yes/no) Optional comment |
---|---|
Property: the repository is structured with appropriate folders and contains a good README Links to an external site.. In addition to the contents of a normal README, your README also contains the statement of contributions. Assessment: The grader assesses the appropriateness of all top-level files and folders. The grader reads the README and the statement of contributions. |
|
Property: the program should be functionally correct Assessment: the students point to the three main test cases, and the TA assess the correctness of the contract and the oracles (expected value in assertion). The TA/grader may ask for looking at other test cases at random to further assess correctness. |
|
Property: the program should be appropriately tested, with at least one unit test per LIC, and at least two tests (including a positive test and a negative test with invalid inputs) if applicable. Assessment: The grader will open a random sample of test cases (minimum 3), and assess whether:
|
|
Property: the collaboration is well structured and traceable Assessment: The grader will open the commit history on Github, and will select a minimum of 5 commits, at random, to check that:
(Note that only the most recent second half of commits will be considered, so as to let students time to understand the process) |
|
Property: You have assessed and documented (in one paragraph) your way of working (p. 58 in the Essence standard
Links to an external site. v1.2) by evaluating the checklist on p. 60: Assessment: The grader will read your statement and assess whether it corresponds to an honest and accurate self-evaluation. |
To get a P+: Pass with distinction (one of those two points is achieved).
Task |
Achieved (Yes/no) Optional comment |
---|---|
Property: most commits (typically 90%) are linked to an issue describing the feature / commit. Assessment: The grader will open a random sample of commits and assess whether they point to a valid issue. The grader will open a random sample of issues and assess whether they clearly describe (and optionally discuss) a feature or problem (for bugs). |
|
Property: the group is creative and proactive, they have done something remarkable, for which they are proud. Assessment: the students claim in their "Statement of contributions" that they have done something valuable and remarkable in their project. The grader subjectively assess whether it counts towards a distinction. |
Ethics
Recall that the student code of conduct forbids any kind of plagiarism, between groups in the course, or based on content taken on the Internet.