The reason I think these classes should be mandatory and simple is to get people who otherwise would not have tried it engaged. How many people out there have the potential to be excellent engineers but never get into it because they are not exposed to it? That's why I think it doesn't matter how much the students actually learn about programming in these basic classes. It's just a teaser to get those who normally would not have signed up for a programming course a chance to try it out to see if it's actually a good fit for them. In addition, I do not think it's possible to turn out great programmers from an academic institution. The best that I have worked with have a passion for it and would have been great regardless of their education. However they all have to have been exposed to it at some point for it to click for them and for that interest to turn into a passion. That is the opportunity we should be giving to everyone.
But then again, lets say there is a mandatory "Intro to JavaScript Programming" course at an average American high school. You take it after Algebra, and you have to get at least a C average in the course to graduate. Lets say the class consists of 35 kids. That's a lot of kids, but computers are expensive, and everyone at school has to take this class one year or another before graduation. How many do you think are going to have the "click" with programming that would make them want to pursue it? Not all of them, and by that I mean only a few. Nothing at all is wrong with not liking programming, but do you think if Jonathan P. Doe is in a class with a buddy or two who aren't good students and are only taking the class to graduate that they will behave? They will probably not. And when you have a classroom like that nothing gets done, distractions are made, and the class lags behind severely. The teacher might have to teach Randall P. Roe and 7 other kids a different way than Amy P. Soe and 11 other kids. What happens if Jonathan P. Doe is non-stop screaming with so many people that the teacher loses control? What do you do if Sarah P. Boe finishes all of her assignments early and spends the time undermining the teachers efforts? What do you do if all but a few kids are ruining the class for everybody? I'm sorry, but I don't see how that could work. I know a high school computer teacher, and my examples come straight from things they have said go on in their classes. Because they are mandatory and not leveled like the rest of classes, they become classes where no concentration or study is done whatsoever. That's why, IMO, if programming has to be taught, it should be an adjunct to math courses like Advanced Algebra, Calculus, but mostly Discrete/Analytical Mathematics. Even then, I don't believe enough people would even truly like it at all for such a program to be effective.
These are problems in every class and is in no way unique to programming. An introductory programming class should't be any different from a typing class which is also required in most schools now and requires computers. As I said, the primary reason I want it required is to give every student the opportunity to experience it and decide if it's a course they would like to pursue. It very well could be the opportunity they need to turn their lives around.