I was assigned one of five topics to write a report for. The topic I was assigne

I was assigned one of five topics to write a report for. The topic I was assigned was modelling using the VDM languauge. I was given a basic VDM model of Wordle and given six different tasks to expand it, which I have completed. I must write a report on what I did. Here is the task description for the coursework:
The goal of this coursework is to help you engage with one of the five topics covered in the module more deeply. It also gives you experience of project work, where you begin with a project outline and a guide, but take charge of your own exploration of the project and write a report about what you did, how you did it, and what you found.
This project is designed to be between similar to a dissertation project from Stage 3, but with a more guided task. It is not expected that you will learn all you need to complete the project and report from the sessions in the taught weeks. To achieve a good mark, you will need to review the existing and new material released on Canvas, undertake your own reading, and attend practal sessions to ask questions.
The format of the project for each topic is the same: you should develop an artefact (model, design, code, game, notebook, etc.), and write a project report about the work you did. The report carries the majority of the marks for this assessment, but it is important that the markers can access your artefact, so make sure it works. Students achieving higher marks will demonstrate that they have widened their knowledge by going beyond the content of taught material through background reading.
The task description for the topic (see below) describes a scenario and the artefact you should develop. It includes guidance on the core elements that the artefact should include as well as possible extensions and avenues to explore. The task description may also include a starting point (e.g. a data set or framework). The format of the report is the same for all topics. Your report should comprise the following sections:
Cover Page
Student number
Abstract (50 – 200 words strict)
A summary of the work done including any results and findings.
What Was Done and How
A description of the work done at a high level, including descriptions of design, implementation, testing strategies as appropriate.
A rationale for the approach taken and any decisions made, taking account of the wider context of contemporary topics in computing as appropriate.
References, quotes and examples of existing research and practice relevant to the approach taken and the artefact produced.
Should use diagrams, tables, images and code snippets with captions to appropriately support text.
Results and Evaluation
A clear description of the final artefact.
An evaluation of how well the artefact meets the task description.
A summary of the work done.
Suggestions for future work.
Personal reflection on how the project went.
Evaluation and reflections should include positive and negative aspects.
Full references for any quotes, figures, code or other external sources used.
A standard and consistent format will full bibliographic data.
Appropriate use of in-text citations.
Appendices (optional)
Brief appendices may be included that contain additional material such as diagrams and tables.
The report should be 2500 words excluding the cover page, references and (optionally) brief appendices. The standard tolerance of ±10% on word count applies. Falling significantly below the word limit makes it harder to include all the required content to achieve the marks. The task description includes guidance on what you might include in the main What Was Done and How section of the report since this varies across topics.
Percentage Marks
Artefact 10%
Report Elements:
Cover Page and Abstract 5%
What Was Done and How 40%
Results and Evaluation 20%
Conclusions and Future Work 20%
References, Form and Style 5%
And here is the task description for the Modelling topic:
You have been asked by the New York Times to complete the VDM model of Wordle so that they can understand how it works (since they purchased it for an undisclosed seven-figure sum at the end of January), and to extend. You should begin with the basic model completed during the practical sessions. A clear version of the solution is available as: Wordle-solution.zip Download Wordle-solution.zip.
There are a variety of improvements that will make the model more useful to our clients at the New York Times, particularly given the first version covers only the basic functionality.
Since it may have been while, run the model and try the check_letter function, and check_guess and guess operations with various values. To do this you can:
Press Run > Start Debugging and then type in the console, e.g. print check_letter(‘C’, 1, “CHECK”) or print check_guess(w1, “HEALS”).
Click the Launch button above a definition and enter arguments when prompted.
Note: tests might not all pass at this stage.
If you have not seen the specification before, it is worth going back through from Modelling Wordle Part 1. For technical issues, the Frequently Asked Questions (FAQ) will be updated if comong problems are found.
Consolidate your tests for the current operations and functions in one place so they can be run repeatedly. To do this:
Create a second file called test.vdmsl and add an operation called test_check_letter: () ==> () that combines your test cases into one operation. This takes no parameters and returns no value.
Right-click on a .vdmsl file (e.g., test.vdmsl) there should be a “VDM” entry at the bottom. Under that menu select Add VDM Library and check IO at the top, and click Okay (this adds IO.vdmsl Download IO.vdmsl to the directory).
It should use the IO`printf operation to print information to the console about expected and actual values for each test.
IO`printf takes a string containing %s placeholders and a sequence of values, e.g. IO`printf(“Expected: , actual: %s”, [check_letter(c1, p1, word1)]).
You can use a values section to create named constants that can be used in multiple tests (as was done with w1, w2 etc. originally).
Create similar tests for the check_guess and guess operations.
Wordle has a “Hard mode” with the following definition: “Any revealed hints must be used in subsequent guesses.” This rule further constrains what strings a user can guess with. Include this as a new operation called hard_guess based on the guess operation that meets this requirement.
Hint: the pre-condition should constrain what guesses the player can make, the operation body will not change.
Extend test.vdmsl with test_check_letter
Create an operation hint: () ==> Hint that gives the user an appropriate hint given the state of the game. Define a Hint type using an appropriate basic type (e.g., a char). Consider any pre-conditions required as well as defining the operation body. Document any assumptions you make in interpreting this requirement in your report.
You should discover that the naive implementation of the check_guess combined with check_letter does not produce correct results in all situtations, i.e. where there are repeated letters. Improve the check_letter function so that is passes the tests. Improve the specification to fix this issue.
Hint: the colour of a letter is conditional on the number of other occurrences of the letter in the word.
There are several ways to achieve this. For example, check_letter could be updated to take in sufficient additional information to provide the correct colour, or the body of check_guess could be changed to directly compute the clues without check_letter.
What to Include in Your Report
The What Was Done and How section of your report could include:
A description of the features of the model that were added.
A description of additional or changed data types and any invariants.
A description of key functionality added or updated, including pre- and post-conditions.
A description of how the model realises the requirements and any assumptions made in interpreting natural-language requirements.
Details of how the model was tested.
Model snippets of elements such as types, state, functions, operations and pre- and post-conditions to support the descriptions.
It is your decision as to what to include to demonstrate the work you have done.
I have completed each of the tasks above except for task 4 which I was unable to complete, so the fact that I was unable to complete that task must be included in the report. It is important to include any difficulties encountered in the report. I have attached my VDM model which includes the completed tasks and also the original, unedited VDM model so that what I did can be seen.

Leave a comment

Your email address will not be published.

Get 20% off your first purchase .USE THE CODE VPXC