GradeStyle: GitHub-Integrated and Automated Assessment of Java Code Style
Every programming language has its own style conventions and best practices, which help developers to write readable and maintainable code. Learning how to write high quality code is an essential skill that every professional software engineer should master. As such, students should develop good habits for code style early on, when they start learning how to program. Unfortunately, manually assessing students’ code with timely and detailed feedback is often infeasible, and professional static analysis tools are unsuitable for educational contexts. This paper presents GradeStyle, a tool for automatically assessing the code style of Java assignments. GradeStyle automatically checks for violations of some of the most important Google Java Style conventions, and Java best practices. Students receive a report with a code style mark, a list of violations, and their source code locations. GradeStyle nicely integrates with GitHub and GitHub Classroom, and can be configured to provide continuous feedback every time a student pushes new code. We adopted our tool in a second-year software engineering programming course with 327 students and observed consistent improvements in the code quality of their assignments. Demonstration video at https://youtu.be/JN35iaBXoCk
Fri 19 MayDisplayed time zone: Hobart change
11:00 - 12:30 | Static analysisTechnical Track / SEET - Software Engineering Education and Training / SEIP - Software Engineering in Practice at Meeting Room 106 Chair(s): Marsha Chechik University of Toronto | ||
11:00 15mTalk | DLInfer: Deep Learning with Static Slicing for Python Type Inference Technical Track Yanyan Yan Nanjing University, Yang Feng Nanjing University, Hongcheng Fan Nanjing University, Baowen Xu Nanjing University | ||
11:15 15mTalk | ViolationTracker: Building Precise Histories for Static Analysis Violations Technical Track Ping Yu Fudan University, China, Yijian Wu Fudan University, Xin Peng Fudan University, Jiahan Peng Fudan University, Jian Zhang Fudan University, Peicheng Xie Fudan University, Wenyun Zhao Fudan University, China Pre-print | ||
11:30 15mTalk | On the use of static analysis to engage students with software quality improvement: An experience with PMD SEET - Software Engineering Education and Training Eman Abdullah AlOmar Stevens Institute of Technology, Salma Abdullah AlOmar NA, Mohamed Wiem Mkaouer Rochester Institute of Technology Pre-print | ||
11:45 15mTalk | Long-term Static Analysis Rule Quality Monitoring Using True Negatives SEIP - Software Engineering in Practice Linghui Luo Amazon Web Services, Rajdeep Mukherjee Amazon Web Services, Omer Tripp Amazon, Martin Schäf Amazon Web Services, Qiang Zhou Amazon Web Services, Daniel J Sanchez Amazon Alexa | ||
12:00 15mTalk | A Language-agnostic Framework for Mining Static Analysis Rules from Code Changes SEIP - Software Engineering in Practice David Baker Effendi Stellenbosch University, Berk Cirisci IRIF, University Paris Diderot and CNRS, France, Rajdeep Mukherjee Amazon Web Services, Hoan Anh Nguyen Amazon, Omer Tripp Amazon | ||
12:15 7mTalk | GradeStyle: GitHub-Integrated and Automated Assessment of Java Code Style SEET - Software Engineering Education and Training Callum Iddon University of Auckland, Nasser Giacaman The University of Auckland, Valerio Terragni University of Auckland | ||
12:22 7mTalk | The Challenges of Shift Left Static Analysis SEIP - Software Engineering in Practice Quoc-Sang Phan Facebook, Inc., KimHao Nguyen University of Nebraska-Lincoln, ThanhVu Nguyen George Mason University |