The purpose of assessments in general.

Througout your career (academic or not), you will likely be asked to write a report or an assessment. Both tasks are about presenting the relevant information about your work, but there is a difference in what is relevant.

Outside of academia, a report is usually something employees prepare for management to help inform decision-making or to give status on a larger project. In this context, and assessment is usually conducted on a small team that know each other well, and the purpose is to clear out any miscommunications, as well as identify areas for improvement.

For example, software developers might be asked to write a technical report, meaning documentation for their code. The expected text, is a summative description of the main design choices, how does it fit into the companies software stack, what is the API etc. On the other hand, software developers may also engage in daily standup meetings, where the contents are more formative: What was your approach? How far did you get? How do we move on from here? and so on.

The meaning of assessment in this course.

In this course, we ask you to give an honest and justified assessment of the quality of your submitted code, and the degree to which it fulfills the requirements of the assignment.

We suggest that you structure your assessment into the following paragraphs:

Completeness

How much of the functionality is implemented? For each part that is only partly working, or missing: Do you have any ideas for how to implement them, and if not, what are your thourghts?

Correctness

Are there known bugs or other limitations? In the latter case, do you have any ideas on how to potentially address those problems?

Efficiency

What is the time and space usage of your code? You do not need to benchmark your code, but try to provide an argument that the execution behaviour matches your expectations asymptotically.

If it does not, what are the reasons that your code might run slower than you expect, and how do you propose to fix it; That is, this course is not about writing efficient programs, so it is sufficient to acknowledge the problem and demonstrate that you understand what it is.

Maintainability

Suppose you are face-to-face with the future maintainer of your code. Are there any things you think they should know.