- Urban Building Brief: An Urban Room for Glasgow – Civic Infrastructure Studio Project | Glasgow School of Art
- Urban Housing Brief: Living in Agreement in Tradeston, Glasgow – Block and Individual Investigations | Glasgow School of Art
- AT4.2 Urban Building Integration Architectural Technology Assignment: Structure, Envelope, Fire and Embodied Carbon | Glasgow School of Art
- IMAT1701 Foundations of Computing Portfolio Assignment 2026/27: StudentHub Network Design and Ethical Analysis | DMU
- EBB_6_060 Contract Administration Group Coursework Brief 2026/27: Digital Tools, Dispute Avoidance and Blockchain in Retrofit Projects | LSBU
- EG7004 Soil Structure Engineering Coursework Brief 2026/27: Deep Braced Excavation Design with CIRIA C517 and FREW | UEL
- NVQ Level 5 Unit 507 Safeguarding in Adult Care Assignment Brief 2026
- EN7068 Leadership, Stakeholders and Data Analytics Coursework Brief 2026
- ENGE2003 Engineering Project Management Coursework 2, 2026 | DMU
- 55-500223 Analogue and Digital Electronic Design Coursework Brief 2026 | SHU
- EGR9017 Power Systems Assessment Coursework 1 Brief 2026 | University of Lincoln
- 7BIOM037W Systems Biology Coursework 1 Report 2026 | University of Westminster
- NCFE CACHE Level 3 Unit 8 Professional Practice Portfolio 1 Coursework 2026
- NCFE CACHE Level 3 Unit 9 Supporting Emergent literacy Coursework 2026
- 6WBS0035/ 6WBS0036 Digital Economy CW1 Assignment Brief 2026 | UOH
- DSM060 Data Science Research Topics Coursework Assignment 2026 | UOL
- BARC0087 Structures Materials & Forming Techniques Coursework 2026 | UCL
- LL5306 Commercial Law Assessment Coursework Brief 2026 | Kingston University
- M22319 / M33098 Numerical Skills & Economics Assessment Coursework | UOP
- BMG872 Global Strategy Development and Implementation Individual Assignment CWK Brief 2026
CS01C86 Advanced Programming, Course Work, NU, UK
| University | Newcastle University (NU) |
| Subject | CS01C86 Advanced Programming |
Scenario
We want to implement a forum platform (Blog), where users are opening topic threads for discussions (createNewTopicThread) and posting some comments (add PostToThreadId). When a topic thread is opened, there might be no messages available. We also freely assume that all the users are also
moderators, thus allowing to remove specific threads as a whole (removeTopicThreadById).
We do not consider the possibility of removing single messages within a topic thread. In addition to this, we might also freely assume that each user might retrieve all the available topic threads names
sorted by published date (getAllTopics) as well as their IDs (getAllTopicIDs); a user can also retrieve all messages from a specific topic thread (getAllMessagesFromTopic).
Furthermore, the user might be also want to retrieve the latest available update event within the server (pollForUpdate) if available and otherwise wait; an eponymous method also accepting the previous message update as an argument will only return if a new event being different from the one being provided as an argument is effectively generated by one of the users using the platform.
When required, the users receive the feedback on their operation’s status through either a boolean (true for successful, false for error or unsuccessful) or a TopicUpdates message. The latter class shall not be changed by the student.
We might freely assume that such platform acts as a monitor, where requests are handled through method invocation. For synchronising read and write operations over the server, the students shall only use the Read Write Monitor Multi Read to guarantee the main synchronization mechanism.
In this scenario, the users should be allowed to perform all of the aforementioned operations concurrently with no race conditions. Using 2PL transactions or ensuring the fairness over reader and
writing threads is not strictly required.
Are You Looking for Answer of This Assignment or Essay


