This document discusses challenges with teaching introductory programming courses. It notes that many students enter these courses without basic understanding of loops and other fundamental concepts. As a result, dropout rates on introductory programming courses are reported to be as high as 20-40%. While programming is useful and in demand, it is not always seen as "sexy" and can be quite difficult for students. The document advocates matching course content and teaching methods to students' skills and focusing on moving students from just comprehending material to being able to generate and apply programming concepts independently in their first year of undergraduate study.