Mini PDoc
Mini PDoc
BACHELOR OF TECHNOLOGY
IN
Mr. S. RAJENDER
M.Tech
Assistant Professor
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.
PRINCIPAL
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 thankful to one and all, who are co-operated with us to complete our mini project work
successfully.
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.
MD.Shakeer (21Q61A6732)
1 System Architecture 14
2 UML Diagrams 15-24
2.8 ER Diagram 22
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.
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
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.
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.
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
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.
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.
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
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.
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.
CHAPTER-4
SYSTEM REQUIREMENTS
➢ Hard Disk - 20 GB
➢ Monitor - SVGA
4.2.3
➢ Operating system : Windows 7 Ultimate.
➢ Front-End : Python.
➢ Back-End : Django-ORM
CHAPTER-5
SYSTEM 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.
• 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.
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.
CHAPTER-6
SYSTEM DESIGN
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.
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.
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
Login
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
application
Virtual User
Agent
View Online
students profile
View Trained an
d Tested
application
virtual
user
agent
View All
Remote
Browse and VIEW YOUR
View Online Login Predicting
Train & Test PROFILE
students Students
6.2.8 ER DIAGRAM
Name: auth_permission
CHAPTER-7
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:
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
follow.
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.
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.
CHAPTER-8
IMPLEMENTATION
8.1 MODULES
• Virtual User
• Agent
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.
CHAPTER-9
SOFTWARE ENVIRONMENT
9.1 PYTHON
• Python is Interactive: You can actually sit at a Python prompt and interact with the
interpreter directly to write your programs.
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.
• 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.
• 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.
• 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.
• It provides very high-level dynamic data types and supports dynamic type checking.
• It can be easily integrated with C, C++, COM, ActiveX, CORBA, and Java.
- Subtraction Subtracts right hand operand from left hand operand. a–b=-
10
% Modulus Divides left hand operand by right hand operand and returns b%a=
remainder 0
// 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
= Assigns values from right side operands to left side operand c=a+b
assigns
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
%= Modulus It takes modulus using two operands and assign the c %= a is equivalent to
AND result to left operand 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
& Binary AND Operator copies a bit to the result if it exists in both (a & b)
operands (means
0000 1100)
^ 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.
<< 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)
and Logical If both the operands are true then condition (a and b)
AND becomes true. is true.
not Logical Used to reverse the logical state of its operand. Not(a
NOT and b) is
false.
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.
Operator Description
~+- Complement, unary plus and minus (method names for the last two
are +@ and -@)
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.
list2 = [1, 2, 3, 4, 5 ];
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.
Built-inListFunctions&Methods:
Python includes the following list functions −
1 cmp(list1, list2)
2 len(list)
3 max(list)
4 min(list)
5 list(seq)
1 list.append(obj)
2 list.count(obj)
3 list. extend(seq)
4 list.index(obj)
5 list.insert(index, obj)
6 list.pop(obj=list[-1])
7 list.remove(obj)
8 list.reverse()
9 list.sort([func])
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.
tup2 = (1, 2, 3, 4, 5 );
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 –
tup2 = (1, 2, 3, 4, 5, 6, 7 );
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 −
print tup3
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:
print tup
del tup;
print tup
BasicTuplesOperations:
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 −
Result –
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 −
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 –
Built-inDictionaryFunctions&Methods–
Python includes the following dictionary functions −
1 cmp(dict1, dict2)
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)
4 type(variable)
Returns the type of the passed variable. If passed variable is dictionary, then it would return a dictionary
type.
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
8 dict.setdefault(key, default=None):Similar to get(), but will set dict[key]=default if key is not alrea
in dict
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.
"function_docstring"
function_suite
return [expression]
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 −
print str
return;
FunctionArguments
You can call a function by using the following types of formal arguments:
• Required arguments
• Keyword arguments
• Default arguments
• 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 −
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 −
return total;
sum( 10, 20 );
Result −
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
return
TheimportStatement
The import has the following syntax:
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.
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():
Similar way, we have another two files having different functions with the same name as
above −
To make all of your functions available when you've imported Phone,to put explicit import
statements in init .py as follows −
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.
import Phone
Phone.Pots()
Phone.Isdn()
Phone.G3()
RESULT:
I'm 3G 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 −
Result:
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 −
• 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).
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 −
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.
This would produce the following result against the entered input −
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.
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_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.
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.
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).
ThefileObjectAttributes
Once a file is opened and you have one file object, you can get various information related to
that file.
Attribute Description
file.softspace Returns false if space explicitly required with print, true otherwise.
Example
# Open a file
fo = open("foo.txt", "wb")
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")
fo.close()
Result −
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);
Here, passed parameter is the content to be written into the opened file.
Example
# Open a file
fo = open("foo.txt", "wb")
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.
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.
# Open a file
fo = open("foo.txt", "r+")
str = fo.read(10);
fo.close()
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.
# Open a file
fo = open("foo.txt", "r+")
str = fo.read(10);
position = fo.tell();
str = fo.read(10);
fo.close()
RenamingandDeletingFiles
Python os module provides methods that help you perform file-processing operations, such as
renaming and deleting files.
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
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 –
#!/usr/bin/python
import os
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
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.
Syntax
os.chdir("newdir")
Example
Following is the example to go into "/home/newdir" directory −
#!/usr/bin/python
import os
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
os.getcwd()
Thermdir()Method
The rmdir() method deletes the directory, which is passed as an argument in the method.
Syntax:
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
os.rmdir( "/tmp/test" )
StopIteration Raised when the next() method of an iterator does not point to any object.
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.
ZeroDivisionError Raised when division or modulo by zero takes place for all numeric
types.
EOFError Raised when there is no input from either the raw_input() or input()
function and the end of file is reached.
KeyboardInterrupt Raised when the user interrupts program execution, usually by pressing
Ctrl+c.
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.
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.
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.
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.
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.
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.
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
• 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:
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)
INDEX.HTML
</head>
<body>
<div class="main">
<div class="header">
<div class="header_resize">
<div class="menu_nav">
<p> </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>
<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>
</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
<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>
<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 %}
}
.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">
<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"
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
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"> </td>
<td width="269"><input name="submit" type="submit" class="style1"
value="Predict"></td>
<td width="269"> </td>
<td width="269"> </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>
</div>
</fieldset>
</form>
</div>
<div class="col-md-2">
</div>
</div>
</div>
</div>
{% endblock %}
<tr>
CHAPTER-10
RESULTS/DISCUSSIONS
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.
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
Test case1
FUNCTION: LOGIN
EXPECTED RESULTS: Should Validate the user and check his
existence in database
ACTUAL RESULTS: Validate the user and checking the user
LOW PRIORITY No
Test case2:
Test case for User Registration form:
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:
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
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
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
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.
Diagrams:
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
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.