Navigation auf uzh.ch
The research project is the primary artifact of the course; the outcome of all projects will be a research paper (5 to 10 pages). Depending on the class size, the projects may be completed in groups of up to two. The intent of the project is to identify one or more research questions, investigate them and report the results in a scientific manner.
Project Proposal Draft A one-page proposal for your project to me. The course assistant and I will provide you feedback in a one-on-one meeting. The proposal has to include the problem/motivation for the project, the research question(s) and how you aim to address the research questions(s). This draft is important to be able to discuss the project ideas and help you express your ideas and us to understand what you are trying to do. However, the content and ideas are a lot more important than the formatting.
Final Project Proposal A one- to two-page proposal for your project. Basically, this will be a revised version of your original draft, including the comments from the meeting.
Proposal Presentation. A short (5 to 10 mins) presentation of the proposed project to the class. The goal is to share and discuss your ideas with multiple people.
Intermediate Drafts of the Report. To provide feedback on your results and write up early on, there will be intermediate steps for writing the final project report.
Written Report. The report includes your research project, the motivation, the research question(s), and the related work. The required length of the written report varies from project to project; all reports must be formatted according to the ACM format and submitted as a PDF in ACM paper format (two-column style).
Project Presentation. A presentation of the completed research project to the class.
Below is a list of possible project topics, basically data sets and some questions. This is a good starting point for a project and you can choose one of the provided data sets. You can also come up with your own idea and we are happy to guide you.
In addition, there is the opportunity to develop tool support for developers, e.g. something for the IDE or independent of the IDE that is based on developers' work patterns or biometric data and that can support developers in their work. We have sensors and monitoring tools that you can also borrow for this and possibly extend (the tools).
Two types of biometric sensors (see below) are available to use in a hands-on project. You would develop a small tool using data of one of the sensors, e.g. a visualization of an interesting aspect of the sensor data or an approach to analyze an aspect of development using the biometric data. You will then evaluate your tool in a small user study.
The Muse EEG sensor captures the electrical activity of the brain, which can indicate certain mental states as high cognitive load or relaxation. More information can be found here.
The Polar H7 is a chest band that measures heart related data, as the heart rate or heart rate variability. This information could for instance be used to detect the stress level of a software developer. More information can be found here.
This data set was captured from a range of up to 20 developers over a one to two week period. We installed a small monitor on their machines, tracked their computer interactions, and at the same time frequently asked them to asses various aspects, such as their productivity or emotions over the past hour and to describe the tasks they worked on. The data logged by the installed monitor contains events for each switch between different applications and it also contains information on the amount of keyboard and mouse usage. There is a lot of questions one could look at with this data and if you want more information on the data set, please just talk to us. A few of the possible research questions are:
For a range of developers, we collected biometric data for a two week period and at the same time frequently asked them to assess various aspects, such as their productivity or emotions over the past hour. In several cases we also collected computer interaction data which allows to ask even more questions on the data set and see which kind of collected data is best to predict certain aspects of a developer. Possible research questions are:
This large-scale dataset contains code metrics which have been computed for ~1.3 Million revisions of 300 Java, C# and JavaScript projects. As such, it describes the evolutionary history of these projects at a very fine-grained level.
For each project, the dataset contains two main pieces of information: the commit history (dates, names and other metadata for each commit) and the actual code metrics for every revision of each project. Detailed metrics for each program entity (files, classes, methods, etc.) are stored in a sparse data structure spanning the entire history of the project. The data has also been aggregated across all entities for each revision (e.g. total complexity of the project). The following metrics are available: cyclomatic complexity, control flow nesting level, number of unique control flow paths, class-, method-, method parameter-, statement-, variable-, and AST vertex counts.
This dataset is interesting because it allows a very fine-grained analysis of the evolution of a large sample of projects. Furthermore, enables a comparison between projects written in different programming languages. Various classification and clustering analyses can be performed on this data. The following questions may serve as a starting point when analyzing the data:
For a set of 12 professional developers and 10 student developers that each worked on 3 change tasks, we collected data on their eye gaze--where they looked--as well as which code they selected or edited within the IDE. A paper that presents one kind of analysis on the data is presented in Tracing Software Developers' Eyes and Interactions for Change Tasks and there is several further research questions that would be interesting to investigate. Here are a few of them:
The data set includes interactions from developers on 58 change tasks of the project Mylyn.Context. The data set includes the type of the interaction (whether it was an edit or a selection), the start and end time, the identifier of the element and the origin of the interaction. A similar data set was used in Developers' Code Context Models for Change Tasks. Possible research questions are: