Software Engineering Education

Sep 22, 2024 · 1 min read

I am interested in helping students learn how to develop software using cloud technologies and how to work effectively in teams.

Potential Projects

I am looking to work with students on the following projects related to this.

Instructor GitHub Dashboard

One challenge for faculty working with multiple students teams is that it is hard to keep track of what each of the teams is doing at a detail level. It would be especially useful to highlight potential problems, like teams that are not committing code, teams with branches that have significantly diverged, or situations where work is unbalanced (e.g., one student has not committed, or has only made minor changes, while another has made significant changes over time). This would be built as a website using the GitHub API.

Git Assistant

It would be useful to have a version of Git that also provides feedback to students and software professionals first learning to use Git. This could include feedback on commit message quality as well as feedback on the commit itself (e.g., is it an atomic commit, or does it include multiple unrelated changes)? To build this, we would need to use NLP or ML techniques as well as some form of program analysis if we want to focus on code characteristics.