A Programmer Self-training System with Programming Skill Evaluation, Personalized Task Recommendation and Automatic Contest Generation

From ICPC
Jump to: navigation, search

Title

A Programmer Self-training System with Programming Skill Evaluation, Personalized Task Recommendation and Automatic Contest Generation

Abstract

Background

Although many current online judge systems provide stable and efficient services in automated programs judging, it seems that there is limited help to the learners since few study suggestions is given to them. As well, the utilization ratio of problem resources is quite low.

To solve these problems above, we have implemented a system for self-training, which is based on our existing platform — OpenJudge, a new version of POJ (Peking University Online Judge).

The new system has three part: Programming Skill Evaluation, Personalized Task Recommendation, and Automatic Contest Generation.

Preparation

There are up to 2267 problems in our system. We have graded all of them from Grade 1 to 5 according to the levels of difficulty. And these problems are also been classified into ten algorithm categories: Basic Practice, Divide-and-conquer, Greedy Algorithms, Dynamic Programming, Search Algorithms, Simulation, Data Structures, Graph Algorithms, Computational Geometry, Number-theoretic Algorithms.

Programming Skill Evaluation

We evaluate learner’s programming skill in three independent perspectives: Accumulation, Challenge, and Contribution. Accumulation reflects how hard the learner is in usual. Challenge reflects his performance during contests. And Contribution reflects how much he have helped, not only for other students but also for our system.

Personalized Task Recommendation

At first, we determine the learner’s grade by examining into the problems solved by him. Both the difficulty levels and the algorithm categories of these problems are considered. After that, we select some problems of suitable difficulty level then recommend them to the learner. The categories of these problems are ensured to be unduplicated.


Automatic Contest Generation

We also implement an automatic contest generator for generating private contests for learners. Learners can use it to test themselves, and experience the exciting contests whenever they want. The automatic contest generator is used for not only testing oneself but also generating examinations for course teaching. It will save teacher’s time from problem selection, and make the best use of the problem resources.

Areas Included

  • Competitive Learning Infrastructure
    • On-line Problem Sets
    • Virtual Competitions
  • Pedagogy
    • Teaching Computer Science
    • Problem Classification