1. Introduction
According to the U.S. Department of Labor, by 2012 30% of new jobs and nearly 8% of all U.S. jobs could require programming skills [1]. This is a dramatic shift for a skill that less than a million people had 10 years ago. Now, an increasing number of end-user programmers control manufacturing robots, create spreadsheets, and design interactive prototypes.