WOLLO UNIVERSTY(KIOT)
Chapter One
1 Introduction
With the development of computer software applications, software developers need more
high-quality. Learners can effectively improve their programming skills from participating in
a large number of contests and programming training. However the traditional artificial judge
brings more labor costs and the lower accuracy of judge. The Online Automatic Judging
System(referred to as OAJ system), which can be applied to various algorithm programming
competition and training, can carry out and evaluate of JAVA,C++,C code, automatically
judging the correctness, and counting the efficiency indicators, such as running time and
memory consumption. In a specific online judge for automata is designed. The paper
discusses some advantages when contest mode is brought in programming language and
algorithm design courses. In, paper two new evaluation methods based on the requirement of
the “Data Structure” the course introduced.
1.1 Background of the Project
The technology development of one country can be analyzed from different angles. One of
these angles is changing the manual system to computerized system. Programming is one of
the major skills that IT students in every department of computer science of all universities in
the world as a basic step to go higher for their career. Every computer science subject has
certain relationships with programming. Needless to say, there are many computer science
courses which require programming as the main techniques in order for student to capture the
knowledge. Students acquire programming skills through frequently study and practice.
Normally, the lecturer prepares and gives programming assignments to help them apply the
learned knowledge into practice. Through those coding activities, student can understand the
theory clearly and get more experiences to implement what they have learnt in class into
practical code. Normally, upon receiving code submitted from students, the lecturer would
manually go through all the source files, for each of them, lecturer need to manually compile,
run, key in the test case and verify the output. The student codes is judge based on the
structure coding style whereby how efficient that they organize their program into related
modules and the way in which variables are named. However, the major evaluation would
fall into how much of correctness that output produced by student program match with output
predefined by the lecturer. By manually assessments, lecture can evaluate student ability
Software Engineering Final project Page 1
WOLLO UNIVERSTY(KIOT)
through the way they organize their program but that would make a lot of difficulties if the
number of students is high because it is time consuming for lecturer to give training.
Automatic Online Judge system is built to assist to check the correctness of program code by
automatically receives code submitted by programmer, subsequently, it would compile, run
and repeatedly key in all predefined input into the running program and capture the output.
The output produced by the program is compared with predefines output which are assumed
to be correct to judge the precision of the program code.
1.2 Existing System
1.2.1 Existing System Description
Our targeted system, “Lab Based Code Execution” performs their activities in different
ways. The organization has participants like manager, student, instractor and other
members. They all have a great role on giving service to their organization. They have their
own responsibilities in the lab session of our campus.
1.2.2 Major Functions of the Existing system
The existing system works towards achieving major organizational goals by coordinating
the lab members. Gaining experience in the design and analysis of algorithms and data
structures is one of the most important steps of the initial part of the learning process for
students of Informatics student. The management of programing courses is resource
consuming, such as Blackboard or Moodle and time consuming. Historically, such an
approach was first adopted for early programming con-tests, mainly in order to decrease the
strain on the staff responsible for grading, and to ensure an entirely impartial and immediate
judgment of submissions from all lab participants. This lead to an increase popularity of
similar systems designed for training purposes, usually in the form of websites known as
online judges, providing their services to potential contestants and other enthusiasts intent
on improving their programming skills.
1.3 Statement of Problem
Lecturer has to manually open the source code, compile, run, input test case and verify the
output for every student‘s program for programming assignment. There is no mechanism to
practice online programming within KIOT with the problem created by lecturer. There is no
mechanism to generate test case, lecturer must generate test case data manually, and thus the
number generated test case is limited.
Software Engineering Final project Page 2
WOLLO UNIVERSTY(KIOT)
There is no automatic online judge system for students to practice before participating
International Online Testing Programming Contest which is going to be organized at Wollo
University.
1.4 proposed system
The aim of developing online code judge systems is a safe, reliable, and continuous, cloud-
based evaluation of algorithms that are submitted by users distributed around the campus.
1.4.1 Software Requirement Specification (SRS)
The proposed system has different functionalities that are necessary for the overall
performance of the system. Based on these functionalities the system requirements are
classified as functional and non-functional. These helps to identify whether a requirement
will affect the functionality of the system function or whether it wills constraint the system
(non-functional).
Functional Requirement
Functional Requirements are those that refer to the functionality of the system, i.e., what
services it will provide to the user. It is Statements about service that the system should
provide, and also how the system should react to particular inputs and how the system should
behave in particular situations.
Register applicant online: The system would be able to register user can
involve in the system.
Judge the code: the system can judge user codes syntactically and semantically
weather it is right or wrong.
Problem archive: the system archive and store the file into repository.
Students can practice on the system by writing a code and copying the file from
the repository.
The system able to evaluate algorithms that are used to solve combinatorial
problems.
The system judge show complexity of the code based on CPU usage and
execution time consumption.
The system able to set a point and calculate the rank of users.
Software Engineering Final project Page 3