Automatic Grading System in Microsoft .NETFramework: Evaluating the performance of different programming languages on the Microsoft.NET platform
Independent thesis Advanced level (degree of Master (Two Years)), 20 credits / 30 HE creditsStudent thesis
A common challenge for software consulting companies is recruiting the right people. In the software industry, the recruitment process usually involves several steps before a contract is signed; a single job interviewis rarely enough. Thus, the interview tends to involve some test to make sure that the job applicant is qualified. The testing procedure is usually part of the interview or conducted at the same occasion. Interviewing applicants who are not qualified for the position is a waste of time. This waste can be minimized by only interviewing qualified applicants. In the software industry, qualifications are commonly asserted by letting an applicant solve programming problems. This process can be automated using an Automatic Grader. Such systems already exist on some universities today and are used extensively invarious programming courses and also in programming contests.This thesis explains how such a system can be built using only Microsoft.NET Framework while still supporting multiple languages. The thesis also evaluates this system with regard to execution speed and memory consumption in an attempt to find a scaling factor between the different programming languages since the same implementation of a specific algorithm in different languages should be graded equally. The supported languages are C#, Java and Python. Java support is enabled through the use of a Java byte code to Common Intermediate Language(.NET bytecode) compiler called IKVM. Python is supported through the use of Iron Python.The results showed that C# and Java performed almost equally interms of execution speed and memory usage, with Java being slightly behind. As a compensation for Javas slower execution speed a scaling factor was calculated. The average of this scaling factor was 1.29.Python had greater performance and memory issues than the other twoand no scaling factor could be obtained for this language using the data present in this thesis. Future work involves implementing additional language support and improving the system with usability in mind.
Place, publisher, year, edition, pages
IdentifiersURN: urn:nbn:se:kth:diva-155892OAI: oai:DiVA.org:kth-155892DiVA: diva2:763236