A dumping ground for all of my JavaScript projects made during my time at CMS.
Last updated: 09/03/25
Search Projects:
I am Hester Clapp, a computer science student at Cambridge Maths School. I have been learning to code using JavaScript, and make basic websites with HTML. You can view my projects below, or others' here.
I have redesigned my homepage in a late 2000s glassy aesthetic, inspired by the UI of Windows Vista / 7. I personally find this style very nostalgic, invoking childhood memories of using these operating systems, although others (Louise) think it looks ugly and dated. If you prefer the more modern design of the old homepage, you can still view it here.
Click on the large tile with the project name to visit the project page. Press the blue question mark button to see a description of the project. Press the yellow star button to favourite the project, making it appear at the top of your list. Press the green eye button for a preview of the project. Press the red X button to delete the project from your list (this does not save).
Green projects are complete: everything planned has been implement and works mostly as intended. Yellow projects are unfinished: some of the intended functionality exists, but I plan to do more in the future. Red projects are abandoned. They are unfinished, but I am not likely to return to work on them.
Blue-glass projects are mandatory, and were completed in Computer Science lessons or as homework assignments. They are often relevant to content learned in class, but were completed at home. Yellow-glass projects were not assigned at all: I worked on them myself for fun, as programming practice or to solve other problems computationally.
NEA.
My first experience of programming was with Scratch, a simplified block language designed to teach beginners the fundamentals of coding. This taught me about the basics of sequential programming, conditional branching and iteration, as well as a basic introduction to data types. I used Scratch for quite a long time, making some relatively complex projects, but while it is very easy to make sprites move across the screen, doing anything useful with variables, lists or functions was more complicated than it should be.
In 2015, I went on a 5-day course to learn how to use the Roblox Studio game engine. This makes it easy to create meshes and handles physics and server management for you, making it straight forward to create a basic game with little coding. Although slow at first, I did gradually start to learn to use Lua scripts to add more complex functionality. However, questionable business practices from Roblox have left me with a sense of hopelessness using the game engine, and I have mostly moved on from this now.
In 2018 I joined secondary school, and began having regular computer science lessons every 2 weeks. In year 7, we spent a short while using C# to make simple text-based programs, though I did not learn enough to make anything more than this.
In 2020 and 2021 amongst the COVID lockdowns we learned how to use p5js, a JavaScript library similar to the HTML canvas 2d context, which allowed us to draw shapes and make flags. With all my free time, I was inspired by a YouTube channel called The Coding Train (who was also using p5js) to use JavaScript to make more intelligent and interesting programs. I was particularly inspired by his Minesweeper Video and tried to make a version of my own, but with a poor understanding of prototypes and classes, it was not succesful.
At the end of 2021, I started the GCSE course, and we would be learning Python for use in the exam. I gradually worked through exercises on CSNewbs when not learning new content.
Nearer the end of the course, our teaching was disrupted, and we had many lessons where we were left to get on with individual coding. My friend Holly decided to work on making an online chatroom with a p5js HTML client and a Node js server, and this inspired me to try making minesweeper again. This time I would use try using classes to represent the tiles. The code had lots of faults and inconsistencies, but it did eventually yield a working game! It was also during this time that I had the idea of a procedurally generated board, to enable the game to expand infinitely.
Upon arrival to CMS, I was already quite well acquainted with JavaScript, but I had not learned about its context in the web environment, having mainly been running it through a repl. Learning HTML has been incredibly useful to make websites and enable JavaScript to be run in the browser as it is designed to. I have learned a lot about OOP, persistent storage and client/server applications, and look forward to enhancing my knowledge of JavaScript and web development further in the future.