Research Workshop in Automated Software Defect Detection

This semester will be a project-based workshop on the actual process of research. Through a guided, hands-on experience, the goal of this course is to give you first-hand experience with both the nature and process of a certain type of research in Software Engineering. (As "certain type of research" suggests, there are many ways to do research, and the field of Software Engineering is borad. The style and topics of research demonstrated in this workship will obviously be biased by the instructor.) In this course, you will: Of course, a hallmark of research is risk-taking, thus it's quite possible that you'll fail to prove your hypothesis or otherwise generate interesting results. Such an outcome is fine. At the same time, an important goal is to help you learn to scope a project, that is, we'll be actively avoiding the failure-mode in which you fail to run an interesting experiment because you simply ran out of time.

After the first two- to three-weeks of the course, class time will be devoted to presentations and discuss of student projects. You'll be expected to lead some of these discussions and participate in all of them.

The projects in this class will be restricted to the area of "Computer-Assisted Software Defect Detection." The goal of this line of research is to build systems that assist developers find defects in their software. This line of research is typically focused on the class of defects called "bugs" - defects that cause the program to crash or to otherwise violate its functional specification - versus defects in other areas (e.g., the functionality, usability). Examples of this type of research include:

You'll be encouraged to work in groups of two, although other arrangements will be satisfactory.