I'm a Computer Science teacher based in the UK. I double majored in Computer Science and Religious Studies at [Grinnell College](https://www.grinnell.edu/), where I studied as an international student for four years and graduated with honours in Religious Studies in 2019. After graduating, I returned to the UK and worked at a software company in a customer support role where I lived on the command line. It was here that I fell in love with writing technical documentation—and saw my pre-existing issues with capitalism and corporate structures entrenched. After three years, I left to train as a teacher. At university, my main passion was the study of religion—bringing all the tools of the social sciences and humanities to bear on a topic that shaped much of my life growing up[^1]. In my teaching, I try to bring these tools and ways of thinking to the fore, thinking beyond the limitations of the exam board specifications—and rejecting easy answers. I currently teach: - OCR GCSE Computer Science (J277); - OCR A Level Computer Science (H446); and - far too much KS3. In my free time, I enjoy playing (collecting) board and video games. I love games with pastoral and medieval fantasy themes, and have clocked an embarrassing number of hours in Guild Wars 2. ## AI usage I regularly use generative AI in my work—sometimes for editing, sometimes for creating complete resources and tools from scratch. I appreciate that the question of intellectual ownership over AI-assisted work is contentious, and I don't think it can be neatly resolved by a disclaimer. That said, here's a disclaimer. For most of my extended writing, AI's role is that of editor and proof-reader. For some resources on this site, though, the collaboration runs deeper, and untangling exactly which words are "mine" versus those of AI isn't always meaningful or possible. I'm not asking this work to be certified for assessment, so the standards I hold myself to are different from those of my students. This is not because I consider myself exempt from scrutiny, but because I am working in a different context where the need to certify every syllable as my own is absent. Regardless of how a given page came together, I stand behind its content and take responsibility for it. As an aside—you may note my liberal use of em-dashes, which many understand as typical of AI-generated work. I have been using em-dashes in my writing since long before LLMs came along and made them uncool. The correct use of the em-dash—and I shall always maintain this—is without surrounding spaces. ## Programming conventions Throughout this website, particularly in my teaching resources, I follow certain conventions. I follow these conventions for consistency with the exam board specifications that I teach. ### Python-first By default, all my code examples are in Python. I sometimes use other languages to demonstrate functionality or syntax that Python lacks or obfuscates and indicate where this happens. ### Dunder for private I use a double underscore (dunder) to show that an [[attribute]] or [[method]] is private, e.g., `self.__balance = 0`. I am aware that this is non-standard, but this is what my exam board expect my students to do. ### p_parameter In class methods, I prefix [[parameter]] identifiers with `p_` to clearly signal the difference between parameters and [[attribute|attributes]]. This is also what my exam board expects. ## Notes [^1]: My parents were ministers. I am not religious, though religion interests me greatly.