Felleisen, M., R. B. Findler, M. Flatt, and S. Krishnamurthi. “How to Design Programs: An Introduction to Programming and Computing”. Education Review, June 2015, doi:10.14507/er.v0.173.