Observation 1: Programming is taught as a skill that needs to be used.
The outcome of a programming course is to see whether or not you can actually write a program that works. Multiple-choice tests might check whether or not the students understand the theory but writing a program that actually runs is how most courses are evaluated. This also holds true for learning a foreign language but speaking and writing tests are much harder to evaluate than whether a program runs or not (unfortunately).
Programming courses also do a good job of starting with simple concepts that are then used to construct programs of increasing complexity. Sound familiar?
Observation 2: Programming is mainly taught to people who plan to actually write programs.
Humanities majors are not required to take basic programming courses at most schools even though they would undoubtedly benefit from them. That being said, since computer science majors are the students who are mainly enrolled in programming courses they enter these courses with a reasonably high level of motivation to learn the content and the skill. Should English courses be required for all students in Korea?
Observation 3: Teaching a foreign language as an exercise is not motivating by itself.
Requiring students to study a foreign language because it may help them in the future is not motivating by itself. Additionally, if students are not given real opportunities to use the language on a regular basis it will feel like an exercise that should only be mastered until the time of the test at which point it can be forgotten. Too much content is recycled year to year because it isn't being used outside the classroom.
Obviously, there are some limitations when it comes to teaching a foreign language the way we teach programming but it sure does seem like a good example to benchmark from. Thoughts?