There’s a disconcerting trend of a lack of interest in Computer Science, especially at the high school level. As a completely elective course, it’s usefulness and applicability needs to be established early on to retain the interest of students.
Many educators approach this problem via concentrating on a more practical and hands-on side of programming (a tool used to explore the concepts of Computer Science), at the expense of the science of computing itself. The tradeoff is fair at an early stage of study, but it largely relies on self-motivation for success. The abstraction of science is replaced by the abstraction of purpose for trivial tasks in the practical assignments. The connection to a real world is quickly made by those with ambitions for personal projects, often fueled by an interest in video games, but otherwise it is a yet another class with little sense and more homework.
Consider — Programming is about manipulating data.
As a student, my driving force was the creation of small games and similar toy projects. Though now, outside of academic study and career work, I find myself applying computer programming (and in turn computer science concepts) to simply handle the volumes of data I come across on the day-to-day basis. I wish I had realized this back in high school.
An explosion in the amount of content, made available through the internet, makes data handling a vital skill. Though a catchier spin on this is that assignments for all the other subjects become easier. Think of dealing with a lot of information — Math assignments, research, experiments. There are a lot of instances that call for dealing with a lot of data, or a lot of repetitive tasks. Though this isn’t about avoiding homework assignments, but instead approaching them in a smarter way.
We should embrace the ability to program one’s way out of too much homework. It demonstrates the understanding of the problem’s domain.
Students have often demonstrated great levels of creativity to minimize the amount of work that needs to be done. This could very well become the driving force behind the Computer Science education, as students learn to build tools for themselves.
It’s a cross-subject scheme of learning, but if Chemistry is required for Software Engineers, then maybe there is something to it. There is little to loose from encouraging students to realize their potential, but well-roundness, motivation, interest, and ability to handle a data-heavy world stand for a lot to gain.