There is increasing need for people, other than professional programmers to have some programming ability, for example adding some code to an Excel spreadsheet or Access database. Knowledge of programming concepts can help people understand how software packages work and make effective use of software even when no actual programming is required.
The educational value of game programming extends beyond providing an easy and interesting introduction to programming. Students learn about ICT, media and communication. Programming requires logical thinking, critical reasoning, problem identification and solving skills and persistence. Game programming develops knowledge of systems concepts e.g. coordinating timing and interactions between “sprites”, sensing and feedback.
https://ourscratchproject.wikispaces.com/Why+teach+Scratch (site shuts down July 31, 2018)