algorithm learning framework