Font Size: a A A

Research On Development Model Of Machine Associable Algorithm Knowledge Representation On The Internet

Posted on:2014-08-30Degree:MasterType:Thesis
Country:ChinaCandidate:L LiuFull Text:PDF
GTID:2308330482483284Subject:Computer software and theory
Abstract/Summary:PDF Full Text Request
There are many online judge (OJ) systems on the Internet that provide thousands of problems for student to practice. All these resources are helpful for student programming learning. However these problems and source codes submitted by students are not organized effectively. It is difficult for student to find suitable problem to practice. One method has applied to organize the programming resources. It uses the knowledge points in the programming resources to organize the relationship among them, and then uses formal conception analysis (FCA) to generate a torturing sequence. Another method uses predefined knowledge structure to identify the high level algorithmic knowledge point in the solution report. However, these two methods are based on the predefined knowledge library. In order to get rid of restrictions of predefined knowledge library, another kind method proposed to use neural computing to discover the mainstream solutions among programming resources. However, it just obtaining the solutions among programming resources by clustering, and it cannot reflect the algorithmic knowledge features used in a source code. The machine cannot recognize the difficulty about these programming resources directly.According to the disadvantages of the methods we have mentioned above, in this article, we propose a method to use neural computing to organize these programming resources automatically. In our article, we treat C/C++ source codes as the programming resources which will be analyzed. Base on the number of algorithmic knowledge features in the solutions, we generate a sequence where the number of algorithmic knowledge features is from less to more. We obtain a tutoring sequence by associating problems with these sorted solutions, and apply it in the later teaching works. The difficulty of problem in the tutoring sequence is decreasing. We believe such tutoring sequence is useful for the programming beginner.Our work to organize the programming source codes includes 6 steps. Firstly we translate all programming source codes into abstract syntax tree by Java Complier Complier (JavaCC), the abstract syntax tree is easy to operate, and more suitable for calculation. In step 2, we cut the abstract syntax tree into several sub-trees by the sign of block ({}). We treat each sub-tree as an algorithmic knowledge feature. Thirdly, there may be many similar sub-trees after stepl, so we propose to use central sub-tree to represents the similar sub-trees. In step 3, we use Self-Organizing Map (SOM) to mining the central sub-trees from the sub-tree set and each central sub-tree represents a central algorithmic knowledge feature. In order to discover how many algorithmic knowledge features a source code may contain, we propose to use source code vector to represent a source code. In step 4, we generate the source code vector for each source code. In step 5 we use Lobe component analysis (LCA) to mining the solutions contains in the source code by machine automatically. According to the number of algorithmic knowledge features contains in a solution, we generate a tutoring sequence which its difficulty from simple to complex in the final.
Keywords/Search Tags:Programming resource, Knowledge representation, Autonomous mental developmet, Lobe component analysis, Self-organizing map, Data mining
PDF Full Text Request
Related items