Introductory computer programming courses are inherently challenging for a variety of reasons. With increased demands for online delivery, the use of effective technologies, materials, and methods that best support online learning is essential to maximize student success. This article describes a recent study conducted at our institution with an overall objective to improve the design and online delivery of a foundational course in Java programming. The online course included a variety of technologies and materials intended to improve student learning outcomes, including an online synchronous interaction component similar to teleconferencing. A comparison of students' backgrounds, perspectives, and outcomes in an online section of the course compared to a benchmark face-to-face section was conducted using various evaluation methods. The results indicated that online synchronous sessions and several other aspects of the course were beneficial toward improving online learning. Results of the study, conclusions, and other issues warranting further consideration are described.