This US News article points out a growing interest among colleges and universities to make basic computer science a required course for all students. Georgia Tech already does this. The article points out that universities not normally considered to be science/technology-heavy are leaning this way too:
Every student at Montclair State University in New Jersey must complete a computer science in order to graduate. For most students, that course is Introduction for Computer Applications: Being Fluent with Information Technology. (Music majors take Music and Computer Technology I.)
The course is designed to teach students majoring in subjects such as fashion, dance, or art history about network security, artificial intelligence, databases, and e-commerce, says Michael Oudshoorn, chairman of the computer science department at Montclair.
“It’s not aimed at making them experts; it’s aimed at making them aware,” Oudshoorn says. “They do live in a digital age … They have an obligation to know something about the technology.”
We’ve discussed this before here at the blog, and I suggested that the definition of “programming” be broadly defined to include any creative work that gets a computer to work beyond its basic feature set. So, for example, learning to use MS Word to write a paper — while that’s important — would not count as “programming”, but learning to typeset a research paper in \(\LaTeX\) with a bibliography would (probably) count. Georgia Tech’s approach of using of media computation would seem especially attractive to students who wouldn’t normally count themselves among CS enthusiasts.
This is a nice idea, the spirit of which I wholeheartedly endorse. But I also wonder if making CS a required subject really gets the job done. There’s a tendency among higher ed administrators and faculty to think that if students need to learn something, it’s enough to simply require a course in it, and at that point it’s the students’ problem. I call that the “infection” approach to learning — “expose” a student to a subject and they “get” it. I think we all can see that this isn’t enough. If CS is done early, and then integrated often into their subsequent coursework (like we expect writing, for instance, to be treated) then students will probably learn it. Otherwise probably not.
What do you think? Is requiring CS for all students a good idea? If so, in what way should it be built in to the rest of a student’s curriculum?