(made during the 2024 Royal Holloway Hackathon)
The Brookshear Machine Algorithm is a computational process that operates on a machine's memory and executes instructions stored in that memory. In the provided code excerpt, the algorithm is being implemented within an HTML file. The algorithm involves a series of steps, including fetching instructions from memory, decoding them to determine their meaning, and executing the corresponding operations. The algorithm also involves the use of registers, which are special storage locations within the machine that hold data temporarily. The algorithm's progress is displayed on the webpage through various HTML elements, such as the PC (Program Counter), CIR (Current Instruction Register), and memory contents. By clicking the "fetch," "decode," and "execute" buttons, the algorithm progresses through its steps, updating the HTML elements accordingly.
We have developed it up to the point of running algorithms, but we were not quite able to get the assembler to work. Although the project can't be said to be functional, I still believe that, given the fact that the logic underneath is correct, we have created something that works.
We had less than 12 hours to complete this project because we switched what we were working on halfway through the hackathon. Our initial project for Royal Hackathon was a Mastodon node-based program, aiming to graph connections between followers and those you were following, the connections between each of those people, and then each of their connections, spiraling out into a much more vast network node. We attempted this in Python using a number of unusually niche libraries, including plot.ly, Taipy, and others, but encountered multiple issues. Not only did we face a lack of documentation for many of the libraries we were attempting to use, but we also dealt with challenges related to the time it took to handle data requests. Even when scanning just a single layer, we often waited minutes for single requests, which I felt made the hackathon project de facto unfeasible from this perspective.
Despite switching our project at a later point in the event, we managed to build a reasonably advanced machine algorithm, even if graphically unusable. Although it may not have been as powerful as the other software on display, working on machine algorithm code is still a fascinating area to explore, and it is something that I wish to gain more knowledge of as I continue with my degree, especially in the field of Artificial Intelligence. I believe it would be very useful to understand the underlying features that make up programming languages, as well as programs that attempt to do emulation.
I had a great team behind me, and it was excellent to be surrounded by people with more advanced knowledge of computer science compared to me. Everyone else on the team has had many more years of programming than I have, and they all did an excellent job despite the difficulties we faced.
This was my first hackathon, and I really enjoyed it. I look forward to attending more in the future.