Text this: Development of Living Documents and Experimentation with the Physical World as Strategies for the Retention and Attraction of Undergraduate Students in Programming Courses