Category: Computer Science

  • Minimum Pubs for a PhD in CS?

    Some of the faculty in my department would prefer that we don’t award a PhD to any candidate who hasn’t published at least three good papers. I’m curious if this is common and if people generally have strong feelings either way about this kind of requirement? Some web searching turned up not much information: UConn…

  • Gaining Confidence in Confidence Intervals

    Many computer scientists, including myself, end up doing research that needs to be evaluated experimentally, and yet most of us have had little training in statistics or the design of experiments. We end up teaching ourselves this material as we go, which often works pretty well. On the other hand, sometimes the issues are surprisingly…

  • A Few Thoughts on Scratch

    Over the last year or so my older son, who is about to turn eight, has spent maybe one morning a month creating a video game using Scratch. This doesn’t seem like a lot of time to spend learning to program, but I’ve been trying to avoid pushing. Our usual mode of operation is that…

  • Fastest FizzBuzz

    The always-entertaining FizzBuzz problem came up again on Hacker News today, and for no other reason than I just got out from under a nasty deadline, I looked around on the net for interesting solutions, for which this Rosetta Code page is a gold mine. The Windows batch file and BSD make versions are hilarious,…

  • Writing Solid Code

    After 10 short years as a university-level CS instructor, I’ve finally figured out the course I was born to teach. It’s called “Writing Solid Code” and covers the following topics: Testing—There are lots of books on software testing but few that emphasize the thing I need students to learn, which is simply how to break…

  • How Did Software Get So Reliable Without Proof?

    Tony Hoare’s 1996 paper How Did Software Get So Reliable Without Proof? addresses the apparent paradox where software more or less works without having been either proved correct or tested on more than an infinitesimal fraction of its execution paths. Early in the paper we read: Dire warnings have been issued of the dangers of…

  • University Economics and the End of Large Classes

    I’ve been stalled on a draft of this piece for some time, but Amy Bruckman’s recent post provided the catalyst I needed to finish it up. She hypothesizes that “the future of universities is excelling at everything a MOOC is not.” Clearly universities can excel at activities that require students to be near each other and…

  • Of Course It’s an Interview

    Arvind Narayanan wrote a mostly very good piece about some things that surprised him while interviewing for faculty jobs. One of them, “it’s not an interview,” was a surprise to me as well, since it’s wrong. There’s no doubt variation among individuals, but here are a few things I try to find out during a faculty…

  • Economics of University Teaching

    Today I wanted to ask a simple, specific question: How does my salary relate to the amount of teaching that I do? Let’s take a look: I’m paid $105,000 per year, so with benefits I probably cost $150,000. Sabbaticals increase my cost by about 13%. An in-state student will pay $6500 in tuition for 26 credit hours of…

  • Modern Dataflow Frameworks Wanted

    Dataflow analysis, or static analysis, is a way to compute properties that hold over all possible executions of a program. For example, if a compiler can conclude that an expression always evaluates to the value 5, this fact can be used to avoid computing the expression at runtime. The math behind dataflow analysis is probably…