the algorithms notebook