I love a good discussion. Pros and cons and honest and hopefully friendly discussion of issue with different opinions make for good learning experiences. One of the things I would like to do should I ever get a full-time advanced computer science course is to ask students to study some controversial topics in computer science and write up their own researched opinions. Important issues need to be thought about and discusses seriously and not just have answers blindly accepted. And of course we all know how much emphasis there is lately in bringing writing and related literacy skills into more of the curriculum. This seems like a natural fit.

I came across two lists of “controversial programming opinions” with one post named “20 controversial programming opinions”. It has some 76 comments as I write this post. A second post called “Hopefully More Controversial Programming Opinions” adds to the mix. Personally I didn’t find a lot to disagree with in the first post. The second one I found several things to disagree with. The big thing I disagree with in the second is:

Computer science should only be offered as a minor. You can major in biology, minor in computer science. Major in art, minor in computer science. But you can't get a degree in CS.

I think that is too narrow a few. I can see requiring a minor in an “unrelated area.” I can even see, in some cases, requiring a second major. Although admittedly fitting a second major in with a CS major is just about impossible in four years of university.

Besides the controversies listed in these posts there are some that a particular to computer science education. The ever popular What Programming Language to Teach First? comes to mind. And the objects first, object late, or object never discussion (see Objects When? If Ever?) never seems to get old.

Assembly language is an additional source of controversy. Does anyone really need it anymore? Should it be reserved to people with special careers or paths of study in mind or should one have some experience in order the call themselves a serious programmer or computer scientist? personally I believe that understanding Assembly language gives one important insights into how computers work and how to more deeply understand software concepts. Some disagree completely while still others suggest Assembly language should be the first programming language people learn! Great topic for discussion.

Do you discuss controversial issues on your classroom or work space? Does full agreement ever come out of these discussions? Love to hear about it.