Amelioration of Teaching Strategies by Exploring Code Quality and Submission Behavior

Online learning platforms provide an opportunity to better understand students’ weaknesses by tracking both their learning behavior and knowledge. This information can then be used to assist teachers in making instructional decisions and to further guide those who are at risk of failure. In this paper, we tracked student learning data from a C++ programming course over a whole semester of their freshman year via the Trustie platform. A total of 17,854 code submissions were collected. We then used CppCheck, SonarQube and Trustie to capture the quality characteristics and submission characteristics of the code, including lineOfCode, cyclomaticComplexity, codeSmell, syntacticError, averageScore, submission, and logicError, and analyzed the impact of code quality on the assignment work results. Several factors were discovered that we believe can help teachers to develop more effective teaching strategies.

[1]  Alexander Serebrenik,et al.  Empirical Analysis of the Relationship between CC and SLOC in a Large Corpus of Java Methods , 2014, 2014 IEEE International Conference on Software Maintenance and Evolution.

[2]  Susan Mengel,et al.  An Empirical Study of Iterative Improvement in Programming Assignments , 2015, SIGCSE.

[3]  Robert D. Macredie,et al.  Teaching Introductory Programming: A Quantitative Evaluation of Different Approaches , 2015, TOCE.

[4]  James B. Fenwick,et al.  ClockIt: collecting quantitative data on how beginning software developers really work , 2008, SIGCSE 2008.

[5]  Stephen H. Edwards,et al.  Web-CAT: automatically grading programming assignments , 2008, ITiCSE.

[6]  David Hovemeyer,et al.  CloudCoder: building a community for creating, assigning, evaluating and sharing programming exercises (abstract only) , 2013, SIGCSE '13.

[7]  Jan Hauke,et al.  Comparison of Values of Pearson's and Spearman's Correlation Coefficients on the Same Sets of Data , 2011 .

[8]  Johan Jeuring,et al.  Code Quality Issues in Student Programs , 2017, ITiCSE.

[9]  D. Brown,et al.  WebCAT: the design and implementation of the Web-based crime analysis toolkit , 2003, IEEE Systems and Information Engineering Design Symposium, 2003.

[10]  Ma. Mercedes T. Rodrigo,et al.  Predicting at-risk novice Java programmers through the analysis of online protocols , 2011, ICER.

[11]  Michail N. Giannakos,et al.  Introductory programming: a systematic literature review , 2018, ITiCSE.

[12]  Dianne Hagan,et al.  Teaching Java with the BlueJ Environment , 2000 .

[13]  José Nelson Amaral,et al.  Syntax errors just aren't natural: improving error reporting with language models , 2014, MSR 2014.

[14]  Markus Neuhäuser,et al.  Effective use of Spearman's and Kendall's correlation coefficients for association between two measured traits , 2015, Animal Behaviour.

[15]  David Hovemeyer,et al.  Analyzing Student Work Patterns Using Programming Exercise Data , 2015, SIGCSE.

[16]  Gregory Dyke Which aspects of novice programmers' usage of an IDE predict learning outcomes , 2011, SIGCSE '11.

[17]  Marouane Kessentini Understanding the Correlation between Code Smells And Software Bugs , 2019 .

[18]  R. Gonzalez Applied Multivariate Statistics for the Social Sciences , 2003 .

[19]  Gang Yin,et al.  Poster: Continuous Inspection in the Classroom: Improving Students' Programming Quality with Social Coding Methods , 2018, 2018 IEEE/ACM 40th International Conference on Software Engineering: Companion (ICSE-Companion).

[20]  Thomas K. Burdenski Evaluating Univariate, Bivariate, and Multivariate Normality Using Graphical Procedures. , 2000 .

[21]  Judy Kay,et al.  The Neglected Battle Fields of Syntax Errors , 2003, ACE.

[22]  Christa Boer,et al.  Correlation Coefficients: Appropriate Use and Interpretation , 2018, Anesthesia and analgesia.

[23]  Neil Brown,et al.  Blackbox: a large scale repository of novice programmers' activity , 2014, SIGCSE.

[24]  Ewan D. Tempero,et al.  CodeWrite: supporting student-driven practice of java , 2011, SIGCSE.

[25]  Cláudio Sant'Anna,et al.  Investigating the relationship between bad smells and bugs in software systems , 2017, SBCARS.

[26]  Michael Kölling,et al.  Introducing unit testing with BlueJ , 2003, ITiCSE '03.

[27]  Gang Yin,et al.  TRUSTIE: A Software Development Platform for Crowdsourcing , 2015 .

[28]  Sue Fitzgerald,et al.  Debugging: finding, fixing and flailing, a multi-institutional study of novice debuggers , 2008, Comput. Sci. Educ..

[29]  Emily S. Tabanao Identifying At-Risk Novice Java Programmers Through the Analysis of Online Protocols , 2009 .

[30]  Dianne Hagan,et al.  Teaching and Learning with BlueJ: an Evaluation of a Pedagogical Tool , 2004 .

[31]  Ryan Shaun Joazeiro de Baker,et al.  Affective and behavioral predictors of novice programmer achievement , 2009, ITiCSE.

[32]  Nick Parlante Nifty reflections , 2007, SGCS.