Compy Ed: Blogging about Computer Science Education

Sunday, February 11, 2007

Developing Software

Filed under: computer science, education, politics — compyed @ 6:37 pm

Most intro programming courses are about programming and not much about developing software.  Thus, the focus is often spent on covering the syntax of the language (and sometimes not even that, as teachers are often happy saying students can look up the syntax–strange how English teachers never say that) and on solving simple problems.

To be fair, we all have to start somewhere when we learn how to program, but many teachers of programming are only familiar with programming in the small, how to solve tiny problems.

I once read Donald Knuth talking about computer science.  To him, computer science was not about programming, per se, it was about thinking algorithmically.  But he’s wrong, or at least, partly so.  We can solve some algorithms isolated from everything else, but really, people usually program much large problems.  We’re not interested in quicksort by itself.  We’re interested in solving a problem which has a tiny component requiring sorting.

The hardest part of developing software, other than solving the problem at hand, is deciding what should be solved and evaluating whether the solution, given time and other constraints, makes sense or not.

In principle, this is what software engineering purports to teach.  While I realize that teaching software engineering to students who don’t know how to program is analogous to talking about plot and character development before someone understands the grammar of a language, it’s still important enough to consider.

Here’s an exercise for you to try.  Ask yourself what you think a good software engineer needs to learn.  Then, pretend you are chair of a department with a good deal of power.  Decide which courses students should take, and which courses will cover the content needed for them to succeed.  Compare that with your current curriculum and see how well it aligns.

Software development is a work in progress, and as such, teachers of programming need to understand where the state of the industry is, and decide whether what we teach can be better aligned to what the industry needs.

Sunday, November 19, 2006

On Education Blogs

Filed under: computer science, education, politics — compyed @ 2:39 pm

I just caught something in the Washington Post.  Jay Mathews, a writer for the Post, has a column called Class Struggle, which delves into education issues.  Recently, he asked what the best education blogs are.  Now, I can’t say I read Mathews columns with any sort of regularity.  Indeed, I only recall reading it once or twice.

But I would have to imagine that education blogs are about the education business, with topics like vouchers, educating in poor neighborhoods, and so forth, being common topics.  The actual act of educating is not discussed much, which is rather amazing.  The closest analogy I can think of this is a newsgrou, which I recall was devoted to fitness and bodybuilding.  However, most of the discussion centered on performance enhancing drugs, which, while relevant, seemed to miss the central point.

Similar, pedagogy seems to be a topic that’s rarely discussed.  Articles dance around the act of educating, and focus on the infrastructure of education.

I wonder how hard it would be to simply blog about education and educating.

Blog at WordPress.com.