back-end computer algorithms