Neuromorphic computing systems aim to follow the design principles of biological brains to achieve performant and energy-efficient computing, by emulating its architecture and algorithm. Broadly speaking, the architecture of the brain can be thought of as its layout, optimised through millions of years of evolution but mostly static throughout the life of an individual. The algorithm, on the other hand, encompasses how dynamic changes during development lead to a functional brain, capable of intelligent behaviours such as perceiving and interacting with dynamic environments.