|
There is a currently a large push from tech companies, colleges, and CS teachers and the CSTA to increase the number and diversity of students in both programming and computer science. The College Board discontinued their AP CS B exam because not only was enrollment unimpressive, but the overwhelming majority of the students taking it were white and asian males. There's a lot of pushes out there to make programming accessible: Randy Pausch and CMU had Alice (which feels painfully abandoned, unfortunately), MIT has Scratch, which Berkeley extended into SNAP/BYOB. All of these are really offshoots, in their own way, of the promise of LOGO: to introduce children to a programming language that is both conceptually deep and initially accessible. The painful bottom line, though, is that many students in the new generation don't see the need for computer programming. They didn't grow up with the command line, or even with finicky and annoying Windows 95 programs. They have computers that do everything they want, and the computers generally do it very, very well. They use Facebook and Blackberries and iPod touches and don't worry about where the software comes from. The experience has generally been so seamless for them that they haven't had to think about it. Try asking a teenager how many people they think work for Facebook, or Amazon, or Google. I used to teach both Math and Computer Programming in a high school. Now I teach Math full-time, and my math classes are twice as big as they used to be. With budget cuts and the current economy/political climate, continuing an old elective program is hard enough, let alone starting a new one. |
Anything that is an elective gets pushed to the side in schools. One way to make it easier to teach programming in schools is to identify ways to reach core academic subjects through programming. One way I am doing that is allowing anyone who has had an intro programming class to do programming-related assignments in math class. For example, students can work through Project Euler challenges to earn math credit. We need flexible ways to grant credit; for example, a student who has worked through so many Project Euler problems should be able to earn a certain amount of math credit, regardless of whether it was done in school or at home.