Many institutions of higher education are significantly expanding their online program and course offerings to deal with the rapidly increasing demand for flexible educational alternatives. One of the main challenges that faculty who teach online courses face is determining how to engage students in an online environment. Teaching computer programming effectively requires demonstration of programming techniques, examples, and environments, and interaction with the students, making online delivery even more challenging. This paper describes efforts to engage students in an online introductory programming course at our institution. The tools and methods used to promote student engagement in the course are described, in addition to the lessons learned from the design and delivery of the online course and opportunities for future work.