Month: December 2012

  • Operant Conditioning by Software Bugs

    Have you ever used a new program or system and found it to be obnoxiously buggy, but then after a while you didn’t notice the bugs anymore? If so, then congratulations: you have been trained by the computer to avoid some of its problems. For example, I used to have a laptop that would lock…

  • Is the Browser the New OS?

    Yes, this is an old question. I still think it’s interesting. Disclaimer: I haven’t tried out a Chromebook yet. First, let’s look at the situation as of late 2012. The applications I use generally fall into three categories: Web-based. Native, but easily available on Windows, Mac, and Linux. These include a file browser, a shell, Emacs,…

  • Software Testing Using Easy Cases

    Chapter 2 of Street Fighting Mathematics is called Easy Cases. The idea is very simple: A correct solution works in all cases, including the easy ones. Solution 2 in this writeup of the napkin ring problem is a fun example of applying this principle. Easy cases can be exploited for software testing as well as…

  • Oracles for Random Testing

    Random testing is a powerful way to find bugs in software systems. However, to actually find a bug it’s necessary to be able to automatically tell the difference between a correct and an incorrect execution of the system being tested. Sometimes this is easy: we’re just looking for crashes. On the other hand, there are…

  • How Does Formal Verification Affect Software Testing?

    This has been a difficult piece to write and I’ve already deleted everything and started over more than once. So, I’m going to take the easy way out and structure it as a sequence of questions and answers. What does formal verification mean? Something like “using mathematical techniques to convincingly argue that a piece of…

  • Raspberry Rockets

    One of the things I most enjoy about teaching embedded systems is that the students show up with a very diverse set of skills. Some are straight-up CS, meaning they can hack but probably are intimidated by a breadboard, logic analyzer, or UART. Others are EE, meaning that they can design a noise-free circuit or…

  • 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…