Skip to content

Algorithmic Essays

These documents provide guidance to help you write, critique, and share algorithmic essays.

We define algorithmic essays as short reports, with code, that explain and compare alternative approaches to solving a computational problem.

If you’re a student, writing algorithmic essays benefits you in various ways:

  • You reinforce your learning by explaining concepts to others and by exploring alternative solutions to the same problem.
  • You develop professional skills like problem-solving, reviewing code, working collaboratively, and writing readable, tested, documented code.
  • You learn how to use professional tools like code formatters, linters and type checkers, which improves your employability.
  • You produce an artefact (the essay) for your portfolio for prospective employers.

If you’re an educator, you can copy our resources from the GitHub repository and adapt them to your course, due to our permissive licence (see below).

Example

We provide some example essays to illustrate what they are.

While many approaches to writing algorithmic essays are possible, we recommend using Jupyter notebooks, the most widely used medium for mixing text and executable code.

If you’re a student on M269, our data structures and algorithms course, you can write an essay with your existing software and share it on the forums.

Get started (M269)

If you prefer a ‘Google Docs’-like environment for collaborative authoring and commenting on essays, we suggest Deepnote or Google’s Colaboratory (Colab for short):

  • free account
  • no software installation necessary
  • you can share your essays publicly (or just with a few people) to easily
    • receive and give feedback
    • work collaboratively on the same essay.

(We have no affiliation, commercial or otherwise, with Deepnote or Google.)

Get started (Deepnote) Get started (Colab)

Acknowledgements

This project was partly funded by the UK’s Council of Professors and Heads of Computing, under the Special Projects grant scheme, in May 2023.

Licences

The code and text in this repository are Copyright © 2023–2024 by The Open University, UK. The code is licensed under a BSD 3-clause licence. The text is licensed under a Creative Commons Attribution 4.0 International Licence.