TITLE: The Program's the Thing AUTHOR: Eugene Wallingford DATE: February 04, 2008 6:51 AM DESC: ----- BODY: Readers of this blog know that programming is one of the topics I most like to write about. In recent months I've had something of a "programming for everyone" theme, with programming as a medium of expression, as a way to create new forms, ideas, and solutions. But programming is also for computer scientists, being the primary mode for communicating their ideas. To the non-CS folks reading this, that may seem odd. Isn't CS about programming? Most non-CS folks seem to take as a given that computer science is, but these days it is de rigeur for us in the discipline to talk about "computing" and how much bigger it is than "just programming". Too some extent, I am guilty of this myself. I often use the term "computing" generically in this blog to refer to the fuzzy union of computer science, software engineering, applications, and related disciplines. This term allows me to talk about issues in their broadest context without limiting my focus to any one sub-discipline. But it also lets me be fuzzy in my writing, by not requiring that I commit. Sometimes, that breadth can give the impression that I think programming is but a small part of the discipline. But most of my writing comes back to programming, and when I teach a CS course, programming is always central. When I teach introductory computer science, programming is a way for us to explore ideas. When I teach compilers, it all comes down to the project. My students learn Programming Languages and Paradigms by writing code in a new style and then using what they learn to explore basic ideas about language in code. When I taught AI for eight or ten straight years, as many of the big ideas as possible found their way into lab exercises. Even when I taught one course that had no programming component -- an amalgam of design, HCI, and professional responsibility called Software Systems -- I had students read code: simple implementations of model-view-controller, written in Java, C++, Common Lisp, or Ada! I love to program, and I hope students leave my courses seeing that programming is medium for expressing and creating ideas -- as well as creating "business solutions", which will be the professional focus for most of them. Then again, the best business solutions are themselves ideas that need to be discovered, explored, and evolved. Programming is the perfect medium to do that. So when I ran across The Nerd Factor is Huge, via Chuck Hoffman at Nothing Happens, I found myself to be part of the choir, shouting out "Amen, brother!" every so often. The article is a paean to programming, in a blog "dedicated to the glory of software programming". It claims that programming needs an academic home, a discipline focused on understanding it better and teaching people how to do it. (And that discipline should have its own conference!) In Yegge-like fashion, the author uses expressive prose to makes big claims, controversial claims. I agree with many of them, and feel a little in harmony even with the ones I wouldn't likely stake my professional reputation on.