Tools for a flipped computer programming classroom

The traditional method for teaching a computer programming course is to have the instructor present language syntax and semantics in a classroom lecture and have the students work on programming exercises as homework.  In a flipped classroom, the students learn about programming language syntax and semantics at home through online lessons and courses and come…