This article discusses why the proportion of college students majoring in computer science changes over time. I think the explanation quoted below is interesting -- that "computer literacy" has replaced efforts to teach "computer programming". I see that in the curriculum of the elementary and middle schools attended by my children. For one of the middle school grades, the technology curriculum is centered on using multimedia to create a public service announcement. I understand that many more people will use word processing, spreadsheet, video editing, and other software than will write code to create such software. But many gifted children (and "normal" children with a relative strength in algorithmic thinking) are capable of learning to program in elementary school and middle school, and the schools are not doing much to support them. Part of the problem is that many elementary school middle school children do not have the mental maturity to program, and teaching advanced subjects to some students but not others is anathema to many educators.
http://chronicle.com/blogs/data/2014/06/23/is-there-a-crisis-in-computer-science-education/Is There a Crisis in Computer-Science Education?
Chronicle of Higher Education
June 23, 2014
In the 1970s and 1980s, many elementary, middle, and high schools taught computer programming to students, according to Joanna Goode. As an associate professor of education studies at the University of Oregon, Ms. Goode has researched access for women and students of color in computer science.
“But, as the PC revolution took place, the introduction to the CD-ROMS and other prepackaged software, and then the Internet, changed the typical school curriculum from a programming approach to a ‘computer literacy’ skill-building course about ‘how to use the computer,’” Ms. Goode wrote in an email.
That could explain the rise in computer-science degrees in the early 80s—students who would have been in grade school in the 70s and had some computer-programming education—and the drop in the mid-90s—the students who were in elementary school in the 80s and learned only how to use a computer, not how to program one.