Competitive Coding Website

DOI : 10.17577/IJERTV10IS040230

Download Full-Text PDF Cite this Publication

Text Only Version

Competitive Coding Website

Parth Dave, Rushikesh Deshmukh, Dipak Kumar Gautam

UG Student,

Dept. of Information Technology Vidyavardhinis College of Engineering and Technology,

Vasai, India

Abstract Owing to the quick development of the cutting edge data society, it is important to instruct youngsters who are liable for the fate of the Information Technology (IT). Problem solving is a serious discovering that is implemented to improve abilities and upgrade information on the IT. To improve serious programming understanding among students, we have implemented a competitive coding website. Most of the students lack the skills even to analyze a short piece of code. We have also developed a Competitive coding website, the contest management Web server. The server evaluates the submitted software using input and output data in an execution test. We deliver several planning tests for step-by-step sub-goals as partial requirements to adapt a contest for beginners. Which also provides the solution at the end. It also manages the progress of the student and his performance. We're building a teacher support system that includes features including tracking and tutoring.

  1. INTRODUCTION

    Competitive programming is an analytical sport in which programmers compete to solve the most algorithmic problems in the shortest time possible. Many of the CS subjects used in app development, such as networking, GUI, and databases, will not be covered in these competitions. It's all about the ability to solve algorithmic problems, data structure understanding, and implementation skills.

    ACM-ICPC organized a competition at Texas A&M University in 1970 that gave birth to competitive programming. Competitive programming, according to (Competitive Programming [1]), is a mind sport in which participants attempt to program according to given requirements over the Internet or a local network. Sport programmers are the names given to the contestants. Several international software and Internet firms, such as Google, Facebook, and IBM, understand and promote competitive programming. Programming contests are held on a regular basis by a number of organisations. In most programming competitions, the host presents the participants with a series of logical or mathematical problems to solve (who can vary in number from tens to several thousand), and contestants are required to write computer programs capable of solving each problem.

    Scoreboards are updated in real time, and participants experience an exhilarating thrill when they solve a tough problem and beat their opponents. At higher levels of competition, the best athletes from each area or school congregate in one place to compete for a gold, trophy, or even cash prize.

    Fig 1.Problem Tree

    Many competitive coding platforms exist, including CodeChef [2], Spoj [3], CodeForces [4], and HackerEarth [5], which support over 50 programming languages and have a wide community of programmers who help students and professionals test and develop their coding skills. Its goal is to provide a learning, competition, and improvement environment for students and aspiring software developers. On competitive programming platforms, a variety of programming competitions are held. There are two kinds of contests: long-term and short-term. Each short-term competition round lasts 1 to 3 hours. Long-term competitions will last anywhere between a few days to several months. Since the number of entrants is typically very high, most competitions are usually arranged in many rounds. Except for the final round, which needs onsite participation, they normally require online participation in all rounds. Gold, silver, and bronze medals are presented to the top performers at IOI and ACM-ICPC, while cash prizes are awarded to the top finishers in the other contests.. Also hitting the top places in the score tables of such competitions may attract the interest of recruiters from software and Internet companies. Programming is a very practical and hands-on skill. One has to continuously do it to be good at it. It is not sufficient to solve the problem theoretically; you must also code the solution and have it accepted. Knowing which algorithm to use and putting it into practise are two completely different things. To be a good programmer, you need both. Many programmers claim that the issues with competitive programming have little to do with real-world programming. It is, for the most part, right. However, it improves your efficiency. Critical test data assists you in writing right solutions all at once! Furthermore, it improves the debugging skills. Hard problems require you to break the problem down into bits, solve each one separately, and then put it all together to solve the main problem. Competitive programming is not the only way to master these qualities but it is one of the best ways to do so.

  2. RELATED WORK

    In the first paper, the author provides positive results on the use of programming as an educational resource, this illustrates the need for more longitudinal studies in schools, using broader groups of students to obtain concrete conclusions on the forms of learning that could be strengthened by programming. Multiple planning tests that are as step-by-step sub-goals for Specification in part. And based on time, we set the law of partial points and plus or minus points. The device illustrates the outcome of Judgment and instantly shows the rating tab. There is a sub-system of teacher help, which consists of Functions for tracking and tutoring. There is a web page first. To track a classroom, each student, and issues Include views of time series and graphs that allow a teacher to advise students who are not performing so well and to recognize errors which many learners are making. The educational process Effects of frequent and early submission through performance testing Series and points in time. There are some plans for the enhancement of Usability by a teachers user test.

    In the 2nd paper, they disclose how to utilize tools in programming, that are expected to improve abilities and upgrade information on IT. These programming challenges for secondary school understudies assume a significant part in data training however examinations of their impact and job in the instruction framework have been scant. In this examination, an investigation structure dependent on an overview of programming challenges is proposed and a comparing investigation apparatus for assessing and dissecting a programming challenge is made. The outline of the study, the subtleties of the system, and the apparatus are clarified in this paper.

    In the third paper, we become more acquainted with the Online passing judgment on a framework for a programming challenge. A reasonable application is needed to make a straightforward, responsive, and exact decision on a framework for the opposition. In any case, issues emerge when there are a few adjustments made to fulfill the global guideline rules, particularly the use of the programming language. In this paper, UM Framework-based Online Judge (OJ) framework is proposed to defeat the connected issues. In this proposed strategy, an adaptable passing judgment on the framework is planned which can be utilized for any programming rivalries, both locally and globally like ACM ICPC, SPOJ, and so on It has been shown that the proposed internet passing judgment on the framework has a source code ordering pace of 3.6 seconds per code and precision up to 99.9%.

    1. The International Olympiads in Informatics (IOI), that is an annual programming competition for secondary school students patronizedby UNESCO. http://www. ioinformatics.org/

    2. Google Code Jam is based on multiple online rounds that conclude in the World Finals. https://code.google. com/codejam/.

    3. The very recent International Informatics Olympiads in Team (IIOT) that started in 2017 is a team competition like ACM ICPC, differently from IOI (individual competition).

    4. Facebook Hacker Cup, that is an annual worldwide programming competition where hackers compete against each other for fame, fortune, glory, and a shot at the coveted Hacker Cup. https://www.facebook.com/hackercup/.

    5. The ACM International Collegiate Programming Contest (ICPC) is a multitier, team-based, programming competition operating under the auspices of ACM. https:

      //icpc.baylor.edu/

      In general, students participating in programming contests have at disposal several programming contest platforms, including Codeforces, USACO, COCI, TopCoder, Codechef, and HackerEarth, which run contests with different periodicity. The programming languages allowed in the competitions vary considerably: for example, IOI and IIOT accept only C.C++, and Pascal; ICPC adds to the list also Python (both 2 and 3), Java, and Kotlin.

      We implemented the system with JavaScript, PHP, NodeJS, Ajax, and MYSQL. GCC is the C compiler for judgment of C language code, Java8 compiler is for judgment of java language code, and python8 is for python language code on the server-side. After participating in a contest, the problem list page shows the headline information of each problem. Each problem page shows has Title of the problem, Description of the Problem, Code editor, and INPUT editor and display section. To keep the same page without page transition by inner frame technique. The Problem statement shows sample data, implementation hints, and the input form for uploading a source code as an answer.

  3. METHODOLOGY

    A programming contest is a competition in which the contestants face a set of programming tasks, also called problems, to be solved in a limited amount of time and under some time and space constraints.

    A single task can be broken into different subtasks of increasing complexity: basic techniques might be enough to solve, within the given time and/or space limits, some of the subtasks are the most difficult ones that might require very specific algorithmic techniques and data structures. Among the programming contest, we mention

    Fig 2. The exercise style with a small contest

    The implementation is done in two portions first where the user will just code and run it there will be no problem statement we named that part as compiler page and the second portion is the problem statement page where the user will get a set of problems and when the user will choose any of the problems to solve then on summiting the solution the user output get compared with actual output this comparison is done on the server-side as mentioned figure.

    Fig 3. The program judgment by execution tests with given sample data

    Fig 4. The 7 steps in the judgement process by given sample data

    Here when the user will submit code it will be converted to a file on the server-side which will be named as for c language main.c for Java language main.java and same as for python. That generated file will be converted to a machine code file with the help of compilers and executors for the C language. It will be .exe for Java it will be a class file. If there is an error in the code that error will be push on a user side and if the code compiles successfully then executing the compiled file will produce an output file that output file will be compared with the actual output file which was embedded with problem statement output file if both the output file get match successfully with no any differences then it is a correct verdict otherwise it is a wrong verdict and this message will be e shown to the user as a response of his submission code and as the response has sent to the user then all server-side generated file that is compiled file and the executable file will be get deleted then the process has been completed. Based on the successful completion of the task that is with the correct

    verdict the user will be rewarded with scores. These scores will be added to its progress scores to add a problem statement on the server-side to view a list of problems on the problem statement page the only website administrator has the authority to add a problem statement. The description of a problem statement and the output of the problem statement will be e in the form of file.txt there will be a form with a field like the title of problem, description of the problem, field to submit the description of problem statement file, the output of problems (file). There will be a profile page where the user can see their activities list examples like solved problems and their credential

    MySQL database handle all user credential, user activity (submission), problem statement database MD5 algorithm is used to encrypt the user credential like password mail, etc.

  4. RESULTS AND DISCUSSION

    We proposed the programming exercise style with a small contest adjusted to beginners. The system judges an answer program automatically which is uploaded and compiled by execution with given sample data. It notifies a user of. The judgment results immediately and exhibits the progress situation of all users in the profile section. We adopt execution test series with the flexible matching method for step-by-step refinement. During the development of this project, we understood how competitive programming is important, how it influences the IT industry, and Computer Science, Graduates. Competitive Programming is one of the ways Universities make their mark in academia. Competitive Programming reflects the talent present at Universities. Through Competitive Programming, students build their problem-solving skills which are essential in the day-to-day task at tech-giant product-based companies (Facebook, Twitter, and Google). It is also important for rigorous Coding Interviews carried out by these tech-giants. Currently, India ranks a lot behind for ACM-ICPC organized annually. Hardly, one team gets selected for Finals from India or in rare cases none. India is becoming IT Hub but this Hub bubble contains the majority only Service Based Companies. Although few tech giant offices are present but very few Computer Science or IT graduates work at such places. Improvement of Computer Science/IT Graduates in Competitive Programming is necessary.

  5. CONCLUSION

    In this paper, we like to address that competitive programming contests are based on problem-solving and help to improve coding skills. We have done a literature survey and gather the information to obtain the required results. Data of a programming contest will be accumulated in the database system. We have tested this and it is giving competitive results. It can analyze and manage to program contests that are proposed. We have implemented different activities which provide online programming contests training. And we are also thinking of further implementation of this technology.

  6. REFERENCES

    1. S. Kawasaki, H. Tominaga, Execution Test Series and Partial Scoring in Support Server for Introductory C Programming Exercise, Proceedings of ED-MEDIA 2010, pp. 3189-3196, Jun. 2010.

    2. K. Ueta, H. Tominaga, A Development and Application of Similarity Detection Methods for Plagiarism of Online Reports, Proceedings of ITHET 2010, pp. 363-371, Apr. 2010.

    3. Codeforces, Available:http://codeforces.ru/.

    4. University of Aizu, Aizu Online Judge, Available: http://judge.uaizu.ac.jp/onlinejudge/

    5. H. Kurata, H. Tominaga, T. Hayashi, and T. Yamasaki, Contest Style Exercise with Execution Tests for Every Lesson in Introductory C Programming, Proceedings of ITHET 2007, pp. 99- 102, Jul. 2007

    6. W. Di Luigi, G. Farina, L. Laura, U. Nanni, M. Temperini, and L. Verari. of-web: an interactive online programming contest training system. Olympiads in Informatics

    7. S. S. Skiena and M. A. Revilla. Programming challenges: The programming contest training manual. Springer Science Business Media, 2003

    8. Elaine J. and F. I. Vocolos; Experience with performance testing of software systems: Issues, approach and case study, IEEE transactions on software engineering, Vol-26, No 12 December 2000 PP 1147- 1156.

    9. Combfis S., Beresneviius G., and Dagien V.Learning programming through games and contests: Overview, characterization and discussion. Olympiads in Informatics, 10:3960, 2016.

Leave a Reply