Algorithm design practice for collegiate programming contests and education. (2018)