0% found this document useful (0 votes)
9 views108 pages

Mini PDoc

The mini project report focuses on using Explainable Artificial Intelligence (XAI) to identify student profiles within Online Judge (OJ) systems in programming courses, aiming to enhance feedback for both students and instructors. It proposes a methodology that utilizes Multi-Instance Learning (MIL) to analyze student submission patterns and predict their success or failure based on behavioral data. The study evaluates over 2,500 submissions from 90 students, demonstrating the model's effectiveness in providing actionable insights into student performance and learning behaviors.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views108 pages

Mini PDoc

The mini project report focuses on using Explainable Artificial Intelligence (XAI) to identify student profiles within Online Judge (OJ) systems in programming courses, aiming to enhance feedback for both students and instructors. It proposes a methodology that utilizes Multi-Instance Learning (MIL) to analyze student submission patterns and predict their success or failure based on behavioral data. The study evaluates over 2,500 submissions from 90 students, demonstrating the model's effectiveness in providing actionable insights into student performance and learning behaviors.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 108

A

MINI PROJECT REPORT


on

Identifying Student Profiles Within Online Judge Systems Using


Explainable Artificial Intelligence

Submitted in partial fulfilment of the


Requirement for the award of the degree of

BACHELOR OF TECHNOLOGY
IN

COMPUTER SCIENCE AND ENGINEERING


BY
MD. Shakeer (21Q61A6732)
Under the guidance of

Mr. S. RAJENDER
M.Tech
Assistant Professor

DEPARTMENT OF CSE,CSM & CSD


AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY
(Affiliated to JNTUH Approved by AICTE, Recognized by Govt of T.S)
Accredited by NBA, NAAC-A
Gunthapally (V), Abdullapurmet (M), R.R.District-501512
(2021-2025)
AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY
(Affiliated to JNTUH Approved by AICTE, Recognized by Govt of T.S)
Accredited by NBA,NAAC-A
Gunthapally (V), Abdullapurmet (M), R.R.District-501512

DEPARTMENT OF CSE,CSM & CSD


CERTIFICATE

This is to certify that the mini project work entitled “Identifying Student Profiles
Within Online Judge systems Using Artificial Intelligence” is being submitted by
MD.Shakeer (21Q61A6732) in partial fulfillment of the requirement for the award of
the degree of B.Tech in Computer Science and Engineering, Avanthi Institute Of
Engineering And Technology, Hyderabad, is a record of bonafide work carried out
by him under my guidance. The results presented in this mini project work have been
verified and are found to be satisfactory. The results embodied in this project work
have not been submitted to any other University for the award of any other degree.

Dr. N.V. RAMANA REDDY Mr. S. RAJENDER


MCA, M. Tech, MBA, Ph. D M. Tech
Internal Guide Assistant Professor
Associate Professor Department of CSE,CSM&CSD
HEAD OF THE DEPARTMENT
Department of CSE, CSM&CSD

External Examiner Dr. G. RAMACHANDRA REDDY


B.Tech,Ph.D.MISTE,FIE

PRINCIPAL

Committed To Excellence in Technical Education


ACKNOWLEDGEMENT

This is an acknowledge of the intensive drive and technical competence of many individuals
who have contributed to the success of our mini project work.

We are grateful to chairman, Avanthi Group of Institutions Sri. M. SRINIVASA RAO for
granting us the permission for undergoing the practical training through development of this
mini project in college.

Our sincere thanks to the Principal Dr. G. RAMACHANDRA REDDY Avanthi Institute of
Engineering & Technology and to all the faculty members. We would like to express our
gratitude to head of the department Dr.N.V.RAMANA REDDY, C.S.E-HOD, Associate
Professor for his valuable suggestions during the course of our mini project work.

We are immensely thankful to our B.Tech Co-ordinator S.RAJENDER, Assistant Professor


for Department of Computer Science and Engineering for this work, which helped us in
completing this mini project work successfully.

We are immensely thankful to our internal guide Dr . N. V. RAMANA REDDY, Associate


Professor, Department of CSE, for his valuable guidance and suggestion in each and every
stage of this work, which helped us in completing this thesis successfully.

We are thankful to one and all, who are co-operated with us to complete our mini project work
successfully.

Committed To Excellence in Technical Education


DECLARATION

I hereby declare that the results embodied in this dissertation entitled “Identifying Student
Profiles Within Online Judge Systems Using Artificial Intelligence” is carried out by me
during the year 2023-2024 in partial fulfilment of the award of B.Tech, Computer Science and
Engineering from Avanthi Institute of Engineering and Technology. I have not submitted the
same to any other university or organization for the award of other degree.

Student name with Signature

MD.Shakeer (21Q61A6732)

Committed To Excellence in Technical Education


INDEX
TOPICS Page
No’s
➢ Certificates
➢ Acknowledgement
➢ Abstract
➢ Figures/Tables

CHAPTER-1: INTRODUCTION 1-3


CHAPTER-2: LITERATURE SURVEY 4-6
CHAPTER-3: SYSTEM ANALYSIS
3.1 Existing System 8-9
3.2 Proposed System 10
CHAPTER-4: SYSTEM REQUIREMENTS
4.1 Functional Requirement 11
4.2 Non-Functional Requirements 11
CHAPTER-5: SYSTEM STUDY
5.1 Feasibility Study 12
5.2 Feasibility Analysis 12-13
CHAPTER-6: SYSTEM DESIGN
6.1 SYSTEM ARCHITECTURE 14
6.2 UML DIAGRAMS 15-24
6.2.1 Use Case Diagram

Committed To Excellence in Technical Education


6.2.2 Class Diagram
6.2.3 Sequence Diagram
6.2.4 Collaboration Diagram
6.2.5 Activity Diagram
6.2.6 Component Diagram
6.2.7 Deployment Diagram
6.2.8 ER Diagram
6.2.9 Data Dictionary
CHAPTER-7: INPUT AND OUTPUT DESIGN
7.1 Input Design 25
7.2 Output Design 25-26
CHAPTER-8: IMPLEMENTATION
8.1 Modules 27
8.1.1 Module Description 27
CHAPTER-9: SOFTWARE ENVIRONMENT
9.1 Python 28-68
9.2 Source Code 68-77
CHAPTER-10: RESULTS/DISCUSSIONS
10.1 System Testing 78-80
10.1.1 Test Cases 80-83
10.2 Output Screens 83-86
CHAPTER-11: CONCLUSION
11.1 Conclusion 91
11.2 Future Scope 92
CHAPTER-12: REFERENCES 93-95
LIST OF FIGURES

S.NO TABLES/FIGURES PAGE NO’S

1 System Architecture 14
2 UML Diagrams 15-24

2.1 Use Case Diagram 16

2.2 Class Diagram 17

2.3 Sequence Diagram 18

2.4 Collaboration Diagram 19

2.5 Activity Diagram 20

2.6 Component Diagram 21

2.7 Deployment Diagram 21

2.8 ER Diagram 22

2.9 Data Dictionary/Data Set 22-24

3 About Python 28-68


4 Screenshots 83-86
IDENTIFYING STUDENT PROFILES WITHIN ONLINE
JUDGE SYSTEMS USING EXPLAINABLE ARTIFICIAL
INTELLIGENCE

ABSTRACT

Online Judge (OJ) systems are typically considered within programming-related courses as they yield
fast and objective assessments of the code developed by the students. Such an evaluation generally
provides a single decision based on a rubric, most commonly whether the submission successfully
accomplished the assignment. Nevertheless, since in an educational context such information may be
deemed insufficient, it would be beneficial for both the student and the instructor to receive additional
feedback about the overall development of the task. This work aims to tackle this limitation by
considering the further exploitation of the information gathered by the OJ and automatically inferring
feedback for both the student and the instructor. More precisely, we consider the use of learning-
based schemes—particularly, Multi-Instance Learning and classical Machine Learning
formulations—to model student behavior. Besides, Explainable Artificial Intelligence is
contemplated to provide human-understandable feedback. The proposal has been evaluated
considering a case of study comprising 2,500 submissions from roughly 90 different students from a
programming-related course in a Computer Science degree. The results obtained validate the
proposal: the model is capable of significantly predicting the user outcome (either passing or failing
the assignment) solely based on the behavioral pattern inferred by the submissions provided to the
OJ. Moreover, the proposal is able to identify prone-to-fail student groups and profiles as well as
other relevant information, which eventually serves as feedback to both the student and the instructor.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 1.INTRODUCTION
SYSTEMS USING AI

CHAPTER-1
INTRODUCTION

Originally coined by [1], the term Online Judge (OJ) denotes those systems devised for the
automated evaluation and grading of programming assignments, which usually take the form of
online evaluation services capable of collecting source codes, compiling them, assessing their results,
and computing scores based on different criteria [2]. These automated tools have been particularly
considered in two precise, yet related, scenarios [3]: (i) programming contests and competitions, and
(ii) educational contexts in academic degrees. This work focuses on the latter scenario, in particular,
on programming courses from Computer Science studies in higher education institutions.

OJ systems are successful in the education field because they overcome the main issues
associated with the manual evaluation of assignments [4]: in opposition to human grading, which is
deemed as a tedious and error-prone task, these tools provide immediate corrections of the
submissions regardless of the number of participants. Moreover, the competitive learning framework
that these schemes entail proves to benefit the success of the learning process [5].
Despite their clear advantages, OJ systems do not provide the student nor the instructor with
any feedback from the actual submission apart from whether the provided code successfully
accomplished the assignment [6]. However, the information gathered by the OJ system may be
further exploited to enrich the educational process by automatically extracting additional insights
such as student habits or patterns of behavior related to the success (or failure) of the task. In this
regard, one may resort to the so-called Educational Data Mining (EDM), a discipline meant to infer
descriptive patterns and predictions from educational settings [7].

Within this discipline, Machine Learning (ML) is reported as one of the main enabling technologies
due to its power and flexibility. Some success cases can be found in the work by [8], devoted to
assessing the performance of the instructor; the approach by [9], aimed at predicting student grades
at an early stage; or the work by [10], focused on detecting inconsistencies in peer-review
assignments. In this work, we apply EDM to automatically provide feedback about the assignments,
both to the student and the instructor, in the context of OJ systems for programming courses.

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 1
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 1.INTRODUCTION
SYSTEMS USING AI

When an OJ is used for grading a programming assignment, there is usually a time slot in
which students can perform as many submissions as they want. The final grade of a student in the
activity is typically computed from the best submission. During that time slot, data usually exploited
in EDM, such as grades obtained in previous activities or course attendance [9], may not be available.
Moreover, other data used to predict student performance, such as socioeconomic background or
academic success in other courses [11], may not be usable from an ethical point of view due to the
potential biases it would introduce.

In spite of the lack of available data, it would still be desirable to be able to detect at-risk
students before the assignment deadline. Thus, aided by the use of meta-information gathered from
the submission process—e.g., the number of code submission attempts or the date of the first
submission—we devised an EDM approach with two types of outcomes: (i) the success probability
of a new student, and (ii) the identification of different student profiles to provide feedback to both
the instructor and the student thyself. Note that such pieces of information may be used not only to
prevent inadequate student attitudes by providing the appropriate observations about the development
of the task but also to properly adjust the difficulty of the different assignments, among other possible
corrective actions towards the success of the course.

Since the set of code submissions made by a student somehow characterizes the student
profile to be estimated, the problem may be modelled as a Multi-Instance Learning (MIL) task [12].
This learning framework introduces the concept of bag, i.e., a set with an indeterminate number of
instances that is assigned a single label [13]. MIL has been successfully considered in the EDM
literature [14], as in the work by [15], which compares MIL against ML for predicting the student
performance. In our case, each of these bags gathers the different code submissions made by each

student, being labelled as either positive or negative depending on whether the student eventually
passed the assessment by the OJ system.

Nevertheless, the fact that both ML and MIL strategies generally work in a black box manner
hinders their application in this feedback-oriented context [16]. In this regard, the field of Explainable
Artificial Intelligence (XAI) is gradually gaining attention to tackle such limitation by devising

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 2
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 1.INTRODUCTION
SYSTEMS USING AI

methodologies that allow humans to understand and interpret the decisions taken by a computational
model [17]. However, while XAI has been largely studied in the ML field, this has not been the case
in the MIL one [18].

Considering all the above, this work presents a method to identify student profiles in
educational OJ systems with the aim of providing feedback to both the students and the instructors
about the development of the task. More precisely, the proposal exclusively relies on the meta-
information extracted from these OJ systems and considers a MIL framework to automatically infer
these profiles together with XAI methods to provide interpretability about the estimated behaviors.
In order to apply XAI to MIL problem, a novel policy for mapping the MIL representation to an ML
one is proposed for the particular task at hand. The proposed methodology has been evaluated in a
case of study comprising three academic years of a programming-related
course with more than 2,500 submissions of two different assignments. For this, more than 20
learning-based strategies comprising ML, MIL, and MILto- ML mapping methods have been
assessed and compared to prove the validity of the proposal. The results obtained show that the
proposal adequately models the user profile of the students while it also provides a remarkably precise
estimator of their chances to succeed or fail in the posed task solely based on the meta- information
of the OJ.

The rest of the work is organized as follows: Section II reviews the related literature to
contextualize the work; Section III presents the proposed methodology; Section IV introduces the
case of study examined; Section V details the experimental set-up considered; Section VI shows and
discusses the results obtained; Section VII summarizes the insights obtained in the work; and finally,
Section VIII concludes the work and outlines future research line to address.

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 3
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 2.LITERATURE SURVEY
SYSTEMS USING AI

CHAPTER-2
LITERATURE SURVEY
TITLE: Multi-instance genetic programming for predicting student performance in web based
educational environments
AUTHOR: Amelia Zafra, Sebastián Ventura
ABSTRACT: A considerable amount of e-learning content is available via virtual learning
environments. These platforms keep track of learners’ activities including the content viewed,
assignments submission, time spent and quiz results, which all provide us with a unique opportunity
to apply data mining methods. This paper presents an approach based on grammar guided genetic
programming, G3P-MI, which classifies students in order to predict their final grade based on
features extracted from logged data in a web based education system. Our proposal works with
multiple instance learning, a relatively new learning framework that can eliminate the great number
of missing values that appear when the problem is represented by traditional supervised learning.
Experimental results are carried out on data sets with information about several courses and
demonstrate that G3P-MI successfully achieves better accuracy and yields trade-off between such
contradictory metrics as sensitivity and specificity compared to the most popular techniques of
multiple instance learning. This method could be quite useful for early identification of students at
risk, especially in very large classes, and allows the instructor to provide information about the most
relevant activities to help students have a better chance to pass a course.

TITLE: Explainable Artificial Intelligence in education


AUTHOR: Hassan Khosravi a, Simon Buckingham Shum b, Guan liang Chen c, Cristina Conati
ABSTRACT: There are emerging concerns about the Fairness, Accountability, Transparency, and
Ethics (FATE) of educational interventions supported by the use of Artificial Intelligence (AI)
algorithms. One of the emerging methods for increasing trust in AI systems is to use explainable AI
(XAI), which promotes the use of methods that produce transparent explanations and reasons for
decisions AI systems make. Considering the existing literature on XAI, this paper argues that XAI in
education has commonalities with the broader use of AI but also has distinctive needs. Accordingly,
we first present a framework, referred to as XAI-ED, that considers six key aspects in relation to
explainability for studying, designing and developing educational AI tools. These key aspects focus

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 4
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 2.LITERATURE SURVEY
SYSTEMS USING AI

on the stakeholders, benefits, approaches for presenting explanations, widely used classes of AI
models, human-centered designs of the AI interfaces and potential pitfalls of providing explanations
within education. We then present four comprehensive case studies that illustrate the application of
XAI-ED in four different educational AI tools. The paper concludes by discussing opportunities,
challenges and future research needs for the effective incorporation of XAI in education.
TITLE: Explainable Artificial Intelligence Applications in Cyber Security: State-of-the-Art in
Research
AUTHOR: ERNESTO DAMIANI 1,2, (Senior Member, IEEE)
ABSTRACT: This survey presents a comprehensive review of current literature on Explainable
Artificial Intelligence (XAI) methods for cyber security applications. Due to the rapid development
of Internet connected systems and Artificial Intelligence in recent years, Artificial Intelligence
including Machine Learning (ML) and Deep Learning (DL) has been widely utilized in the fields of
cyber security including intrusion detection, malware detection, and spam filtering. However,
although Artificial Intelligence-based approaches for the detection and defense of cyber attacks and
threats are more advanced and efficient compared to the conventional signature-based and rule-based
cyber security strategies, most ML-based techniques and DL-based techniques are deployed in the
‘‘black-box’’ manner, meaning that security experts and customers are unable to explain how such
procedures reach particular conclusions. The deficiencies of transparencies and interpretability of
existing Artificial Intelligence techniques would decrease human users’ confidence in the models
utilized for the defense against cyber attacks, especially in current situations where cyber attacks
become increasingly diverse and complicated. Therefore, it is essential to apply XAI in the
establishment of cyber security models to create more explainable models while maintaining high
accuracy and allowing human users to comprehend, trust, and manage the next generation of cyber
defense mechanisms. Although there are papers reviewing Artificial Intelligence applications in cyber
security areas and the vast literature on applying XAI in many fields including healthcare, financial
services, and criminal justice, the surprising fact is that there are currently no survey research articles
that concentrate on XAI applications in cyber security. Therefore, the motivation behind the survey
is to bridge the research gap by presenting a detailed and up-to-date survey of XAI approaches
applicable to issues in the cyber security field. Our work is the first to propose a clear roadmap for
navigating the XAI literature in the context of applications in cyber security

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 5
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 2.LITERATURE SURVEY
SYSTEMS USING AI

TITLE: Peeking Inside the Black-Box: A Survey on Explainable Artificial Intelligence (XAI)
AUTHOR: AMINA ADADI AND MOHAMMED BERRADA

ABSTRACT: At the dawn of the fourth industrial revolution, we are witnessing a fast and
widespread adoption of artificial intelligence (AI) in our daily life, which contributes to accelerating
the shift towards a more algorithmic society. However, even with such unprecedented
advancements, a key impediment to the use of AI-based systems is that they often lack transparency.
Indeed, the black-box nature of these systems allows powerful predictions, but it cannot be directly
explained. This issue has triggered a new debate on explainable AI (XAI). A research field holds
substantial promise for improving trust and transparency of AI-based systems. It is recognized as
the sine qua non for AI to continue making steady progress without disruption. This survey provides
an entry point for interested researchers and practitioners to learn key aspects of the young and
rapidly growing body of research related to XAI. Through the lens of the literature, we review the
existing approaches regarding the topic, discuss trends surrounding its sphere, and present major
research trajectories.

TITLE: Analysis of an Explainable Student Performance Prediction Model in an Introductory


Programming Course
AUTHOR: Muntasir Hoq
ABSTRACT: Prediction of student performance in Introductory programming courses can assist
struggling students and improve their persistence. On the other hand, it is important for the
prediction to be transparent for the instructor and students to effectively utilize the results of this
prediction. Explainable Machine Learning models can effectively help students and instructors gain
insights into students’ different programming behaviors and problem-solving strategies that can lead
to good or poor performance. This study develops an explainable model that predicts students’
performance based on programming assignment submission information. We extract different data-
driven features from students’ programming submissions and employ a stacked ensemble model to
predict students’ final exam grades. We use SHAP, a game-theory-based framework, to explain the
model’s predictions to help the stakeholders understand the impact of different programming
behaviors on students’ success. Moreover, we analyze the impact of important features and utilize
a combination of descriptive statistics and mixture models to identify different profiles of students
based on their problem-solving patterns to bolster explainability. The experimental results suggest

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 6
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 3.SYSTEM ANALYSIS
SYSTEMS USING AI

that our model significantly outperforms other Machine Learning models, including KNN, SVM,
XGBoost, Bagging, Boosting, and Linear regression. Our explainable and transparent model can
help explain students’ common problem-solving patterns in relationship with their level of expertise
resulting in effective intervention and adaptive support to students.

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 7
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 3.SYSTEM ANALYSIS
SYSTEMS USING AI

CHAPTER-3
SYSTEM ANALYSIS
3.1 EXISTING SYSTEM
The work by who was the first to propose that academic computing assignments could be
automatically graded, is considered the main precursor of current OJ systems. Nevertheless, their
first formal definition was introduced by [1] who described them as a computer system that
automatically grades programming assignments and provides some type of feedback to the students.

Regarding their practical use, the scientific literature comprises a large number of OJ proposals
related, to a great extent, to academic institutions and educational environments. Some examples of
such systems comprise the work by [20] with the Valuator method for tasks in the Java programming
language (it is described later in this paper), the URI system by the Universidad Regional Integrate
for developing and improving general coding skills [21], the Peking University Online Judge (POJ)
by [22] tailored to C++ courses, the Course Maker one by the University of Nottingham for general
programming tasks [23], the Youxue Online Judge (YOJ) [24] also for improving coding skills
inspired on exercises from different programming contests, and the Sphere Online Judge (SPOJ)
devised for E-Learning frameworks [25], among others.

Besides their use for educational purposes, OJ systems are also commonly considered in the context
of coding competitions for solving algorithmic problems. Examples of such cases are the one used
in the International Collegiate Programming Contest [26] or the UVa one considered in the
Olympiads in Informatics [27].

The identification of struggling students in early course stages is deemed as a remarkably important
topic in the education field as it suggests the instructor to provide additional resources to address the
problem. In this sense, a large number of studies have assessed the influence of both extrinsic and
intrinsic factors on the commented difficulties.
In relation to the extrinsic aspects, most of the existing literature resorts to the analysis of the
socioeconomic position of the student or the marks obtained in previous courses [11]. The reader is
referred to the manuscript by [28] for a thorough revision of these factors as it is out of the scope of

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 8
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 3.SYSTEM ANALYSIS
SYSTEMS USING AI

this work. Regarding the intrinsic aspects—using information about the outcomes of the assignments

carried out within a course—, the related literature comprises a large number of approaches since
they typically yield considerably accurate predictions. Some representative examples include: the
work by [29], which addresses this task in generic online learning platforms; that by [30] on
preventive failure detection in the context of the Moodle platform; the case of [31] that estimates this
information relying on information gathered from clicker tests in peer-based instruction
environments; and the approach by [9], who use course attendance as a predictor of academic
outcome for the academic year.

Focusing on the case of programming courses, it may be checked that the most basic, yet successful,
approaches rely on hand-crafted heuristics neglecting the use of OJ systems. For instance, Error
Quotient [32] together with its refined version Repeated Error Density [33] perform this assessment
by resorting to the syntax errors that occur during the compilation stage. The Watkin Scoring
Algorithm [34] works in a similar way, but penalizes students based on the time required to fix each
type of error compared to that of their peers. [35] devised a scoring mechanism that takes into account
more complex interactions, such as debugging or modifying syntactically correct code. A last
example is the one by [36] that identifies at-risk students by means of a linear regression approach
based on compilation errors and other indicators.

DISADVANTAGES

• The complexity of data: Most of the existing machine learning models must be able to accurately
interpret large and complex datasets to judge the Student profiles.
• Data availability: Most machine learning models require large amounts of data to create accurate
predictions. If data is unavailable in sufficient quantities, then model accuracy may suffer.
• Incorrect labeling: The existing machine learning models are only as accurate as the data trained
using the input dataset. If the data has been incorrectly labeled, the model cannot make accurate
predictions.

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 9
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 3.SYSTEM ANALYSIS
SYSTEMS USING AI

3.2 PROPOSED SYSTEM

Considering all the above, this work presents a method to identify student profiles in educational OJ
systems with the aim of providing feedback to both the students and the instructors about the
development of the task. More precisely, the proposal exclusively relies on the meta-information
extracted from these OJ systems and considers a MIL framework to automatically infer these profiles
together with XAI methods to provide interpretability about the estimated behaviors. In order to apply
XAI to MIL problem, a novel policy for mapping the MIL representation to an ML one is proposed
for the particular task at hand. The proposed methodology has been evaluated in a case of study
comprising three academic years of a programming-related course with more than 2,500 submissions
of two different assignments. For this, more than 20 learning-based strategies comprising ML, MIL,
and MILto- ML mapping methods have been assessed and compared to prove the validity of the
proposal. The results obtained show that the proposal adequately models the user profile of the
students while it also provides a remarkably precise estimator of their chances to succeed or fail in
the posed task solely based on the meta-information of the OJ.

ADVANTAGES

(i) transparency methods, which represent the ones that directly convey the workings of the
model; and
(ii) (ii) post-hoc explanations, which attempt to provide justifications about the reason why
the model arrived at its predictions. This work frames on the latter case since, oppositely
to transparency-based approaches, they avoid the need for individually adapting each
learning-based model considered for the particular task at hand.

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 10
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 4.SYSTEM REQUIREMENTS
SYSTEMS USING AI

CHAPTER-4
SYSTEM REQUIREMENTS

4.1 FUNCTIONAL REUIREMENTS


• Virtual User
• Agent
4.2 NON FUNCTIONAL REQUIREMENTS
4.2.1 HARDWARE REQUIREMENTS

➢ Processor - Pentium –IV


➢ RAM - 4 GB (min)

➢ Hard Disk - 20 GB

➢ Key Board - Standard Windows Keyboard

➢ Mouse - Two or Three Button Mouse

➢ Monitor - SVGA

4.2.2 SOFTWARE REQUIREMENTS

4.2.3
➢ Operating system : Windows 7 Ultimate.

➢ Coding Language : Python.

➢ Front-End : Python.

➢ Back-End : Django-ORM

➢ Designing : Html, css, javascript.

➢ Data Base : MySQL (WAMP Server).

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 11
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 5.SYSTEM STUDY
SYSTEMS USING AI

CHAPTER-5
SYSTEM STUDY

5.1 FEASIBILITY STUDY

The feasibility of the project is analyzed in this phase and business proposal is put forth with a very
general plan for the project and some cost estimates. During system analysis the feasibility study of
the proposed system is to be carried out. This is to ensure that the proposed system is not a burden to
the company. For feasibility analysis, some understanding of the major requirements for the system
is essential.

5.2 FEASIBILITY ANALYSIS

Three key considerations involved in the feasibility analysis are


• ECONOMICAL FEASIBILITY

• TECHNICAL FEASIBILITY

• SOCIAL FEASIBILITY

ECONOMICAL FEASIBILITY

This study is carried out to check the economic impact that the system will have on the organization. The amount of fund
that the company can pour into the research and development of the system is limited. The expenditures must be justified.
Thus the developed system as well within the budget and this was achieved because most of the technologies used are
freely available. Only the customized products had to be purchased.

TECHNICAL FEASIBILITY
This study is carried out to check the technical feasibility, that is, the technical requirements of the
system. Any system developed must not have a high demand on the available technical resources.
This will lead to high demands on the available technical resources. This will lead to high demands
being placed on the client. The developed system must have a modest requirement, as only minimal
or null changes are required for implementing this system.

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 12
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 5.SYSTEM STUDY
SYSTEMS USING AI

SOCIAL FEASIBILITY

The aspect of study is to check the level of acceptance of the system by the user. This includes the
process of training the user to use the system efficiently. The user must not feel threatened by the
system, instead must accept it as a necessity. The level of acceptance by the users solely depends on
the methods that are employed to educate the user about the system and to make him familiar with
it. His level of confidence must be raised so that he is also able to make some constructive criticism,
which is welcomed, as he is the final user of the system.

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 13
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 6.SYSTEM DESIGN
SYSTEMS USING AI

CHAPTER-6

SYSTEM DESIGN

6.1 SYSTEM ARCHITECTURE

Service Provider
Login,
Accepting all Information Browse Students Datasets and Train &
Web Server Datasets Results Storage Test Data Sets,
View Trained and Tested Accuracy in Bar
Accessing Chart,
Data View Trained and Tested Accuracy
Store and retrievals Results,
View Prediction Of Online Student's
Process all user Profile judgement,
queries
View Online Student's Profile judgement
WEB Ratio,
Database
DownRleomaodte PUrseerdicted Data Sets,
View Online Student's Profile judgement
Type Ratio Results,
View All Remote Users.

REGISTER AND LOGIN,


PREDICT STUDENT'S PROFILE DETECTION TYPE,
VIEW YOUR PROFILE.

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 14
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 6.SYSTEM DESIGN
SYSTEMS USING AI

6.2 UML DIAGRAMS


UML stands for Unified Modeling Language. UML is a standardized general-purpose modeling language
in the field of object-oriented software engineering. The standard is managed, and was created by, the
Object Management Group.
The goal is for UML to become a common language for creating models of object oriented computer
software. In its current form UML is comprised of two major components: a Meta-model and a notation.
In the future, some form of method or process may also be added to; or associated with, UML.
The Unified Modeling Language is a standard language for specifying, Visualization, Constructing and
documenting the artifacts of software system, as well as for business modeling and other non-software
systems.
The UML represents a collection of best engineering practices that have proven successful in the
modeling of large and complex systems.
The UML is a very important part of developing objects oriented software and the software development
process. The UML uses mostly graphical notations to express the design of software projects.

GOALS:
The Primary goals in the design of the UML are as follows:
1. Provide users a ready-to-use, expressive visual modeling Language so that they can develop and
exchange meaningful models.
2. Provide extendibility and specialization mechanisms to extend the core concepts.
3. Be independent of particular programming languages and development process.
4. Provide a formal basis for understanding the modeling language.
5. Encourage the growth of OO tools market.
6. Support higher level development concepts such as collaborations, frameworks, patterns and
components.
7. Integrate best practices.

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 15
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 6.SYSTEM DESIGN
SYSTEMS USING AI

6.2.1 USE CASE DIAGRAM


A use case diagram in the Unified Modeling Language (UML) is a type of behavioral diagram defined by and created
from a Use-case analysis. Its purpose is to present a graphical overview of the functionality provided by a system in
terms of actors, their goals (represented as use cases), and any dependencies between those use cases. The main
purpose of a use case diagram is to show what system functions are performed for which actor. Roles of the actors in
the system can be depicted.

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 16
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 6.SYSTEM DESIGN
SYSTEMS USING AI

6.2.2 CLASS DIAGRAM


In software engineering, a class diagram in the Unified Modeling Language is a type of static structure diagram that
describes the structure of a system by showing the system's classes, their attributes, operations (or methods), and the
relationships among the classes. It explains which class contains information.

Agent

Login, Browse Students Datasets and Train & Test Data Sets, View Trained
and Tested Accuracy in Bar Chart, View Trained and Tested Accuracy
Methods Results, View Prediction Of Online Student's Profile judgement, View
Online Student's Profile judgement Ratio, Download Predicted Data Sets,
View Online Student's Profile judgement Type Ratio Results, View All
Remote Users.

Fid, age, gender, lunch, parental _ level _ of _education, degree _t, race
Members _ethnicity, test _preparation _course, math _score, reading _score, writing
_score, Internships, solving _tasks _by _time, taks _submitted _on _date,
Prediction.

Login
Register
Login,
Login Register
(), Reset (),
Register (), Reset ()
Methods Register (). Methods
User Name, Password
User Name, Password. User Name, Password, E-
Members mail, Mobile, Address, DOB,
Members
Gender, Pin code, Image

Virtual User

REGISTER AND LOGIN, PREDICT STUDENT'S PROFILE


DETECTION TYPE,VIEW YOUR PROFILE.
Methods

Fid, age, gender, lunch, parental _ level _ of _education, degree _t,


race _ethnicity, test _preparation _course, math _score, reading
Members _score, writing _score, Internships, solving _tasks _by _time, taks
_submitted _on _date, Prediction.

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 17
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 6.SYSTEM DESIGN
SYSTEMS USING AI

6.2.3 SEQUENCE DIAGRAM:


A sequence diagram in Unified Modeling Language (UML) is a kind of interaction diagram that shows
how processes operate with one another and in what order. It is a construct of a Message Sequence Chart.
Sequence diagrams are sometimes called event diagrams, event scenarios, and timing diagrams.

Agent web server virtual user

register and login

Login

Browse studentas datasets and train and test data sets

predict students profile detection type

view trained and tested accuracy in bar chart

view trained and tested accuracy results

view prediction of online students profile judgement ration

view your profile

view online students profile judgemnent ratio

download predicted datasets

view online students profile judgement type ratio results

view all remote users

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 18
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 6.SYSTEM DESIGN
SYSTEMS USING AI

6.2.4 COLLABRATION DIAGRAM:


Activity diagrams are graphical representations of workflows of stepwise activities and actions with
support for choice, iteration and concurrency. In the Unified Modeling Language, activity diagrams can
be used to describe the business and operational step-by-step workflows of components in a system. An
activity diagram shows the overall flow of control.

2: Login
Agent web
server
3: Browse studentas datasets and train and test data sets
5: view trained and tested accuracy in bar chart
6: view1:
trained andand
register loginaccuracy results
tested
7: view prediction of online students profile
4: predict students profile detection ju dgement ration
type
9: view online students profile judgemnent ratio
10: downloa8: view your profile
d predicted datas ets
11: view online students profile judgement type ratio results
12: view all remote users

virtual
user

6.2.5 ACTIVITY DIAGRAM

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 19
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 6.SYSTEM DESIGN
SYSTEMS USING AI

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 20
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 6.SYSTEM DESIGN
SYSTEMS USING AI

6.2.6 COMPONENT DIAGRAM

application

Virtual User
Agent

View All Remot


Browse and Trai e Users Login Predicting VIEW YOUR
n & Test Data Students profile PROFILE

View Online
students profile
View Trained an
d Tested

View Prediction View Online Download


Of Online students profile Trained Data

6.2.7 DEPLOYMENT DIAGRAM

application

virtual
user
agent

View All
Remote
Browse and VIEW YOUR
View Online Login Predicting
Train & Test PROFILE
students Students

View Trained Download


and Tested Trained Data

View Trained View View Online


and Tested Prediction Of students

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 21
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 6.SYSTEM DESIGN
SYSTEMS USING AI

6.2.8 ER DIAGRAM

6.2.9 DATA DICTIONARY


Database: identifying student profioles

Table name: auth_group

Column Data Type Constraints Description

id Int(11) Primary key Unique Identifier

name Varchar(1000) Not null name

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 22
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 6.SYSTEM DESIGN
SYSTEMS USING AI

Table Name: Auth_group_Permission

Column Data Type Constraints Description

id Int(11) Primary key Unique Identifier Table

Group id Int(11) Primary Key Unique Identifier

Permission_id Int(11) Primary Key Unique Identifier

Name: auth_permission

Column Data Type Constraints Description

id Int(11) Primary key Unique Identifier

Name Int(255) Not Null name

Content_type_id Int(11) Primary Key Unique Identifier

Code name Int(100) Not Null name

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 23
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 6.SYSTEM DESIGN
SYSTEMS USING AI

Table Name: auth_User

Column Data Type Constraints Description

Id Int(11) Primary key Unique Identifier

Password varchar(128) Not Null password

Last_Login Datetime(6) Not Null Last login

Is_superuser tinyint(1) Not Null Name

username Varchar(150) Not Null Username

lastname Varchar(30) Not Null Lastname

email Varchar(150) Not Null Email id

Is_staff Tinyint(1) Not Null Staff

Is_active Tinyint(1) Not Null Active

Date_joined Datetime(6) Not Null Date and time

Table Name: auth_user_groups


Column Data Type Constraints Description

Id Int(11) Primary key Unique Identifier

User_id Int(11) Primary Key Unique Identifier

Group_id Int(11) Primary Key Unique Identifier

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 24
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 7.INPUT AND OUTPUT DESIGN
SYSTEMS USING AI

CHAPTER-7

INPUT AND OUTPUT DESIGN


7.1 INPUT DESIGN

The input design is the link between the information system and the user. It
comprises the developing specification and procedures for data preparation and those steps are
necessary to put transaction data in to a usable form for processing can be achieved by
inspecting the computer to read data from a written or printed document or it can occur by
having people keying the data directly into the system. The design of input focuses on
controlling the amount of input required, controlling the errors, avoiding delay, avoiding extra
steps and keeping the process simple. The input is designed in such a way so that it provides
security and ease of use with retaining the privacy. Input Design considered the following
things:

➢ What data should be given as input?


➢ How the data should be arranged or coded?
➢ The dialog to guide the operating personnel in providing input.
➢ Methods for preparing input validations and steps to follow when error occur.

7.1.1 OBJECTIVES

1. Input Design is the process of converting a user-oriented description of the input into a
computer-based system. This design is important to avoid errors in the data input process and
show the correct direction to the management for getting correct information from the
computerized system.

2. It is achieved by creating user-friendly screens for the data entry to handle large volume of
data. The goal of designing input is to make data entry easier and to be free from errors. The
data entry screen is designed in such a way that all the data manipulates can be performed. It
also provides record viewing facilities.

3. When the data is entered it will check for its validity. Data can be entered with the help of
screens. Appropriate messages are provided as when needed so that the user will not be in
maize of instant. Thus the objective of input design is to create an input layout that is easy to

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512.
Page | 25
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 7.INPUT AND OUTPUT DESIGN
SYSTEMS USING AI

follow.

7.2 OUTPUT DESIGN

A quality output is one, which meets the requirements of the end user and presents the
information clearly. In any system results of processing are communicated to the users and to
other system through outputs. In output design it is determined how the information is to be
displaced for immediate need and also the hard copy output. It is the most important and direct
source information to the user. Efficient and intelligent output design improves the system’s
relationship to help user decision-making.

1. Designing computer output should proceed in an organized, well thought out manner; the
right output must be developed while ensuring that each output element is designed so that
people will find the system can use easily and effectively. When analysis design computer
output, they should Identify the specific output that is needed to meet the requirements.

2. Select methods for presenting information.

3. Create document, report, or other formats that contain information produced by the system.

The output form of an information system should accomplish one or more of the following
objectives.

• Convey information about past activities, current status or projections of the


• Future.
• Signal important events, opportunities, problems, or warnings.
• Trigger an action.
• Confirm an action.

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512.
Page | 26
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 8.IMPLEMENTATIONS
SYSTEMS USING AI

CHAPTER-8
IMPLEMENTATION
8.1 MODULES
• Virtual User
• Agent

8.1.1 MODULE DESCRIPTION

AGENT

In this module, the Service Provider has to login by using valid user name and
password. After login successful he can do some operations such as Browse
Students Datasets and Train & Test Data Sets, View Trained and Tested
Accuracy in Bar Chart, View Trained and Tested Accuracy Results, View
Prediction Of Online Student's Profile judgement, View Online Student's Profile
judgement Ratio, Download Predicted Data Sets, View Online Student's Profile
judgement Type Ratio Results, View All Remote Users.
View and Authorize Users
In this module, the admin can view the list of users who all registered. In this,
the admin can view the user’s details such as, user name, email, address and
admin authorizes the users.

VIRTUAL USER
In this module, there are n numbers of users are present. User should register
before doing any operations. Once user registers, their details will be stored to
the database. After registration successful, he has to login by using authorized
user name and password. Once Login is successful user will do some operations
like REGISTER AND LOGIN,PREDICT STUDENT'S PROFILE
DETECTION TYPE, VIEW YOUR PROFILE.

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512.
Page | 27
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 9.SOFTWARE ENVIRONMENT
SYSTEMS USING AI

CHAPTER-9
SOFTWARE ENVIRONMENT
9.1 PYTHON

Python is a high-level, interpreted, interactive and object-oriented scripting language.


Python is designed to be highly readable. It uses English keywords frequently where as other
languages use punctuation, and it has fewer syntactical constructions than other languages.

• Python is Interpreted: Python is processed at runtime by the interpreter. You do not


need to compile your program before executing it. This is similar to PERL and PHP.

• Python is Interactive: You can actually sit at a Python prompt and interact with the
interpreter directly to write your programs.

• Python is Object-Oriented: Python supports Object-Oriented style or technique of


programming that encapsulates code within objects.

• Python is a Beginner's Language: Python is a great language for the beginner-level


programmers and supports the development of a wide range of applications from
simple text processing to WWW browsers to games.

1.2 HISTORYOF PYTHON


Python was developed by Guido van Rossum in the late eighties and early nineties at the
National Research Institute for Mathematics and Computer Science in the Netherlands.

Python is derived from many other languages, including ABC, Modula-3, C, C++, Algol-68,
Smalltalk, and Unix shell and other scripting languages.

Python is copyrighted. Like Perl, Python source code is now available under the GNU General
Public License (GPL).Python is now maintained by a core development team at the institute,
although Guido van Rossum still holds a vital role in directing its progress.

1.3 Python Features

1.4 Python's features include:

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512.
Page | 28
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 9.SOFTWARE ENVIRONMENT
SYSTEMS USING AI

• Easy-to-learn: Python has few keywords, simple structure, and a clearly defined
syntax. This allows the student to pick up the language quickly.

• Easy-to-read: Python code is more clearly defined and visible to the eyes.

• Easy-to-maintain: Python's source code is fairly easy-to-maintain.

• A broad standard library: Python's bulk of the library is very portable and cross-
platform compatible on UNIX, Windows, and Macintosh.

• Interactive Mode: Python has support for an interactive mode which allows
interactive testing and debugging of snippets of code.

• Portable: Python can run on a wide variety of hardware platforms and has the same
interface on all platforms.

• Extendable: You can add low-level modules to the Python interpreter. These modules
enable programmers to add to or customize their tools to be more efficient.

• Databases: Python provides interfaces to all major commercial databases.

• GUI Programming: Python supports GUI applications that can be created and ported
to many system calls, libraries and windows systems, such as Windows MFC,
Macintosh, and the X Window system of Unix.

• Scalable: Python provides a better structure and support for large programs than shell
scripting.

• Python has a big list of good features:


• It supports functional and structured programming methods as well as OOP.

• It can be used as a scripting language or can be compiled to byte-code for building


large applications.

• It provides very high-level dynamic data types and supports dynamic type checking.

• IT supports automatic garbage collection.

• It can be easily integrated with C, C++, COM, ActiveX, CORBA, and Java.

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512.
Page | 29
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 9.1 PYTHON
SYSTEMS USING AI

2.1 ARITHMETIC OPERATORS

Operator Description Example

+ Addition Adds values on either side of the operator. a+b=


30

- Subtraction Subtracts right hand operand from left hand operand. a–b=-
10

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512.
Page | 30
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 9.1 PYTHON
SYSTEMS USING AI

* Multiplies values on either side of the operator a*b=


Multiplication 200

/ Division Divides left hand operand by right hand operand b/a=2

% Modulus Divides left hand operand by right hand operand and returns b%a=
remainder 0

** Exponent Performs exponential (power) calculation on operators a**b =10


to the
power 20

// Floor Division - The division of operands where the result is the 9//2 = 4
quotient in which the digits after the decimal point are removed. But and
if one of the operands is negative, the result is floored, i.e., rounded 9.0//2.0
away from zero (towards negative infinity): = 4.0, -
11//3 = -
4, -
11.0//3 =
-4.0

2.2 ASSIGNMENT OPERATOR

Operator Description Example

= Assigns values from right side operands to left side operand c=a+b
assigns

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512.
Page | 31
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 9.1 PYTHON
SYSTEMS USING AI

value of a
+ b into c

+= Add AND It adds right operand to the left operand and assign the result to c += a is
left operand equivalent
to c = c +
a

-= Subtract It subtracts right operand from the left operand and assign the c -= a is
AND result to left operand equivalent
to c = c -
a

*= Multiply It multiplies right operand with the left operand and assign the c *= a is
AND result to left operand equivalent
to c = c *
a

/= Divide AND It divides left operand with the right operand and assign the result c /= a is
to left operand equivalent
to c = c /
ac /= a is
equivalent
to c = c /
a

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512.
Page | 32
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 9.1 PYTHON
SYSTEMS USING AI

%= Modulus It takes modulus using two operands and assign the c %= a is equivalent to
AND result to left operand c=c%a

**= Exponent Performs exponential (power) calculation on operators c **= a is equivalent


AND and assign value to the left operand to c = c ** a

//= Floor It performs floor division on operators and assign c //= a is equivalent to
Division value to the left operand c = c // a

2.3 IDENTITY OPERATOR

Operator Description Example

is Evaluates to true if the variables on either side of x is y,


the operator point to the same object and false here is results
otherwise. in 1 if id(x)
equals id(y).

is not Evaluates to false if the variables on either side of x is not y,


the operator point to the same object and true here is
otherwise. not results in
1 if id(x) is
not equal to
id(y

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512.
Page | 33
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 9.1 PYTHON
SYSTEMS USING AI

2.4 COMPARISON OPERATOR

Operator Description Example

& Binary AND Operator copies a bit to the result if it exists in both (a & b)
operands (means
0000 1100)

| Binary OR It copies a bit if it exists in either operand. (a | b) = 61


(means
0011 1101)

^ Binary XOR It copies the bit if it is set in one operand but not both. (a ^ b) = 49
(means
0011 0001)

~ Binary Ones It is unary and has the effect of 'flipping' bits. (~a ) = -61
Complement (means
1100 0011
in 2's
complement
form due to
a signed
binary
number.

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512.
Page | 34
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 9.1 PYTHON
SYSTEMS USING AI

<< Binary Left Shift The left operands value is moved left by the number of bits a << 2 =
specified by the right operand. 240 (means
1111 0000)

>> Binary Right Shift The left operands value is moved right by the number of a >> 2 = 15
bits specified by the right operand. (means
0000 1111)

2.5 LOGICAL OPERATOR

Operator Description Example

and Logical If both the operands are true then condition (a and b)
AND becomes true. is true.

or Logical OR If any of the two operands are non-zero then (a or b)


condition becomes true. is true.

not Logical Used to reverse the logical state of its operand. Not(a
NOT and b) is
false.

2.6 Membership Operators

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512.
Page | 35
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 9.1 PYTHON
SYSTEMS USING AI

Operator Description Example

in Evaluates to true if it finds a variable in the specified sequence x in y, here in


and false otherwise. results in a 1 if x
is a member of
sequence y.

not in Evaluates to true if it does not finds a variable in the specified x not in y, here
sequence and false otherwise. not in results in a
1 if x is not a
member of
sequence y.

Python Operators Precedence

Operator Description

** Exponentiation (raise to the power)

~+- Complement, unary plus and minus (method names for the last two
are +@ and -@)

* / % // Multiply, divide, modulo and floor division

+- Addition and subtraction

>> << Right and left bitwise shift

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512.
Page | 36
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 9.1 PYTHON
SYSTEMS USING AI

& Bitwise 'AND'

^| Bitwise exclusive `OR' and regular `OR'

<= < > >= Comparison operators

<> == != Equality operators

= %= /= //= -= += *= Assignment operators


**=

is is not Identity operators

in not in Membership operators

not or and Logical operators

3.1 LIST

The list is a most versatile data type available in Python which can be written as a list of comma-
separated values (items) between square brackets. Important thing about a list is that items in a
list need not be of the same type.

Creating a list is as simple as putting different comma-separated values between square


brackets. For example −

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 37
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 9.1 PYTHON
SYSTEMS USING AI

list1 = ['physics', 'chemistry', 1997, 2000];

list2 = [1, 2, 3, 4, 5 ];

list3 = ["a", "b", "c", "d"]

BasicListOperations
Lists respond to the + and * operators much like strings; they mean concatenation and
repetition here too, except that the result is a new list, not a string.

Python Expression Results Description

len([1, 2, 3]) 3 Length

[1, 2, 3] + [4, 5, 6] [1, 2, 3, 4, 5, 6] Concatenation

['Hi!'] * 4 ['Hi!', 'Hi!', 'Hi!', 'Hi!'] Repetition

3 in [1, 2, 3] True Membership

for x in [1, 2, 3]: print x, 123 Iteration

Built-inListFunctions&Methods:
Python includes the following list functions −

SN Function with Description

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 38
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 9.1 PYTHON
SYSTEMS USING AI

1 cmp(list1, list2)

Compares elements of both lists.

2 len(list)

Gives the total length of the list.

3 max(list)

Returns item from the list with max value.

4 min(list)

Returns item from the list with min value.

5 list(seq)

Converts a tuple into list.

Python includes following list methods

SN Methods with Description

1 list.append(obj)

Appends object obj to list

2 list.count(obj)

Returns count of how many times obj occurs in list

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 39
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 9.1 PYTHON
SYSTEMS USING AI

3 list. extend(seq)

Appends the contents of seq to list

4 list.index(obj)

Returns the lowest index in list that obj appears

5 list.insert(index, obj)

Inserts object obj into list at offset index

6 list.pop(obj=list[-1])

Removes and returns last object or obj from list

7 list.remove(obj)

Removes object obj from list

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 40
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 9.1 PYTHON
SYSTEMS USING AI

8 list.reverse()

Reverses objects of list in place

9 list.sort([func])

Sorts objects of list, use compare function if given

3.2 TUPLES

A tuple is a sequence of immutable Python objects. Tuples are sequences, just like lists. The
differences between tuples and lists are, the tuples cannot be changed unlike lists and tuples
use parentheses, whereas lists use square brackets.

Creating a tuple is as simple as putting different comma-separated values. Optionally we can


put these comma-separated values between parentheses also. For example −

tup1 = ('physics', 'chemistry', 1997, 2000);

tup2 = (1, 2, 3, 4, 5 );

tup3 = "a", "b", "c", "d";

The empty tuple is written as two parentheses containing nothing −

tup1 = ();

To write a tuple containing a single value you have to include a comma, even though there is
only one value −

tup1 = (50,);

Like string indices, tuple indices start at 0, and they can be sliced, concatenated, and so on.

• AccessingValuesinTuples:
To access values in tuple, use the square brackets for slicing along with the index or indices to
obtain value available at that index. For example –

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 41
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 9.1 PYTHON
SYSTEMS USING AI

tup1 = ('physics', 'chemistry', 1997, 2000);

tup2 = (1, 2, 3, 4, 5, 6, 7 );

print "tup1[0]: ", tup1[0]

print "tup2[1:5]: ", tup2[1:5]

When the code is executed, it produces the following result −

tup1[0]: physics
tup2[1:5]: [2, 3, 4, 5]

Updating Tuples:
Tuples are immutable which means you cannot update or change the values of tuple elements.
We are able to take portions of existing tuples to create new tuples as the following example
demonstrates −

tup1 = (12, 34.56);

tup2 = ('abc', 'xyz');

tup3 = tup1 + tup2;

print tup3

When the above code is executed, it produces the following result −

(12, 34.56, 'abc', 'xyz')

DeleteTupleElements
Removing individual tuple elements is not possible. There is, of course, nothing wrong with
putting together another tuple with the undesired elements discarded.

To explicitly remove an entire tuple, just use the del statement. For example:

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 42
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 9.1 PYTHON
SYSTEMS USING AI

tup = ('physics', 'chemistry', 1997, 2000);

print tup

del tup;

print "After deleting tup : "

print tup

BasicTuplesOperations:

Python Expression Results Description

len((1, 2, 3)) 3 Length

(1, 2, 3) + (4, 5, 6) (1, 2, 3, 4, 5, 6) Concatenation

('Hi!',) * 4 ('Hi!', 'Hi!', 'Hi!', 'Hi!') Repetition

3 in (1, 2, 3) True Membership

for x in (1, 2, 3): print x, 123 Iteration

Built-in Tuple Functions

SN Function with Description

1 cmp(tuple1, tuple2):Compares elements of both tuples.

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 43
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 9.1 PYTHON
SYSTEMS USING AI

2 len(tuple):Gives the total length of the tuple.

3 max(tuple):Returns item from the tuple with max value.

4 min(tuple):Returns item from the tuple with min value.

5 tuple(seq):Converts a list into tuple.

3.2 DICTIONARY
Each key is separated from its value by a colon (:), the items are separated by commas, and
the whole thing is enclosed in curly braces. An empty dictionary without any items is written
with just two curly braces, like this: {}.

Keys are unique within a dictionary while values may not be. The values of a dictionary can
be of any type, but the keys must be of an immutable data type such as strings, numbers, or
tuples.

AccessingValuesinDictionary:
To access dictionary elements, you can use the familiar square brackets along with the key to
obtain its value. Following is a simple example −

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}

print "dict['Name']: ", dict['Name']

print "dict['Age']: ", dict['Age']

Result –

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 44
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 9.1 PYTHON
SYSTEMS USING AI

dict['Name']: Zara
dict['Age']: 7

Updating Dictionary
We can update a dictionary by adding a new entry or a key-value pair, modifying an existing
entry, or deleting an existing entry as shown below in the simple example −

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}

dict['Age'] = 8; # update existing entry

dict['School'] = "DPS School"; # Add new entry

print "dict['Age']: ", dict['Age']

print "dict['School']: ", dict['School']

Result −

dict['Age']: 8
dict['School']: DPS School

DeleteDictionary Elements
We can either remove individual dictionary elements or clear the entire contents of a
dictionary. You can also delete entire dictionary in a single operation.

To explicitly remove an entire dictionary, just use the del statement. Following is a simple
example –

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 45
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 9.1 PYTHON
SYSTEMS USING AI

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}

del dict['Name']; # remove entry with key 'Name'

dict.clear(); # remove all entries in dict

del dict ; # delete entire dictionary

print "dict['Age']: ", dict['Age']

print "dict['School']: ", dict['School']

Built-inDictionaryFunctions&Methods–
Python includes the following dictionary functions −

SN Function with Description

1 cmp(dict1, dict2)

Compares elements of both dict.

2 len(dict)

Gives the total length of the dictionary. This would be equal to the number of items in the dictionary.

3 str(dict)

Produces a printable string representation of a dictionary

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 46
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 9.1 PYTHON
SYSTEMS USING AI

4 type(variable)

Returns the type of the passed variable. If passed variable is dictionary, then it would return a dictionary
type.

Python includes following dictionary methods −

SN Methods with Description

1 dict.clear():Removes all elements of dictionary dict

dict. Copy():Returns a shallow copy of dictionary dict


2

3 dict.fromkeys():Create a new dictionary with keys from seq and values set to value.

4 dict.get(key, default=None):For key key, returns value or default if key not in dictionary

5 dict.has_key(key):Returns true if key in dictionary dict, false otherwise

6 dict.items():Returns a list of dict's (key, value) tuple pairs

7 dict.keys():Returns list of dictionary dict's keys

8 dict.setdefault(key, default=None):Similar to get(), but will set dict[key]=default if key is not alrea
in dict

9 dict.update(dict2):Adds dictionary dict2's key-values pairs to dict

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 47
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 9.1 PYTHON
SYSTEMS USING AI

10 dict.values():Returns list of dictionary dict's values

A function is a block of organized, reusable code that is used to perform a single, related
action. Functions provide better modularity for your application and a high degree of code
reusing. Python gives you many built-in functions like print(), etc. but you can also create
your own functions. These functions are called user-defined functions.

DefiningaFunction
Simple rules to define a function in Python.

• Function blocks begin with the keyword def followed by the function name and
parentheses ( ( ) ).
• Any input parameters or arguments should be placed within these parentheses. You
can also define parameters inside these parentheses.

• The first statement of a function can be an optional statement - the documentation string
of the function or docstring.

• The code block within every function starts with a colon (:) and is indented.

• The statement return [expression] exits a function, optionally passing back an


expression to the caller. A return statement with no arguments is the same as return
None.

def functionname( parameters ):

"function_docstring"

function_suite

return [expression]

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 48
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 9.1 PYTHON
SYSTEMS USING AI

CallingaFunction
Defining a function only gives it a name, specifies the parameters that are to be included in
the function and structures the blocks of code.Once the basic structure of a function is
finalized, you can execute it by calling it from another function or directly from the Python
prompt. Following is the example to call printme() function −

# Function definition is here

def printme( str ):

"This prints a passed string into this function"

print str

return;

# Now you can call printme function

printme("I'm first call to user defined function!")

printme("Again second call to the same function")

When the above code is executed, it produces the following result −

I'm first call to user defined function!

Again second call to the same function

FunctionArguments
You can call a function by using the following types of formal arguments:

• Required arguments

• Keyword arguments

• Default arguments

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 49
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 9.1 PYTHON
SYSTEMS USING AI

• Variable-length arguments

ScopeofVariables
All variables in a program may not be accessible at all locations in that program. This depends
on where you have declared a variable.

The scope of a variable determines the portion of the program where you can access a
particular identifier. There are two basic scopes of variables in Python −

Global variables Local variables

Globalvs.Localvariables
Variables that are defined inside a function body have a local scope, and those defined outside
have a global scope.

This means that local variables can be accessed only inside the function in which they are
declared, whereas global variables can be accessed throughout the program body by all
functions. When you call a function, the variables declared inside it are brought into scope.
Following is a simple example −

total = 0; # This is global variable.

# Function definition is here

def sum( arg1, arg2 ):

# Add both the parameters and return them."

total = arg1 + arg2; # Here total is local variable.

print "Inside the function local total : ", total

return total;

sum( 10, 20 );

print "Outside the function global total : ", total

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 50
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 9.1 PYTHON
SYSTEMS USING AI

Result −

Inside the function local total : 30

Outside the function global total : 0

A module allows you to logically organize your Python code. Grouping related code into a
module makes the code easier to understand and use. A module is a Python object with arbitrarily
named attributes that you can bind and reference.Simply, a module is a file consisting of Python
code. A module can define functions, classes and variables. A module can also include runnable
code.

Example:
The Python code for a module named aname normally resides in a file named aname.py.
Here's an example of a simple module, support.py

def print_func( par ):

print "Hello : ", par

return

TheimportStatement
The import has the following syntax:

import module1[, module2[,... moduleN]

When the interpreter encounters an import statement, it imports the module if the module is
present in the search path. A search path is a list of directories that the interpreter searches
before importing a module. For example, to import the module support.py, you need to put the
following command at the top of the script −

A module is loaded only once, regardless of the number of times it is imported. This prevents
the module execution from happening over and over again if multiple imports occur.

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 51
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 9.1 PYTHON
SYSTEMS USING AI

PackagesinPython
A package is a hierarchical file directory structure that defines a single Python application
environment that consists of modules and sub packages and sub-sub packages.

Consider a file Pots.py available in Phone directory. This file has following line of source
code −

def Pots():

print "I'm Pots Phone"

Similar way, we have another two files having different functions with the same name as
above −

• Phone/Isdn.py file having function Isdn()

• Phone/G3.py file having function G3()


Now, create one more file init .py in Phone directory −

• Phone/ init .py

To make all of your functions available when you've imported Phone,to put explicit import
statements in init .py as follows −

from Pots import Pots

from Isdn import Isdn

from G3 import G3

After you add these lines to init .py, you have all of these classes available when you
import the Phone package.

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 52
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 9.1 PYTHON
SYSTEMS USING AI

# Now import your Phone Package.

import Phone

Phone.Pots()

Phone.Isdn()

Phone.G3()

RESULT:

I'm Pots Phone

I'm 3G Phone

I'm ISDN Phone

In the above example, we have taken example of a single functions in each file, but you can
keep multiple functions in your files. You can also define different Python classes in those
files and then you can create your packages out of those classes.
This chapter covers all the basic I/O functions available in Python.

PrintingtotheScreen
The simplest way to produce output is using the print statement where you can pass zero or
more expressions separated by commas. This function converts the expressions you pass into
a string and writes the result to standard output as follows −

print "Python is really a great language,", "isn't it?"

Result:

Python is really a great language, isn't it?

ReadingKeyboardInput
Python provides two built-in functions to read a line of text from standard input, which by
default comes from the keyboard. These functions are −

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 53
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 9.1 PYTHON
SYSTEMS USING AI

• raw_input

• input

Theraw_inputFunction
The raw_input([prompt]) function reads one line from standard input and returns it as a string
(removing the trailing newline).

str = raw_input("Enter your input: ");

print "Received input is : ", str

This prompts you to enter any string and it would display same string on the screen. When I
typed "Hello Python!", its output is like this −

Enter your input: Hello Python

Received input is : Hello Python

TheinputFunction
The input([prompt]) function is equivalent to raw_input, except that it assumes the input is a
valid Python expression and returns the evaluated result to you.

str = input("Enter your input: ");

print "Received input is : ", str

This would produce the following result against the entered input −

Enter your input: [x*5 for x in range(2,10,2)]

Recieved input is : [10, 20, 30, 40]

OpeningandClosingFiles
Until now, you have been reading and writing to the standard input and output. Now, we will
see how to use actual data files.

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 54
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 9.1 PYTHON
SYSTEMS USING AI

Python provides basic functions and methods necessary to manipulate files by default. You
can do most of the file manipulation using a file object.

TheopenFunction
Before you can read or write a file, you have to open it using Python's built-in open() function.
This function creates a file object, which would be utilized to call other support methods
associated with it.

Syntax

file object = open(file_name [, access_mode][, buffering])

Here are parameter details:

• file_name: The file_name argument is a string value that contains the name of the file
hat you

Modes Description

r Opens a file for reading only. The file pointer is placed at the beginning of the file. This
is the default mode.

rb Opens a file for reading only in binary format. The file pointer is placed at the
beginning of the file. This is the default mode.

r+ Opens a file for both reading and writing. The file pointer placed at the beginning of the
file.

rb+ Opens a file for both reading and writing in binary format. The file pointer placed at the
beginning of the file.

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 55
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 9.1 PYTHON
SYSTEMS USING AI

w Opens a file for writing only. Overwrites the file if the file exists. If the file does not
exist, creates a new file for writing.

wb Opens a file for writing only in binary format. Overwrites the file if the file exists. If the
file does not exist, creates a new file for writing.

w+ Opens a file for both writing and reading. Overwrites the existing file if the file exists. If
the file does not exist, creates a new file for reading and writing.

wb+ Opens a file for both writing and reading in binary format. Overwrites the existing file if
the file exists. If the file does not exist, creates a new file for reading and writing.

a Opens a file for appending. The file pointer is at the end of the file if the file exists. That
is, the file is in the append mode. If the file does not exist, it creates a new file for
writing.

ab Opens a file for appending in binary format. The file pointer is at the end of the file if
the file exists. That is, the file is in the append mode. If the file does not exist, it creates
a new file for writing.

a+ Opens a file for both appending and reading. The file pointer is at the end of the file if
the file exists. The file opens in the append mode. If the file does not exist, it creates a
new file for reading and writing.

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 56
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 9.1 PYTHON
SYSTEMS USING AI

ab+ Opens a file for both appending and reading in binary format. The file pointer is at the
end of the file if the file exists. The file opens in the append mode. If the file does not
exist, it creates a new file for reading and writing.

• access_mode: The access_mode determines the mode in which the file has to be
opened, i.e., read, write, append, etc. A complete list of possible values is given below
in the table. This is optional parameter and the default file access mode is read (r).

• buffering: If the buffering value is set to 0, no buffering takes place. If the buffering
value is 1, line buffering is performed while accessing a file. If you specify the
buffering value as an integer greater than 1, then buffering action is performed with
the indicated buffer size. If negative, the buffer size is the system default(default
behavior).

Here is a list of the different modes of opening a file –

ThefileObjectAttributes
Once a file is opened and you have one file object, you can get various information related to
that file.

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 57
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 9.1 PYTHON
SYSTEMS USING AI

Here is a list of all attributes related to file object:

Attribute Description

file.closed Returns true if file is closed, false otherwise.

file.mode Returns access mode with which file was opened.

file.name Returns name of the file.

file.softspace Returns false if space explicitly required with print, true otherwise.

Example

# Open a file

fo = open("foo.txt", "wb")

print "Name of the file: ", fo.name

print "Closed or not : ", fo.closed

print "Opening mode : ", fo.mode

print "Softspace flag : ", fo.softspace

This produces the following result −

Name of the file: foo.txt


Closed or not : False
Opening mode : wb
Softspace flag : 0

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 58
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 9.1 PYTHON
SYSTEMS USING AI

Theclose()Method
The close() method of a file object flushes any unwritten information and closes the file object,
after which no more writing can be done.Python automatically closes a file when the reference
object of a file is reassigned to another file. It is a good practice to use the close() method to
close a file.

Syntax

fileObject.close();

Example

# Open a file

fo = open("foo.txt", "wb")

print "Name of the file: ", fo.name

# Close opend file

fo.close()

Result −

Name of the file: foo.txt

ReadingandWritingFiles
The file object provides a set of access methods to make our lives easier. We would see how
to use read() and write() methods to read and write files.

Thewrite()Method
The write() method writes any string to an open file. It is important to note that Python strings
can have binary data and not just text.The write() method does not add a newline character
('\n') to the end of the string Syntax

fileObject.write(string);

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 59
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 9.1 PYTHON
SYSTEMS USING AI

Here, passed parameter is the content to be written into the opened file.
Example
# Open a file

fo = open("foo.txt", "wb")

fo.write( "Python is a great language.\nYeah its great!!\n");

# Close opend file

fo.close()

The above method would create foo.txt file and would write given content in that file and
finally it would close that file. If you would open this file, it would have following content.

Python is a great language.


Yeah its great!!

Theread()Method
The read() method reads a string from an open file. It is important to note that Python strings
can have binary data. apart from text data.

Syntax

fileObject.read([count]);

Here, passed parameter is the number of bytes to be read from the opened file. This method
starts reading from the beginning of the file and if count is missing, then it tries to read as
much as possible, maybe until the end of file.

Example
Let's take a file foo.txt, which we created above.

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 60
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 9.1 PYTHON
SYSTEMS USING AI

# Open a file

fo = open("foo.txt", "r+")

str = fo.read(10);

print "Read String is : ", str

# Close opend file

fo.close()

This produces the following result −

Read String is : Python is

FilePositions
The tell() method tells you the current position within the file; in other words, the next read or
write will occur at that many bytes from the beginning of the file.

32

The seek(offset[, from]) method changes the current file position. The offset argument
indicates the number of bytes to be moved. The from argument specifies the reference position
from where the bytes are to be moved.

If from is set to 0, it means use the beginning of the file as the reference position and 1 means
use the current position as the reference position and if it is set to 2 then the end of the file
would be taken as the reference position.

Example
Let us take a file foo.txt, which we created above.

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 61
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 9.1 PYTHON
SYSTEMS USING AI

# Open a file

fo = open("foo.txt", "r+")

str = fo.read(10);

print "Read String is : ", str

# Check current position

position = fo.tell();

print "Current file position : ", position

# Reposition pointer at the beginning once again

position = fo.seek(0, 0);

str = fo.read(10);

print "Again read String is : ", str

# Close opend file

fo.close()

This produces the following result −

Read String is : Python is

Current file position : 10

Again read String is : Python is

RenamingandDeletingFiles
Python os module provides methods that help you perform file-processing operations, such as
renaming and deleting files.

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 62
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 9.1 PYTHON
SYSTEMS USING AI

To use this module you need to import it first and then you can call any related functions.

Therename()Method
The rename() method takes two arguments, the current filename and the new filename.

Syntax

os.rename(current_file_name, new_file_name)

Example
Following is the example to rename an existing file test1.txt:

import os

# Rename a file from test1.txt to test2.txt

os.rename( "test1.txt", "test2.txt" )

Theremove()Method
You can use the remove() method to delete files by supplying the name of the file to be deleted
as the argument.

Syntax

os.remove(file_name)

Example
Following is the example to delete an existing file test2.txt –

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 63
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 9.1 PYTHON
SYSTEMS USING AI

#!/usr/bin/python

import os

# Delete file test2.txt

os.remove("text2.txt")

DirectoriesinPython
All files are contained within various directories, and Python has no problem handling these
too. The os module has several methods that help you create, remove, and change directories.

Themkdir()Method
You can use the mkdir() method of the os module to create directories in the current directory.
You need to supply an argument to this method which contains the name of the directory to
be created.

Syntax

os.mkdir("newdir")

Example
Following is the example to create a directory test in the current directory −
#!/usr/bin/python

import os

# Create a directory "test"

os.mkdir("test")

Thechdir()Method
You can use the chdir() method to change the current directory. The chdir() method takes an
argument, which is the name of the directory that you want to make the current directory.

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 64
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 9.1 PYTHON
SYSTEMS USING AI

Syntax

os.chdir("newdir")

Example
Following is the example to go into "/home/newdir" directory −

#!/usr/bin/python

import os

# Changing a directory to "/home/newdir"

os.chdir("/home/newdir")

Thegetcwd()Method
The getcwd() method displays the current working directory.

Syntax

os.getcwd()

Example
Following is the example to give current directory −
import os

# This would give location of the current directory

os.getcwd()

Thermdir()Method
The rmdir() method deletes the directory, which is passed as an argument in the method.

Before removing a directory, all the contents in it should be removed.

Syntax:

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 65
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 9.1 PYTHON
SYSTEMS USING AI

os.rmdir('dirname')

Example
Following is the example to remove "/tmp/test" directory. It is required to give fully qualified
name of the directory, otherwise it would search for that directory in the current directory.

import os

# This would remove "/tmp/test" directory.

os.rmdir( "/tmp/test" )

EXCEPTION NAME DESCRIPTION

Exception Base class for all exceptions

StopIteration Raised when the next() method of an iterator does not point to any object.

SystemExit Raised by the sys.exit() function.

StandardError Base class for all built-in exceptions except StopIteration and
SystemExit.

ArithmeticError Base class for all errors that occur for numeric calculation.

OverflowError Raised when a calculation exceeds maximum limit for a numeric type.

FloatingPointError Raised when a floating point calculation fails.

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 66
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 9.1 PYTHON
SYSTEMS USING AI

ZeroDivisionError Raised when division or modulo by zero takes place for all numeric
types.

AssertionError Raised in case of failure of the Assert statement.

AttributeError Raised in case of failure of attribute reference or assignment.

EOFError Raised when there is no input from either the raw_input() or input()
function and the end of file is reached.

ImportError Raised when an import statement fails.

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 67
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 9.1 PYTHON
SYSTEMS USING AI

KeyboardInterrupt Raised when the user interrupts program execution, usually by pressing
Ctrl+c.

LookupError Base class for all lookup errors.

IndexError Raised when an index is not found in a sequence.

KeyError Raised when the specified key is not found in the dictionary.

NameError Raised when an identifier is not found in the local or global namespace.

UnboundLocalError Raised when trying to access a local variable in a function or method but
no value has been assigned to it.
EnvironmentError
Base class for all exceptions that occur outside the Python environment.

IOError Raised when an input/ output operation fails, such as the print statement
or the open() function when trying to open a file that does not exist.
IOError
Raised for operating system-related errors.

SyntaxError Raised when there is an error in Python syntax.

IndentationError Raised when indentation is not specified properly.

SystemError Raised when the interpreter finds an internal problem, but when this error
is encountered the Python interpreter does not exit.

SystemExit Raised when Python interpreter is quit by using the sys.exit() function. If
not handled in the code, causes the interpreter to exit.

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 68
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 9.1 PYTHON
SYSTEMS USING AI

TypeError Raised when an operation or function is attempted that is invalid for the
specified data type.

ValueError Raised when the built-in function for a data type has the valid type of
arguments, but the arguments have invalid values specified.

RuntimeError Raised when a generated error does not fall into any category.

NotImplementedError Raised when an abstract method that needs to be implemented in an


inherited class is not actually implemented.

File&DirectoryRelatedMethods
There are three important sources, which provide a wide range of utility methods to handle
and manipulate files & directories on Windows and Unix operating systems. They are as
follows −

• File Object Methods: The file object provides functions to manipulate files.

• OS Object Methods: This provides methods to process files as well as directories.

Python provides two very important features to handle any unexpected error in your Python
programs and to add debugging capabilities in them −

• Exception Handling: This would be covered in this tutorial. Here is a list standard
Exceptions available in Python: Standard Exceptions.

• Assertions: This would be covered in Assertions in Python

List of Standard Exceptions –

What is Exception?
An exception is an event, which occurs during the execution of a program that disrupts the
normal flow of the program's instructions. In general, when a Python script encounters a
situation that it cannot cope with, it raises an exception. An exception is a Python object that
represents an error.

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 69
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 9.1 PYTHON
SYSTEMS USING AI

When a Python script raises an exception, it must either handle the exception immediately
otherwise it terminates and quits.

Handlinganexception
If you have some suspicious code that may raise an exception, you can defend your program
by placing the suspicious code in a try: block. After the try: block, include an
except: statement, followed by a block of code which handles the problem as elegantly as
possible.
The Python standard for database interfaces is the Python DB-API. Most Python database
interfaces adhere to this standard.
You can choose the right database for your application. Python Database API supports a wide
range of database servers such as −

• GadFly

• mSQL

• MySQL

• PostgreSQL

• Microsoft SQL Server 2000

• Informix

• Interbase

• Oracle

• Sybase

The DB API provides a minimal standard for working with databases using Python structures
and syntax wherever possible. This API includes the following:

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 70
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 9.2 SOURCE CODE
SYSTEMS USING AI

• Importing the API module.

• Acquiring a connection with the database.

• Issuing SQL statements and stored procedures.

• Closing the connection

9.2 SOURCE CODE


Manage.py
#!/usr/bin/env python
"""Django's command-line utility for administrative tasks."""
import os
import sys

def main():
"""Run administrative tasks."""
os.environ.setdefault('DJANGO_SETTINGS_MODULE',
'identifying_student_profiles.settings')
try:
from django.core.management import execute_from_command_line
except ImportError as exc:
raise ImportError(
"Couldn't import Django. Are you sure it's installed and "
"available on your PYTHONPATH environment variable? Did you "
"forget to activate a virtual environment?"
) from exc
execute_from_command_line(sys.argv)

if name == ' main ':


main()

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 71
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 9.2 SOURCE CODE
SYSTEMS USING AI

INDEX.HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"


"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
{% load static %}
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Home Page</title>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<link rel="stylesheet" type="text/css" href="{% static 'style.css'%} " />


<link rel="stylesheet" type="text/css" href="{% static 'coin-slider.css'%}" />

<script type="text/javascript" src="{% static 'cufon-yui.js'%} "></script>


<script type="text/javascript" src="{% static 'cufon-aller.js'%}"></script>
<script type="text/javascript" src="{% static 'jquery-1.4.2.min.js'%}"></script>
<script type="text/javascript" src="{% static 'script.js'%}"></script>
<script type="text/javascript" src="{% static 'coin-slider.min.js'%}"></script>
<style type="text/css">
<!--
.style5 {
font-size: 24px;
color: #FF0000;
}
.style12 {font-weight: bold}
.style13 {font-size: 24px; color: #FF0000; font-weight: bold; }
.style16 {
color: #FF0000;
font-weight: bold;
}
-->
</style>

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 72
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 9.2 SOURCE CODE
SYSTEMS USING AI

</head>
<body>
<div class="main">
<div class="header">
<div class="header_resize">
<div class="menu_nav">
<p>&nbsp;</p>
</div>
<div class="mainbar">
<h1 align="center"><a href="index.html"><span class="content style5">Identifying
Student Profiles within Online Judge systems using Explainable Artificial
Intelligence</span></a></h1>

<div class="tab-content tab-space">


<div class="tab-pane active" id="preview-alerts">

<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700"
rel="stylesheet" />
<script src="https://kit.fontawesome.com/42d5adcbca.js"
crossorigin="anonymous"></script><link href="https://unpkg.com/soft-ui-design-
[email protected]/assets/css/soft-design-system.min.css" rel="stylesheet" /><div class="container
py-5">
<div class="row">
<div class="alert alert-primary text-white font-weight-bold" role="alert">
<p align="center"><span class="active"><span class="style12"><a href="{% url 'index'
%}">Home| </a><a href="{% url 'login' %}">Virtual User </a>|<a href="{% url
'serviceproviderlogin' %}"> Agent </a></span></span></p>
</div>
<div>
</div>

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 73
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 9.2 SOURCE CODE
SYSTEMS USING AI

<div align="left"><img src="{% static 'Banner.jpg'%}" width="1142" height="319"


alt="" class="fl" /> </div>
</div>
<div class="clr"></div>
<div class="slider">

</div>
<div class="clr"></div>
</div>
</div>
<div class="content">
<div class="content_resize">
<div class="mainbar">
<div class="article">
<h2 align="center" class="style13"> Student profile identification, Online Judge
systems, Multi-Instance Learning, eXplainable Artificial Intelligence,
Machine Learning
</h2>
<div class="img">
<div align="center"><img src="{% static 'img1.jpg'%}" width="630" height="221"
alt="" class="fl" /></div>
</div>
<div class="post_content">
<p align="center" class="style16">Online Judge (OJ) systems are typically considered
within programming-related courses as they yield fast and objective assessments of the code
developed by the students. Such an evaluation generally provides a single decision based on a
rubric, most commonly whether the submission successfully accomplished the assignment.
Nevertheless, since in an educational context such information may be deemed insufficient, it
would be beneficial for both the student and the instructor to receive additional feedback about
the overall development of the task. This work aims to tackle this limitation by considering the
further exploitation of the information gathered by the OJ and automatically inferring feedback
for both the student and the instructor. More precisely, we consider the use of learning-based
schemes—particularly, Multi-Instance Learning and classical Machine Learning

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 74
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 9.2 SOURCE CODE
SYSTEMS USING AI

formulations—to model student behavior. Besides, Explainable Artificial Intelligence is


contemplated to provide human-understandable feedback. The proposal has been evaluated
considering a case of study comprising 2,500 submissions from roughly 90 different students
from a programming-related course in a Computer Science degree. The results obtained
validate the proposal: the model is capable of significantly predicting the user outcome (either
passing or failing the assignment) solely based on the behavioral pattern inferred by the
submissions provided to the OJ. Moreover, the proposal is able to identify prone-to-fail student
groups and profiles as well as other relevant information, which eventually serves as feedback
to both the student and the instructor..</p>
</div>

<div class="tab-content tab-space">


<div class="tab-pane active" id="preview-alerts">

<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700"
rel="stylesheet" />
<script src="https://kit.fontawesome.com/42d5adcbca.js"
crossorigin="anonymous"></script><link href="https://unpkg.com/soft-ui-design-
[email protected]/assets/css/soft-design-system.min.css" rel="stylesheet" /><div class="container
py-5">
<div class="row">
<div class="alert alert-primary text-white font-weight-bold" role="alert">
<p align="center"><span class="active"><span class="style12"><a href="{% url 'login'
%}">Home| </a><a href="{% url 'login' %}">Remote User </a>|<a href="{% url
'serviceproviderlogin' %}"> Service Provider </a></span></span></p>
</div>
<div>
</div>
<div class="clr"></div>
</div>
</div>
<div class="sidebar">
<div class="searchform"></div>

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 75
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 9.2 SOURCE CODE
SYSTEMS USING AI

<div class="clr"></div>
</div>
<div class="clr"></div>
</div>
</div>
<div class="fbg"></div>
<div class="footer"></div>
</div>
<div align=center></div>
</body>
</html>

PREDICT_ONLINE_STUDENT_JUDGEMENT.HTML

{% extends 'RUser/Header.html' %}
{% block userblock %}

<link rel="icon" href="images/icon.png" type="image/x-icon" />

<link href="https://fonts.googleapis.com/css?family=Lobster" rel="stylesheet">


<link href="https://fonts.googleapis.com/css?family=Righteous"
rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Fredoka+One" rel="stylesheet">
<style>
body {background-color:#000000;}
.container-fluid {padding:50px;}
.container{background-color:white;padding:50px; }
#title{font-family: 'Fredoka One', cursive;
}
.text-uppercase{
font-family: 'Righteous', cursive;

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 76
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 9.2 SOURCE CODE
SYSTEMS USING AI

}
.tweettext{
border: 2px solid yellowgreen;
width: 904px;
height: 202px;
overflow: scroll;
background-color:;
}
.style1 {
color: #FF0000;
font-weight: bold;
}
.style4 {color: #FFFF00; font-weight: bold; }
.style6 {
font-size: 24px;
color: #FFFF00;
font-weight: bold;
}
</style>

<body>
<div class="container-fluid">
<div class="container">

<div class="row">
<div class="col-md-5">

<form role="form" method="POST" >


{% csrf_token %}
<fieldset>
<p class="text-uppercase pull-center
style1">PREDICTION OF ONLINE STUDENT'S PROFILE JUDGEMENT DETECTION!!!
</p>

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 77
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 9.2 SOURCE CODE
SYSTEMS USING AI

<hr>

{% csrf_token %}
<table width="1122" align="center">
<tr>
<td height="44" bgcolor="#FF0000"><div align="center"
class="style4">Enter Fid</div></td>
<td><input type="text" name="Fid"></td>
<td bgcolor="#FF0000"><div align="center" class="style4">Enter age
</div></td>
<td><input type="text" name="age"></td>
</tr>
<tr>
<td height="44" bgcolor="#FF0000"><div align="center"
class="style4">Enter gender </div></td>
<td><select name="gender">
<option>---Select---</option>
<option>Male</option>
<option>Female</option>
</select></td>
<td bgcolor="#FF0000"><div align="center" class="style4">Enter
lunch </div></td>
<td><input type="text" name="lunch"></td>
</tr>
<tr>
<td height="44" bgcolor="#FF0000"><div align="center"

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 78
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 9.2 SOURCE CODE
SYSTEMS USING AI

class="style4">Enter parental_level_of_education</div></td>
<td><input type="text" name="parental_level_of_education"></td>
<td bgcolor="#FF0000"><div align="center"
class="style4">degree_t</div></td>
<td><input type="text" name="degree_t"></td>
</tr>
<tr>
<td height="44" bgcolor="#FF0000"><div align="center"
class="style4">Enter race_ethnicity</div></td>
<td><input type="text" name="race_ethnicity"></td>
<td bgcolor="#FF0000"><div align="center" class="style4">Enter
test_preparation_course </div></td>
<td><input type="text" name="test_preparation_course"></td>
</tr>
<tr>
<td height="44" bgcolor="#FF0000"><div align="center"
class="style4">
<div align="center">Enter math_score</div>
</div></td>
<td><input type="text" name="math_score"></td>
<td bgcolor="#FF0000"><div align="center" class="style4">Enter
reading_score</div></td>
<td><input type="text" name="reading_score"></td>
</tr>
<tr>
<td height="44" bgcolor="#FF0000"><div align="center"
class="style4">
<div align="center">Enter writing_score</div>
</div></td>
<td><input type="text" name="writing_score"></td>
<td bgcolor="#FF0000"><div align="center" class="style4">Enter

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 79
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 9.2 SOURCE CODE
SYSTEMS USING AI

Internships</div></td>
<td><input type="text" name="Internships"></td>
</tr>
<tr>
<td height="44" bgcolor="#FF0000"><div align="center"
class="style4">Enter solving_tasks_by_time</div></td>
<td><input type="text" name="solving_tasks_by_time"></td>
<td bgcolor="#FF0000"><div align="center" class="style4">Enter
taks_submitted_on_date</div></td>
<td><input type="text" name="taks_submitted_on_date"></td>
</tr>
<tr>
<td width="287" height="44" bgcolor="#FFFFFF">&nbsp;</td>
<td width="269"><input name="submit" type="submit" class="style1"
value="Predict"></td>
<td width="269">&nbsp;</td>
<td width="269">&nbsp;</td>
</tr>
</table>
</fieldset>
</form>
<form role="form" method="POST" >
{% csrf_token %}
<fieldset>
<hr>
<div>
<table width="693" height="67" border="0" align="center" >
<tr><td width="475" bgcolor="#FF0000"><div align="center"><span
class="style6">Prediction Of Online Student's Profile Judgement </span> :: </div></td>
<td width="208" bgcolor="#FFFFFF" style="color:red; font-
size:20px; font-family:fantasy" ><div align="center"><strong>{{objs}}</strong></div></td>
</tr>
</table>

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 80
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 9.2 SOURCE CODE
SYSTEMS USING AI

</div>
</fieldset>
</form>
</div>

<div class="col-md-2">
</div>
</div>
</div>
</div>
{% endblock %}
<tr>

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 81
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 10.RESULTS/DISCUSSIONS
SYSTEMS USING AI

CHAPTER-10
RESULTS/DISCUSSIONS

10.1 SYSTEM TESTING


The purpose of testing is to discover errors. Testing is the process of trying to discover every
conceivable fault or weakness in a work product. It provides a way to check the functionality
of components, sub assemblies, assemblies and/or a finished product It is the process of
exercising software with the intent of ensuring that the Software system meets its requirements
and user expectations and does not fail in an unacceptable manner. There are various types of
test. Each test type addresses a specific testing requirement.

TYPES OF TESTS
Unit testing :
Unit testing involves the design of test cases that validate that the internal program logic is
functioning properly, and that program inputs produce valid outputs. All decision branches and
internal code flow should be validated. It is the testing of individual software units of the
application .it is done after the completion of an individual unit before integration. This is a
structural testing, that relies on knowledge of its construction and is invasive. Unit tests perform
basic tests at component level and test a specific business process, application, and/or system
configuration. Unit tests ensure that each unique path of a business process performs accurately
to the documented specifications and contains clearly defined inputs and expected results.
Integration testing
Integration tests are designed to test integrated software components to
determine if they actually run as one program. Testing is event driven and is more concerned
with the basic outcome of screens or fields. Integration tests demonstrate that although the
components were individually satisfaction, as shown by successfully unit testing, the
combination of components is correct and consistent. Integration testing is specifically aimed
at exposing the problems that arise from the combination of components.
Functional test
Functional tests provide systematic demonstrations that functions tested are
available as specified by the business and technical requirements, system documentation, and
user manuals.

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 82
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 10.RESULTS/DISCUSSIONS
SYSTEMS USING AI

Functional testing is centered on the following items:


Valid Input : identified classes of valid input must be accepted.
Invalid Input : identified classes of invalid input must be rejected.
Functions : identified functions must be exercised.
Output : identified classes of application outputs must be exercised.
Systems/Procedures : interfacing systems or procedures must be invoked.
Organization and preparation of functional tests is focused on requirements, key
functions, or special test cases. In addition, systematic coverage pertaining to identify Business
process flows; data fields, predefined processes, and successive processes must be considered
for testing. Before functional testing is complete, additional tests are identified and the effective
value of current tests is determined.
System Test
System testing ensures that the entire integrated software system meets
requirements. It tests a configuration to ensure known and predictable results. An example of
system testing is the configuration oriented system integration test. System testing is based on
process descriptions and flows, emphasizing pre-driven process links and integration points.
White Box Testing
White Box Testing is a testing in which in which the software tester has
knowledge of the inner workings, structure and language of the software, or at least its purpose.
It is purpose. It is used to test areas that cannot be reached from a black box level.
Black Box Testing
Black Box Testing is testing the software without any knowledge of the inner
workings, structure or language of the module being tested. Black box tests, as most other kinds
of tests, must be written from a definitive source document, such as specification or
requirements document, such as specification or requirements document. It is a testing in which
the software under test is treated, as a black box .you cannot “see” into it. The test provides
inputs and responds to outputs without considering how the software works.
Unit Testing
Unit testing is usually conducted as part of a combined code and unit test phase
of the software lifecycle, although it is not uncommon for coding and unit testing to be
conducted as two distinct phases.
Test strategy and approach
Field testing will be performed manually and functional tests will be writtenin detail.

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 83
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 10.RESULTS/DISCUSSIONS
SYSTEMS USING AI

Test objectives
• All field entries must work properly.
• Pages must be activated from the identified link.
• The entry screen, messages and responses must not be delayed.

Features to be tested
• Verify that the entries are of the correct format
• No duplicate entries should be allowed
• All links should take the user to the correct page.

Integration Testing

Software integration testing is the incremental integration testing of two or more


integrated software components on a single platform to produce failures caused by interface
defects.The task of the integration test is to check that components or software applications,
e.g. components in a software system or – one step up – software applications at the company
level – interact without error.
Test Results: All the test cases mentioned above passed successfully. No defects encountered.
Acceptance Testing
User Acceptance Testing is a critical phase of any project and requires significant participation
by the end user. It also ensures that the system meets the functional requirements.
Test Results: All the test cases mentioned above passed successfully. No defects encountered.
10.1.1 TEST CASES

Test case1

Test case for Login form:

FUNCTION: LOGIN
EXPECTED RESULTS: Should Validate the user and check his

existence in database
ACTUAL RESULTS: Validate the user and checking the user

against the database

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 84
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 10.RESULTS/DISCUSSIONS
SYSTEMS USING AI

LOW PRIORITY No

HIGH PRIORITY Yes

Test case2:
Test case for User Registration form:

FUNCTION REMOTE USER REGISTRATION


EXPECTED RESULTS: Should check if all the fields are filled by the

user and saving the user to database.


ACTUAL RESULTS: Checking whether all the fields are filled by
user or not through validations and saving user.

LOW PRIORITY No
HIGH PRIORITY Yes

Test case3:
Test case for Change Password:

When the old password does not match with the new password , then this results in displaying
an error message as “ OLD PASSWORD DOES NOT MATCH WITH THE NEW
PASSWORD”.

Test case 4:

Test case for Forget Password:


When a user forgets his password he is asked to enter Login name, ZIP code,
Mobile number. If these are matched with the already stored ones then user will get his Original
password.

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 85
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 10.RESULTS/DISCUSSIONS
SYSTEMS USING AI

Modu le Functio Test Case Expected Results Actual Res


Priori
nality Results ult
ty

1. Navigate To A Pass High


User Login A Validation Should
Www.Sample.Co m
Usecase Be As BelowValidation
2. Click OnSubmit“Please Enter ValidHas Been

Button Without EnteringUsername & Populated


Username and Password Password” As Expected

1. aNavigate To A
A Validation Should Pass
Www.Sample.Co m High
Be As BelowValidation Is
“Please Enter ValidShown As
2. Click On Submit
Password Or Expected
Button With Out Filling
Password Field Can
Password And With Valid
Not Be Empty “
Username

1. NNavigate To High
A Validation ShownA Pass
Www.Sample.Co m
As Below“The
Validation Is
Username Entered Is
Shown As
2. Enter Both Wrong”
Expected
Username And Password
Wrong
And Hit Enter

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 86
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 10.RESULTS/DISCUSSIONS
SYSTEMS USING AI

1. Navigate To
Validate UsernameMain Page/Pass
Www.Sample.Co m High
And Password InHome Page
DataBase And OnceHas Been
2. Enter ValidateIf They CorrectDisplayed
Username And PasswordThen Show The
And Main Page
Click On Submit

10.2 SCREENSHOTS

Fig 1 : Home screen of the project

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 87
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 10.RESULTS/DISCUSSIONS
SYSTEMS USING AI

Fig 2: Virtual User Module Home Screen

Fig 3: Virtual User Login Page

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 88
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 10.RESULTS/DISCUSSIONS
SYSTEMS USING AI

Fig 4 : Agent Login Page

Fig 5 : Agent Operation – Prediction of online student

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 89
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 10.RESULTS/DISCUSSIONS
SYSTEMS USING AI

Fig 6 : online student behaviour profile judgement page

Fi 7: online student type ratio results page

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 90
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 11.CONCLUSION
SYSTEMS USING AI

CHAPTER-11
CONCLUSION

11.1 CONCLUSION

Online Judge (OJ) systems have been largely considered in the context of
programming-related courses as they provide fast and objective assessments of
the code developed and submitted by the students. Despite their clear
advantages, OJ systems do not generally provide the student nor the instructor
with any feedback from the actual submission besides whether the provided
code successfully accomplished the assignment. While this limitation is
acceptable up to some extent, it would be useful for these systems to retrieve
additional pieces of information that could eventually lead to the identification
of student habits, patterns of behaviour, or profiles related to the success (or
failure) of the task, among others. Note that, while such types of insights are
deemed as key points in the educational field, the process is not currently
addressable by existing OJ- based methodologies.
This work aims to tackle this limitation by resorting to the Educational
Data Mining (EDM) field. For that, the proposal considers the use of learning-
based schemes from the EDM area—more precisely, Multi-Instance Labelling
(MIL) and classical Machine Learning (ML) formulations—to model the student
behaviour based on the code submissions provided. In addition, since these
frameworks do not generally provide a human understandable feedback—which
is the expected output of the method—, we propose the use of Explainable
Artificial Intelligence (XAI) to obtain such interpretable feedback.
This methodology has been evaluated considering a case of study with
data gathered from a programming-related course in a Computer Science degree.
This collection comprises the different submissions to an OJ system of two
different assignments during three academic years, comprising more
than 2,500 submissions from roughly 90 different students, which represents all

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 91
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 11.CONCLUSION
SYSTEMS USING AI

11.2 FUTURE SCOPE

Future work considers the further validation of the model, both


increasing the amount of data of the case of study as well as considering other
alternative courses that also resort to OJ evaluation methods. In addition, we will
consider the possibility of exploring the use of human factor characteristics drawn
from, for instance, personality, self-efficacy, and motivation tests to boost the
prediction accuracy of the system.

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 92
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 12.REFERNCES
SYSTEMS USING AI

CHAPTER-12
REFERENCES
[1] A. Kurnia, A. Lim, and B. Cheang, “Online judge,” Computers & Education,
vol. 36, no. 4, pp. 299–315, 2001.
[2] S. Wasik, M. Antczak, J. Badura, A. Laskowski, and T. Sternal, “A survey on
online judge systems and their applications,” ACM Computing Surveys (CSUR),
vol. 51, no. 1, pp. 1–34, 2018.
[3] R. Yera and L. Mart´ınez, “A recommendation approach for programming
online judges supported by data preprocessing techniques,” Applied Intelligence,
vol. 47, no. 2, pp. 277–290, 2017.
[4] B. Cheang, A. Kurnia, A. Lim, and W.-C. Oon, “On automated grading of
programming assignments in an academic institution,” Computers & Education,
vol. 41, no. 2, pp. 121–131, 2003.
[5] L. M. Regueras, E. Verdu, M. F. Munoz, M. A. Perez, J. P. de Castro, and M.
J. Verdu, “Effects of competitive e-learning tools on higher education students: A
case study,” IEEE Transactions on Education, vol. 52, no. 2, pp. 279–285, 2009.
[6] A. Mani, D. Venkataramani, J. Petit Silvestre, and S. Roura Ferret, “Better
feedback for educational online judges,” in Proceedings of the 6th International
Conference on Computer Supported Education, Volume 2: Barcelona, Spain, 1-3
April, 2014. SciTePress, 2014, pp. 176–183.
[7] R. Asif, A. Merceron, S. A. Ali, and N. G. Haider, “Analyzing undergraduate
students’ performance using educational data mining,” Computers & Education,
vol. 113, pp. 177–194, 2017.
[8] X. Zhang and Y. Kang, “Examining and predicting teacher professional
development by machine learning methods,” in International Conference on Neural
Computing for Advanced Applications. Springer, 2021, pp. 255–269. [9] C. C.
Gray and D. Perkins, “Utilizing early engagement and machine learning to predict
student outcomes,” Computers & Education, vol. 131, pp. 22–32, 2019.

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 93
Department of Computer Science & Engineering.
IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 12.REFERNCES
SYSTEMS USING AI

[10] J. R. Rico-Juan, A.-J. Gallego, and J. Calvo-Zaragoza, “Automatic detection


of inconsistencies between numerical scores and textual feedback in peer-
assessment processes with machine learning,” Computers & Education, vol. 140,
p. 103609, 2019.
[11] S. Alturki, N. Alturki, and H. Stuckenschmidt, “Using educational data mining
to predict students’ academic performance for applying early interventions,”
Journal of Information Technology Education: Innovations in Practice, vol. 20, no.
1, pp. 121–137, 2021.
[12] J. Foulds and E. Frank, “A review of multi-instance learning assumptions,”
The knowledge engineering review, vol. 25, no. 1, pp. 1–25, 2010.
[13] M.-L. Zhang, “Generalized multi-instance learning: Problems, algorithms and
data sets,” in 2009 WRI Global Congress on Intelligent Systems, vol. 3. IEEE,
2009, pp. 539–543.
[14] S. Anupama Kumar and M. N. Vijayalakshmi, Efficiency of Multiinstance
Learning in Educational Data Mining. Singapore: Springer, 2018, pp. 47–64.
[15] A. Zafra, C. Romero, and S. Ventura, “Multi-instance learning versus
singleinstance learning for predicting the student’s performance,” Handbook of
Educational Data Mining, pp. 187–200, 2010.
[16] T. Kom´arek, J. Brabec, and P. Somol, “Explainable multiple instance learning
with instance selection randomized trees,” in Joint European Conference on
Machine Learning and Knowledge Discovery in Databases. Springer, 2021, pp.
715–730.
[17] N. Burkart and M. F. Huber, “A survey on the explainability of supervised
machine learning,” Journal of Artificial Intelligence Research, vol. 70, pp. 245–
317, 2021.
[18] A. B. Arrieta, N. D´ıaz-Rodr´ıguez, J. Del Ser, A. Bennetot, S. Tabik, A.
Barbado, S. Garc´ıa, S. Gil-L´opez, D. Molina, R. Benjamins et al., “Explainable
Artificial Intelligence (XAI): Concepts, taxonomies, opportunities and challenges

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 94
Department of Computer Science & Engineering.
toward responsible AI,” Information Fusion, vol. 58, pp. 82–115, 2020.
[19] J. B. Hext and J. W. Winings, “An automatic grading scheme
for simple programming exercises,” Commun. ACM, vol. 12, no. 5, p. 272–
275, May 1969.
[20] R. C. Carrasco, J. R. Rico-Juan, and M. A´ . Varo´,
“Aprendizaje de algoritmia mediante desaf´ıos de programaci´on,” in XVI
Jornadas de Ense˜nanza Universitaria de la Inform´atica. Universidade de
Santiago de Compostela. Escola T´ecnica Superior d’Enxe˜nar´ıa, 2010, pp.
519– 522.
[21] J. L. Bez, N. A. Tonin, and P. R. Rodegheri, “Uri online judge
academic: A tool for algorithms and programming classes,” in 2014 9th
International Conference on Computer Science Education, 2014, pp. 149–152.
[22] L. Wen-xin and G. Wei, “Peking university oneline judge
and its applications,” Journal of Changchun Post and Telecommunication
Institute,
vol. 2, 2005.
[23] C. A. Higgins, G. Gray, P. Symeonidis, and A. Tsintsifas,
“Automated assessment and experiences of teaching programming,” J. Educ.
Resour. Comput., vol. 5, no. 3, p. 5–es, Sep. 2005.
[24] H. Sun, B. Li, and M. Jiao, “Yoj: An online judge system
designed for programming courses,” in 2014 9th International Conference on
Computer Science Education, 2014, pp. 812–816.
[25] A. Kosowski, M. Małafiejski, and T. Noi´nski, “Application of
an online judge & contester system in academic tuition,” in Advances in Web
Based Learning – ICWL 2007, H. Leung, F. Li, R. Lau, and Q. Li, Eds.
Berlin, Heidelberg: Springer Berlin Heidelberg, 2008, pp. 343–354.

AVANTHI INSTITUTE OF ENGINEERING AND TECHNOLOGY


Gunthapally (V), Abdullapurmet (M), R.R.Dist-501512. Page | 95
Department of Computer Science & Engineering.
APPENDIX-A

Diagrams:

S.No Diagram No Diagram Name Page No

1 6.1 System Architecture 14


2 6.2.1 Use case Diagram 16

3 6.2.2 Class Diagram 17

4 6.2.3 Sequence Diagram 18

5 6.2.4 Collaboration Diagram 19

6 6.2.5 Activity Diagram 20


7 6.2.6 Component Diagram 21
8 6.2.7 Deployment Diagram 21
9 6.2.8 ER Diagram 22
5
AVANTHI INSTITUTION OF ENGINEERING AND TECHNOLOGY
3
(Affiliated to JNTUH, Approved by AICTE, Recognized by Govt of T.S, Accredited by NBA,NAAC-A)
5
PROJECT TITLE: IDENTIFYING STUDENT PROFILES WITHIN ONLINE JUDGE 4 SYSTEMS
USING ARTIFICIAL INTELLIGENCE
5
5
5
INTERNAL GUIDE: Dr . N. V. RANAMA REDDY, Associate Professor
6
TEAM MEMBERS: MD.SHAKEER 21Q61A6732 5
7
G.MANI KUMAR 21Q61A6721 5
S.A.S.R. MANOHAR 22Q65A6703 8
5
D.PRIYANKA 21Q61A6715 9
Y.VAISHNAVI 21Q61A6745 6
0
PO ATTAINMENT
6
1
COURSE PAGE PO DESCRIPTION
KNOWLEDGE NO ATTAINED

SOFTWARE 12 PO.5, PO.8 Development Phases


ENGINEERING

PYTHON 30 PO.1, PO.3 Python is used to build apps on


android

WT 72 PO.1, PO.5 HTML,CSS,Django,MyYogSQL

OOAD 15 PSO1,PSO2,PO.5 UML Diagrams

STM 82 PSO1,PSO2,PO.5 Software Testing

OOAD LAB PO.1,PO.3,PO.5 UML Diagrams

STM LAB 84 PSO1,PSO2,PO.5 Software Testing and phases of


testing
PROGRAM OUTCOMES :

Program Outcomes (POs) describe what students are expected to know and be able to do by the time
of graduation to accomplish Program Educational Objectives (PEOs).The Program Outcomes for
Computer Science and Engineering graduate are:
PO1: Engineering knowledge: Apply the knowledge of mathematics, science, engineering
fundamentals, and an engineering specialization to the solution of complex engineering problems.
PO2: Problem analysis: Identify, formulate, review research literature, and analyze complex
engineering problems reaching substantiated conclusions using first principles of mathematics,
natural sciences, and engineering sciences.
PO3: Design/development of solutions: Design solutions for complex engineering problems and
design system components or processes that meet the specified needs with appropriate consideration
for the public health and safety, and the cultural, societal, and environmental considerations.
PO4: Conduct investigations of complex problems: Use research-based knowledge and research
methods including design of experiments, analysis and interpretation of data, and synthesis of the
information to provide valid conclusions.

PO5: Modern tool usage: Create, select, and apply appropriate techniques, resources, and modern
engineering and IT tools including prediction and modeling to complex engineering activities with an
understanding of the limitations.
PO6: The engineer and society: Apply reasoning informed by the contextual knowledge to asses
societal, health, safety, legal and cultural issues and the consequent responsibilities relevant to the
professional engineering practice.
PO7: Environment and sustainability: Understand the impact of the professional engineering
solutions in societal and environmental contexts, and demonstrate the knowledge of, and need for
sustainable development.
PO8: Ethics: Apply ethical principles and commit to professional ethics and responsibilities and
norms of the engineering practice.
PO9: Individual and team work: Function effectively as an individual, and as a member or leader
in diverse teams, and in multidisciplinary settings.
PO10: Communication: Communicate effectively on complex engineering activities with the
engineering community and with society at large, such as, being able to comprehend and write
effective reports and design documentation, make effective presentation, and give and clear
instructions.
PO11: Project management and finance: Demonstrate knowledge and understanding of the
engineering and management principles and apply these to one’s own work, as a member and leader

in a team, to manage projects and in multidisciplinary environments.


PO12: Life-long learning: Recognize the need for, and have the preparation and ability to engage in
independent and life-long learning in the broadest context of technologies change.
PROGRAM SPECIFICATION OUTCOMES:

PSO1: Design, implement, test and evaluate a computer system, or algorithm to meet desired needs
and to solve a computational problem.
PSO2: Ability to analyze, design and implement hardware and software components.

You might also like