4.4.1.2 Following and writing algorithms