self algorithm study