2023–24 Projects:
The ACM Automated Software Engineering (ASE) Conference is an annual research conference dedicated to applying computer science techniques to its own development tools. Each year, a variety of papers are presented and published that demonstrate all sorts of approaches for automating software design. Here are links to lists of papers from recent years, take a look (and click the "Table of Contents" tab when you get there):
2017 2016 2014 2013 2012 2011 2010 2009 2008
This group will initially start off as a larger group of approximately 8-12 students. Each student will find a paper of interest, and present it to the rest of the group. Discussion will follow regarding the interest amongst other students and the feasibility of doing the project. After the presentations, the students will coalesce into subgroups of approximately 4 students each, depending on the scope of the projects. Each subgroup will pick one of the papers to work with, and implement the project. My expectation is that these projects will be smaller in scope than the projects undertaken by teams for other projects of 6 students; choosing something with appropriate scope will be part of the work undertaken.
It should be noted that many of these papers have a significant algorithmic component to them, and so understanding and possibly implementing AI or optimization-based algorithms will likely form an important part of the project that you'll do.
What might some of these projects be? I don't want to supply examples that you'll do, because I want the team members to find projects. Therefore, I've picked a couple of old ones (from ASE 2007) to illustrate the concept; you'll pick something more recent. These projects may or may not be sized appropriately for the team at hand; I've merely included them here to give you ideas of the sorts of things you might find.
Automated code styling: a tool to be able to automatically detect which formatting style a program is using, and then applying that style to new code. This helps keeps code in a large code base standardized across a variety of programmers. (This paper extracted from each program a number of features relevant to the formatting style, and both applied and compared a variety of supervised machine learning approaches to identify the style for each.)
Nighthawk: a two-level genetic-random unit test data generator: a tool for automated production of unit tests designed to cover as much of the code base as possible, by using constructing a genetic-algorithm approach to evolve tests.
Combined Static and Dynamic Mutability Analysis: an algorithm for being able to determine when a method's parameters might be mutated during the execution of the method. This can be used ultimately for documentation generation, debugging purposes, test generation, or other purposes. (This paper uses an approach where parameter references are modeled as a graph, and a variety of graph algorithms are used to propagate mutability status for variables through the graph.)
You'll be expected to produce the following two deliverables associated with your project:
Students will have some flexibility to pick projects that fit their backgrounds, so there is no particular expertise required.