Analyzing the code of 40,000 students and graphically making it awesome



Lecturer at Stanford University will do class onlineCoursera Machine LearningWhat will happen if we visualize the same programming that 40,000 students have gone as an issue for? An attempt to "Code Webs"As if it is a terrible graphic like an abstract painting completed.

Code Webs - Visualizing 40,000 student code submissions
http://www.stanford.edu/~jhuang11/research/pubs/moocshop13/codeweb.html

So this is a figure that visualized the code of 40,000 students. as ifAbstract paintingsIt looks like.


The graphic is color-coded according to the result of the unit test, and the submission drawn in red means that it passed all unit tests.


Nodes represent each submission and edges are drawn between syntactically similar submissions.


The bundle of nodes of the same color means that the same method was used in the unit test.


To create a graphic, first analyze the code submitted by 40,000 students,OctaveIn the source code moduleAbstract syntax tree (AST)Change it to data structure. AST can visualize what kind of structure it is when you delete unnecessary information such as blanks, comments and variable names from the code written by students.

Next, estimate the editing distance between the paired tree and the single tree. The edit distance is calculated by counting the minimum number of operations such as deletion, insertion, and replacement that are necessary to convert one of the trees to the other. The smaller the edit distance between ASTs, the more meaningful it is, and the one whose editing distance has reached the limit was made the end. In order to eventually visualize the graphGephiWe used that.

In addition, detailed data can be seen from the following PDF file.

(PDF file)Moocshopsubmission.pdf
http://www.stanford.edu/~jhuang11/research/pubs/moocshop13/moocshopsubmission.pdf

I created graphics at Stanford UniversityJonathan ChungMr.,Chris PiechMr.,Leonidas J. GuibasProfessor, graphics will be used in various ways, such as finding a typical approach to problems in the future.

in Note, Posted by darkhorse_log