how to build your own site

STUDENT CODE ANAYSIS

Teaching Assistant @ Foundations of Computational Data Science (11-637)

  1. RESEARCH BACKGROUND-  Learning to program is considered a difficult and challenging task for a consid-erable number of novice programmers. One of the reasons for this challenge is the multiple skills that students have to master in order to be able to build programs. Besides, most of the current code grading system has major flaw to evaluate student coding performance. It is highly sensitive to minor changes: a small bug would result in score dropping to zero, which results in a student loss confident easily. Thus, it is an ergent need to build up a more reliable code evaluation method that gives correct feedback to students' learning process. 
  2. GOAL-QUESTION CODE METRIC - Based on the GQM model and the learning goal of FCDS, on the goal level, we defined the goal as measuring the trend of code improvement throughout the submission. On the question level, we raised 4 questions following the goal: 1) is there improvement of computational efficiency? 2) is there improvement of maintainability? 3) is there improvement of cohesion? And 4) is there improvement of simplicity? On the matric level, we defined 5 simple parameters that answer the 4 questions quantitatively, they are: numbers of for/while loop; numbers of if loop; unique operators & operand ratio; the number of sub-functions; the number of lines. On the implementation level, we currently utilized the existing 3 measurement indexes:  1) cyclomatic complexity, which measures the number of linearly independent paths through the code;  2) Halstead Volume, which calculates that calculates operators-operands ratio that approximates the size of elements and vocabulary; 3) Maintainability Index, which is a combination of Halstead Volume, Cyclomatic Complexity and Lines of code.
  3.  METRIX VISUALIZATION - Giving immediate feedback has been proven to boost learning outcomes (Kluger & DeNisi, 1996). The advantage of coding assessment is that it is capable of giving immediate feedback. Therefore, we designed a real-time feedback dashboard for students to receive immediate feedback relating to the evaluation matric.Students receive immediate feedback on the Halstead volume, maintainability index, cyclomatic complexity, and score of each submission that helps them reflect on the code and identify the problem.