Offline Programming Judge in python
arjoonn sharma (~theSage21) |
Holding programming contests which attract large participation quickly overloads any human mechanism of checking code. These competitions are good and in fact an absolute necessity for programmers to gain experience in my opinion. Internet based competitions are the best example. They use software written to be a good judge(eg. SPOJ) and are very popular.
During this talk I will discuss the creation of a local Judge (as opposed to an Internet based one) and my experiences with the evolution of the judge I wrote for my college. The challenges I faced and the things I had to learn along the way.
We will be writing and discussing:-
- Check scripts using python3.4 and some bash
- Participation interfaces using Django 1.7
- One slave - One master architecture to conduct checking
- Multiple slave - One Master architecture to conduct the checking
- Judge system internal communication using sockets in python3
It will not be using existing packages created for judging and will be discussing the creation of a judge from scratch. Some of the topics discussed will be:-
- Challenges in automated judging
- Language support in the judge
- Models of judging
- Methods of participation
- Types of participants seen over the years ;-)
Basic python syntax and usage.
Some familiarity with how WSGI works.
Familiarity with how sockets work.
- Completed my graduation from St. Stephen's College.
- Am currently pursuing MSc CS from IIITM- Kerala
- Am a self taught programmer.
- openJudge taught me a lot abut python and still continues to do so.