Learn to program was designed to be an interactive online learning application a la code academy, try ruby, and git online.
Its development revolved around the principle of gamification, reward, and encapsulation. The material was based on an open-source book by Jonathan Bartlett, Programming from the ground up, a tutorial on programming, OS theory, and architecture through assembly. The book's approach to these low-level topics were enticing, and I felt it would be useful as an online course.
I worked to gamify the material in a way that would promote completion and eagerness to complete and learn.