Path: csiph.com!usenet.pasdenom.info!aioe.org!news.stack.nl!newsfeed.xs4all.nl!newsfeed2.news.xs4all.nl!xs4all!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.023 X-Spam-Evidence: '*H*': 0.95; '*S*': 0.00; 'exercise': 0.04; 'output': 0.05; 'subject:Python': 0.06; 'string': 0.09; 'python': 0.11; 'checkio.org': 0.16; 'code?': 0.16; 'inputs': 0.16; 'limit.': 0.16; 'received:209.85.214.50': 0.16; 'script,': 0.16; 'thanks,': 0.17; 'tests': 0.22; 'this?': 0.23; 'questions:': 0.24; 'sends': 0.24; 'tells': 0.24; 'script': 0.25; 'correct': 0.29; 'appreciated.': 0.29; '(like': 0.30; 'message-id:@mail.gmail.com': 0.30; 'program,': 0.31; 'url:wiki': 0.31; '(usually': 0.31; 'subject:programs': 0.31; 'url:wikipedia': 0.31; 'run': 0.32; 'not.': 0.33; 'moment': 0.34; 'received:209.85': 0.35; 'test': 0.35; 'received:google.com': 0.35; 'there': 0.35; 'his/her': 0.36; 'next': 0.36; 'hi,': 0.36; 'similar': 0.36; 'url:org': 0.36; 'should': 0.36; 'application': 0.37; 'list': 0.37; 'project': 0.37; 'received:209': 0.37; 'step': 0.37; 'to:addr:python-list': 0.38; 'short': 0.38; 'to:addr:python.org': 0.39; 'how': 0.40; 'course.': 0.60; 'subject:online': 0.61; 'tips': 0.61; 'simple': 0.61; 'our': 0.64; 'provide': 0.64; 'school': 0.64; 'judge': 0.68; 'online': 0.71; 'malicious': 0.84 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:from:date:message-id:subject:to:content-type; bh=WrgCJGiha/tOSBi+zGjxiRlZJ45QmscH845Huj2ir3k=; b=kUnpPk0JEwWCuIQTwO6twHWSksBYwK4CCIeTCYvhjwM0WM4WX8pTlGIhlmQQNQuCFb bhoSv2KmkN/anSMNKAL0elFwWqe2h2cFZmilL52+Og8BNL9wwR4kc91L7At6qonv1pO8 Rz90Y5Rw3cM7Bvjtlg2DQRnYdAA0L+2lQ3yAtTGgsYLxxdUnnyAS7ZZrrYD0S/T21e7u qK98hiTHGoKg1a5UsNG4PCpfcwKKsJNDvp69oFZSI5TkGf3VtSZ6ItTnDQlCNe72wbCH ZrZrSuUkoAM0ZWBW5M6wbug5uakeX2u6WZvq/oxOcmbEa5grRWn0AA/n6Ao0sisuJzPF LceA== X-Received: by 10.204.234.8 with SMTP id ka8mr4954544bkb.5.1379698154580; Fri, 20 Sep 2013 10:29:14 -0700 (PDT) MIME-Version: 1.0 From: Jabba Laci Date: Fri, 20 Sep 2013 19:28:54 +0200 Subject: building an online judge to evaluate Python programs To: Python mailing list Content-Type: text/plain; charset=ISO-8859-1 X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 25 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1379698177 news.xs4all.nl 15892 [2001:888:2000:d::a6]:40788 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:54498 Hi, In our school I have an introductory Python course. I have collected a large list of exercises for the students and I would like them to be able to test their solutions with an online judge ( http://en.wikipedia.org/wiki/Online_judge ). At the moment I have a very simple web application that is similar to Project Euler: you provide the ID of the exercise and the output of the program, and it tells you if it's correct or not. However, it can only be used with programs that produce an output (usually a short string or a number). In the next step I would like to do the following. The user can upload his/her script, and the system tests it with various inputs and tells you if it's OK or not (like checkio.org for instance). How to get started with this? There are several questions: * What is someone sends an infinite loop? There should be a time limit. * What is someone sends a malicious code? The script should be run in a sandbox. All tips are appreciated. Thanks, Laszlo