0% found this document useful (0 votes)
5 views84 pages

mini project document

The document presents a technical seminar project titled 'Online Coding Assessment' submitted by students from Kodada Institute of Technology & Science for Women as part of their Bachelor of Technology degree in Computer Science & Engineering. It discusses the significance of online coding assessments in evaluating programming skills for recruitment, detailing the structure, benefits, and existing systems in the field. The report includes acknowledgments, an abstract, an index, and a literature review, along with sections on system analysis, design, implementation, testing, results, and future scope.

Uploaded by

shirishakantu49
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)
5 views84 pages

mini project document

The document presents a technical seminar project titled 'Online Coding Assessment' submitted by students from Kodada Institute of Technology & Science for Women as part of their Bachelor of Technology degree in Computer Science & Engineering. It discusses the significance of online coding assessments in evaluating programming skills for recruitment, detailing the structure, benefits, and existing systems in the field. The report includes acknowledgments, an abstract, an index, and a literature review, along with sections on system analysis, design, implementation, testing, results, and future scope.

Uploaded by

shirishakantu49
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/ 84

A

Technical Seminar
On

ONLINE CODING ASSESSMENT


Submitted in partial fulfilment of the requirements for
the award of the degree of

BACHELOR OF TECHNOLOGY
in

COMPUTER SCIENCE & ENGINEERING


from

JAWAHARLAL NEHRU TECHNOLOGICAL UNIVERSITY,


HYDERABAD
Submitted By

M.Tejaswini (21QU1A0560)
CH.Mamatha (21QU1A0517)
K.SHIRISHA (22QU5A0503)
G.NIKHILA (21QU1A0524)
H.SWATHI(21QU1A0559)
Under the supervision of

S.JYOTHSNA M.Tech

DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING


KODADA INSTITUTE OF TECHNOLOGY & SCIENCE FOR WOMEN
(Approved by AICTE, New Delhi & Affiliated to JNTU Hyderabad)
Near Rangani Gudi, Ananthagiri Road, KODAD, SURYAPET, TS – 508206
2024-2025.
KODADA INSTITUTE OF TECHNOLOGY & SCIENCE FOR WOMEN
(Approved by AICTE, New Delhi & Affiliated to JNTU Hyderabad)
Near Rangani Gudi, Ananthagiri Road, KODAD, SURYAPET, TS – 508206

CERTIFICATE

This is to certify that the project work entitled “ONLINE CODING


ASSESSMENT” is a bonafide work done by M.TEJASWINI (21QU1A0560),
CH.Mamatha (21QU1A0517), K.SHIRISHA (22QU5A0503),G.NIKHILA
(21QU1A0524),H.SWATHI(21QU1A0559) in the partial fulfillment for the award
of Bachelor of Technology in Computer Science & Engineering from
JNTU,Hyderabad during the year2024-2025.

S.JYOTHSNA M.Tech Dr.L.K.SRAVANTHI POTTI M.Tech,Ph.D

INTERNAL GUIDE HEAD OF THE DEPT.

Dr.P. GANDHI, Ph.D


EXTERNAL EXAMINER
PRINCIPAL
ACKNOWLEDGEMENT
This report will certainly not be completed without due acknowledgements paid to all those

who have helped us in doing this main project work.

We express our sincere thanks to our guide S.JYOTHSNA, for giving us moral support, kind

attention and valuable guidance to us throughout this project work.

It is our privilege to thank Dr. L. K. SRAVANTHI POTTI , Head of the Department for her

encouragement during the progress of this main project work.

We are thankful to both teaching and non-teaching staff members of CSE DEPARTMENT

for their kind cooperation and all sorts of help to bring out this main project work successfully.

We derive great pleasure in expressing our sincere gratitude to our principal Dr. P. GANDHI

for his timely suggestions, which helped us to complete this work successfully.

We are thankful to KODADA INSTITUTE OF TECHNOLOGY AND SCIENCE FOR

WOMEN, KODAD for providing required facilities during this main project work.

We would like to thank our parents and friends for being supportive all the time , and we are

very much obliged to them.

In Sincerely,

M.Tejaswini (21QU1A0560)
CH.Mamatha (21QU1A0517)
K.SHIRISHA (22QU5A0503)
G.NIKHILA (21QU1A0524)
H.SWATHI(21QU1A0559)
ABSTRACT

An online coding assessment is a tool used by companies and organizations to evaluate a


candidate's programming skills in a virtual environment. It typically involves a series of
algorithmic challenges, problem-solving tasks, and coding exercises that are completed within a
specified timeframe. These assessments are designed to assess the candidate’s ability to write
clean, efficient, and functional code, as well as their problem-solving abilities and understanding
of data structures, algorithms, and other technical concepts. Online coding assessments are
commonly used in hiring processes for technical roles, allowing recruiters to filter candidates
based on their coding capabilities before moving forward to in-person interviews.
An online coding assessment typically comprises a series of challenges, which may include
algorithmic problems, data structure manipulation, debugging tasks, and real-world scenarios that
simulate the tasks a candidate might face in their prospective role. These challenges are designed
to test various competencies, such as logical thinking, algorithm design, code efficiency, and
adherence to best coding practices.
INDEX

S.NO CONTENTS PAGE NO

I. INTRODUCTION 1

1.1 LITERATURE REVIEW 1.2 EXISTING SYSTEM 1.3 PROPOSED SYSTEM

II. SYSTEM ANALYSIS 14

2.1 SYSTEM REQUIREMENTS 2.1.1 FEASIBILITY STUDY

III. SYSTEM DESIGN 19

3.1 SYSTEM ARCHITECTURE 3.2 DATA FLOW 3.3 UML DIAGRAMS

IV. IMPLEMENTATION 37

4.1 PYTHON 4.2 MACHINE LEARNING 4.3 SAMPLE CODE

V. SYSTEM TESTING 59

5.1 TYPES OF TESTING

VI. RESULTS 63

VII. CONCLUSION 72

VIII. FUTURE SCOPE 74

IX. REFERENCES 77
LIST OF FIGURES

FIG NO NAME OF THE FIGURE PAGE NO

1. CODING ASSESSMENT 1

2. SYSTEM ARCHITECTURE 19

3. DATA FLOW 22

4. USE CASE 25

5. CLASS DIAGRAM 26

6. SEQUENCE DIAGRAM 29

7. ACTIVITY DIAGRAM 32

8. COMPONENT DIAGRAM 34
ONLINE CODING ASSESSMENT

I.Introduction

Online coding assessments have revolutionized the recruitment process for technology roles,
offering a dynamic and efficient way to evaluate a candidate's programming skills. These
assessments are conducted in a virtual environment, enabling organizations to assess technical
proficiency remotely and at scale. Designed to simulate real-world coding challenges, online
coding assessments test a wide range of skills, including algorithm design, data structures, code
optimization, and problem-solving.
By leveraging online platforms, companies can streamline their hiring process, reducing time and
resource investment while increasing the accuracy of candidate evaluations. For candidates, these
assessments provide a standardized and fair opportunity to showcase their technical abilities, often
serving as a crucial step in the selection process for software development, data science, and other
technical roles.
As the demand for skilled programmers continues to grow, online coding assessments have
become an indispensable tool for recruiters and a gateway for candidates to demonstrate their
capabilities in a competitive job market.

Figure 1:Coding Assessment


In the rapidly evolving landscape of technology and software development, the demand for highly
skilled programmers has surged. To keep up with this demand, companies are continually refining

1
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

their recruitment processes to identify top talent efficiently and accurately. One of the most
effective tools that have emerged in recent years is the online coding assessment. These
assessments provide a structured and scalable way to evaluate candidates' technical skills,
problem-solving abilities, and coding proficiency in real-world scenarios.
Online coding assessments are typically delivered through specialized platforms that offer a wide
range of coding challenges. These challenges can include algorithmic problems, data structure
manipulations, system design tasks, debugging exercises, and more. The diversity in question
types allows companies to assess various aspects of a candidate's skill set, ensuring a
comprehensive evaluation.
The rise of online coding assessments can be attributed to several key benefits:
1. Scalability: Companies can simultaneously assess a large number of candidates across different
geographic locations, making the process more efficient and inclusive.
2. Standardization: By providing a uniform set of challenges, online coding assessments ensure that
all candidates are evaluated under the same conditions, reducing the potential for bias and
subjective judgment.
3. Efficiency: Automated grading systems provide instant feedback on the correctness and efficiency
of the candidate's solutions. This automation significantly reduces the time and effort required
from human evaluators, allowing them to focus on more nuanced aspects of the recruitment
process.
4. Flexibility for Candidates: Candidates can often take these assessments from any location with
internet access, which not only increases participation rates but also allows them to perform in a
familiar environment, potentially reducing the stress associated with traditional testing settings.
5. Insightful Data: Online coding assessments generate detailed reports on candidate performance,
highlighting strengths and areas for improvement. Recruiters can use this data to make informed
decisions about progressing candidates to the next stages of the hiring process.
Moreover, as the field of recruitment technology continues to advance, online coding platforms
are integrating sophisticated features like AI-driven proctoring to ensure test integrity, adaptive
testing to adjust question difficulty based on performance, and collaborative coding

2
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

1.1 LITERATURE REVIEW

Literature Review- 1:
“Automated Code Assessment Systems: A Comprehensive Survey”
Author: Rahman et al. (2023)
Description: This paper categorizes the applications of automated code assessment systems into
programming contests, education, recruitment, and online compilers. It emphasizes the importance
of these systems in providing immediate feedback and handling large-scale submissions
effectively.
Source: arxiv.org
Literature Review- 2:
"A Survey of Automated Assessment Approaches for Programming Assignments"
Author: Leinonen, Nguyen, & Salakoski (2021)
Description: This foundational paper surveys different automated assessment approaches, discussing their
methodologies, advantages, and limitations. It provides a comprehensive overview of static and dynamic
analysis techniques used in evaluating programming assignments.
Source: CiteseerX
Literature Review- 3:
Author: Messer et al. (2023)
"A Systematic Review of Automated Grading Tools for Programming Assignments"
Description: The study reviews automated grading tools for programming assignments, focusing
on tools that assess correctness in object-oriented languages. It highlights the benefits of automated
assessments, including rapid feedback and the potential for iterative learning through
resubmissions.
Source: arxiv.org
Literature Review- 4:
"Test-Driven Code Review: An Empirical Study"
Author: Spadini et al. (2019)

3
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

Description: This research explores the practice of Test-Driven Code Review (TDR) in identifying defects
in test code. It reveals that developers prioritize reviewing production code and identifies challenges like
poor test code quality and insufficient tool support.
Source:sback.it
Literature Review- 5:
"Emergence of Online Platforms for Coding Exams and Technical Interviews"
Description:
The paper discusses the rise of online platforms designed for coding exams and interviews,
highlighting features that support various programming languages and facilitate comprehensive
candidate evaluations.
Source: journal-aquaticscience.com
Literature Review- 6:
"Challenges in Timed Coding Assessments"
Author: Reddit Discussion (2023)
Description: A compilation of anecdotal evidence from online forums discussing the impact of timed
coding assessments on candidates, highlighting stress and performance issues under time constraints.
Source: reddit.com
Literature Review- 7:
"A Survey of Automated Assessment Approaches for Programming Assignments"
Author: Ala-Mutka (2005)
Description: This foundational paper surveys different automated assessment approaches,
discussing their methodologies, advantages, and limitations. It provides a comprehensive overview
of static and dynamic analysis techniques used in evaluating programming assignments.
Source: CiteseerX
Literature Review- 8:
"Review of Recent Systems for Automatic Assessment of Programming Assignments"
Author: Ihantola et al. (2010)
Description: The paper reviews recent advancements in automatic assessment systems, focusing on their
pedagogical implications, feedback mechanisms, and scalability. It evaluates how these systems align with
educational goals.
Source: ACM Digital Library

4
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

1.2 EXISTING SYSTEM


The whole process of assigning test and evaluating their scores after the test, was done manually
till date. Processing the test paper i.e. checking and distributing respective scores used to take time
when the software was not installed.
1. HackerRank
• Description: One of the most popular platforms for coding assessments and technical interviews.
It supports multiple programming languages and offers a variety of problem types, including
algorithms, data structures, and database queries. HackerRank provides detailed feedback and
analytics for both recruiters and candidates.
• Features: Real-time code evaluation, plagiarism detection, interview preparation, and a vast
library of coding challenges.
2. LeetCode
• Description: Primarily known for preparing candidates for technical interviews, LeetCode offers
coding challenges across different difficulty levels. It is widely used by individuals and companies
for practicing and conducting coding assessments.
• Features: Large problem set, mock interviews, contest hosting, and support for many
programming languages.
3. CodeSignal
• Description: A platform focused on coding assessments and technical interviews, CodeSignal
emphasizes automated scoring and real-time evaluation. It is used by companies to assess technical
skills during hiring processes.
• Features: Certified assessments, real-time feedback, collaboration tools, and integration with
applicant tracking systems (ATS).
4. Codility
• Description: Codility offers a robust platform for coding tests and technical interviews,
particularly in the recruitment context. It helps employers assess the coding skills of potential hires
through timed tests.
• Features: Automated scoring, plagiarism detection, coding challenges, and performance
analytics.

5
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

5. Mimir Classroom
• Description: An educational platform that provides tools for instructors to create and grade coding
assignments automatically. Mimir Classroom is designed for use in computer science education.
• Features: Automated grading, integration with learning management systems (LMS), support for
multiple languages, and real-time feedback.
6. Replit
• Description: Replit offers an in-browser coding environment that supports real-time coding and
assessment. It's used for both learning and conducting coding interviews.
• Features: Multi-language support, real-time collaboration, automatic grading, and an integrated
development environment (IDE).
7. Kattis
• Description: Kattis provides an online judge system for competitive programming and coding
assessments. It is commonly used in programming contests and by educational institutions.
• Features: Automatic evaluation, multiple problem types, and extensive language support.
8. Codewars
• Description: A platform for practicing coding challenges (called "katas") in a gamified
environment. While mainly used for learning, it can also be adapted for informal coding
assessments.
• Features: Gamification, community-driven content, and support for multiple programming
languages.
9. Examity
• Description: Although primarily an online proctoring service, Examity is used in conjunction with
coding platforms to ensure the integrity of online coding assessments.
• Features: Secure proctoring, identity verification, and integration with various assessment tools.
10. Praxis Coding Assessment
• Description: Designed specifically for technical hiring, Praxis provides a platform for coding
assessments with a focus on practical coding challenges relevant to real-world scenarios.
• Features: Real-world coding tasks, automated evaluation, and detailed performance analytics.

6
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

11. TopCoder
• Applications: Known for competitive programming and crowdsourced software development,
used by individuals and organizations.
• Features:
o Competitions: Regularly held coding competitions that challenge and improve participants' skills.
o Community Engagement: A strong community of developers who contribute to problem-solving
and learning.
o Learning Tracks: Guided paths to learn new technologies and improve coding skills.
o Marketplace: Opportunities for participants to earn through coding challenges and projects.
12. HackerEarth
• Applications: Used by companies for technical recruitment and by developers to practice coding.
• Features:
o Challenge Hosting: Companies can host coding challenges to attract and assess talent.
o Hackathons: Supports organizing online hackathons to foster innovation and teamwork.
o Skill Assessments: A wide range of coding and technical skill assessments.
o Community Engagement: Forums and events to keep the developer community engaged and
learning.
13. Pluralsight Code School (formerly Code School)
• Applications: Used for educational purposes to teach coding through interactive courses and
exercises.
• Features:
o Interactive Courses: Hands-on courses with coding challenges built into the learning process.
o Pathways: Guided learning paths for various programming languages and technologies.
o Real-Time Feedback: Immediate feedback on coding exercises to aid learning.
o Gamified Learning: Points and badges to encourage engagement and track progress.
14. Brightspace (D2L)
• Applications: Used in educational institutions to manage and deliver coding assignments as part
of a broader learning management system.
• Features:
o Assignment Grading: Tools for creating and grading coding assignments.
7
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

o Integration: Integration with various coding platforms for seamless submission and grading.
o Plagiarism Detection: Tools to ensure the originality of student submissions.
o Analytics: Data analytics to track student performance and engagement.

Disadvantages
The current system is very time consuming.

➢ It is very difficult to analyze the exam manually.


➢ To take exam of more candidates more invigilators are required but noneed of invigilator in case
of on line exam.

➢ Results are not precise as calculation and evaluations are done manually.
➢ The chances of paper leakage are more in current system as compared to proposed system.
Result processing takes more time as it is done manually.

8
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

1.3 PROPOSED SYSTEM


The online test created for taking online test has following features

➢ In comparison to the present system the proposed system will be less time consuming and is more
efficient.

➢ Analysis will be very easy in proposed system as it is automated


➢ Result will be very precise and accurate and will be declared in very short span of time because
calculation and evaluations are done by the simulator itself.

➢ The proposed system is very secure as no chances of leakage ofquestion paper as it is dependent
on the administrator only.

➢ The logs of appeared candidates and their marks are stored and can be backup for future use

Overview of Online Coding Assessment


Online coding assessment refers to the process of evaluating a candidate's programming and
problem-solving skills through an internet-based platform. These assessments are widely used in
educational settings, recruitment processes, and competitive programming to gauge the technical
proficiency of individuals.
Key Components of Online Coding Assessments
1. Problem Sets:
o Problems range from basic syntax to complex algorithms and data structures.
o They often cover various domains like databases, machine learning, or specific programming
languages.
2. Code Submission:
o Candidates write and submit their code through an integrated development environment (IDE) on
the platform.
o The submitted code is automatically compiled and run against predefined test cases.
3. Automated Evaluation:
o The system evaluates the code for correctness, efficiency, and adherence to coding standards.
o Automated feedback provides immediate results, highlighting areas of improvement.
4. Plagiarism Detection:
o Advanced systems detect similarities in code submissions to prevent cheating.
9
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

o Techniques include behavioral analysis, code structure comparison, and checking against external
sources.
5. Proctoring:
o AI-driven proctoring ensures the integrity of the assessment by monitoring candidates via
webcams and screen recordings.
o Proctoring can also involve identity verification and continuous monitoring.
6. Problem Sets
• Diverse Range of Problems:
o Questions cover multiple topics like algorithms, data structures, databases, web development, and
system design.
o Problems vary in difficulty from beginner to expert levels.
• Domain-Specific Challenges:
o Custom challenges can be created to test specific knowledge areas, like finance-related coding
tasks for fintech companies.
7. Code Submission and Execution
• Integrated Development Environments (IDEs):
o Most platforms provide an in-browser IDE for writing, testing, and submitting code.
• Automated Compilation and Execution:
o Code is automatically compiled and run against predefined test cases to check for correctness and
efficiency.
• Support for Multiple Languages:
o Candidates can choose from various programming languages, making the assessment more
accessible to a broader audience.
8. Automated Evaluation
• Correctness Checks:
o Code is evaluated based on whether it produces the correct output for a set of test cases.
• Efficiency Analysis:
o Algorithms are analyzed for time and space complexity to ensure they perform well under different
scenarios.
• Quality Assessment:
o Beyond correctness, the code is checked for readability, maintainability, and adherence to best
10
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

practices.
9.Plagiarism Detection
• Code Similarity Algorithms:
o These detect patterns in code that indicate plagiarism, even if variable names or formatting are
changed.
• Behavioral Analysis:
o Monitors candidate behavior during the test to identify unusual patterns that may suggest cheating.

10.Proctoring
• AI-Driven Proctoring:
o Uses facial recognition, screen recording, and audio monitoring to ensure test integrity.
• Manual Proctoring:
o Involves human invigilators monitoring candidates through video calls.
11.Real-Time Feedback
• Instant Results:
o Candidates receive immediate feedback on their code submissions, including which test cases
failed and why.
• Guided Hints:
o Platforms may offer hints or tips to help candidates correct their mistakes without giving away the
solution.
12. Adaptive Assessment Engine
• Personalized Learning Paths: The system adapts the difficulty level of questions based on the
candidate's performance, ensuring a personalized experience.
• Skill-Based Question Bank: A dynamic question bank that categorizes questions by skill level,
topic, and complexity, allowing for targeted assessments.
• Real-Time Adjustments: Adjusts the test difficulty in real-time based on the candidate's responses
to better gauge their actual skill level.
13. Advanced Feedback Mechanism
• Immediate Feedback: Provides detailed feedback on code submissions, highlighting errors and
offering suggestions for improvement.

11
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

• Code Quality Analysis: Evaluates code for efficiency, readability, and adherence to best practices,
not just correctness.
• Hint System: Offers context-sensitive hints to guide candidates without giving away solutions.
14. Intelligent Plagiarism Detection
• Behavioral Analysis: Uses behavioral analytics to detect unusual patterns indicative of
plagiarism.
• Code Similarity Checks: Employs advanced algorithms to compare submissions and identify
potential code plagiarism across different tests and users.
• Continuous Monitoring: Monitors for plagiarism throughout the test duration, including copy-
paste actions and external source references.

15. Real-Time Collaboration and Pair Programming


• Collaborative Environment: Supports real-time collaboration between candidates for pair
programming exercises.
• Integrated Communication Tools: Includes voice, video, and chat options for seamless
communication during collaborative assessments.
16. Multi-Language Support
• Comprehensive Language Coverage: Supports a wide range of programming languages and
allows candidates to choose their preferred language for the assessment.
• Language-Specific Features: Tailors the assessment criteria to the nuances of different
programming languages.
17 Secure and Proctored Environment
• AI-Driven Proctoring: Uses AI to monitor candidates during the assessment, identifying potential
cheating behavior through facial recognition, eye movement tracking, and audio analysis.
• Two-Factor Authentication: Ensures the security of the assessment process through robust
identity verification mechanisms.
18. Comprehensive Analytics and Reporting
• Candidate Analytics: Provides detailed reports on candidate performance, including strengths,
weaknesses, and improvement areas.
• Employer Dashboard: An intuitive dashboard for employers to track the progress of assessments,

12
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

compare candidates, and make data-driven hiring decisions.


• Educational Insights: Offers insights for educators on student performance trends and areas
needing additional instruction.

Advantages:
a. Accessibility and Convenience
• Candidates can take assessments from anywhere, eliminating geographical barriers and logistical
challenges.
b. Scalability
• These platforms can handle thousands of concurrent users, making them suitable for large-scale
recruitment drives or educational purposes.
c. Cost-Effectiveness
• Reduces the need for physical infrastructure and human resources, lowering the overall cost of
assessments.
d. Standardization
• Provides a consistent evaluation framework, ensuring fairness and uniformity in the assessment
process.
e. Immediate Feedback
• Candidates can quickly learn from their mistakes, which helps in skill improvement and better
preparation for future assessments.

13
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

II.SYSTEM ANALYSIS

2.1SYSTEM REQUIREMENTS:
2.1 Functional requirements
1.User data processing
• The system should collect and preprocess social media data (e.g., posts, comments, messages).
• It should clean the data by removing irrelevant content, stop words, special characters, and perform
tokenization and stemming/lemmatization.
• The system must handle large-scale data efficiently (e.g., batch processing or stream processing).
2. Dataset management
• The system should support labeled datasets that distinguish between normal and cyberbullying content.
• It should allow updating the dataset with new examples of bullying or normal content to improve accuracy.
• Data should be stored securely to prevent unauthorized access and ensure privacy compliance.
3. Feature extraction
• extract relevant features from text data using natural language processing (nlp) techniques, such as:
o Bag of words (bow), term frequency-inverse document frequency (tf-idf), or word embeddings (e.g.,
word2vec, glove).
o Sentiment analysis and context recognition to identify harmful or harassing intent.

4. Machine learning model training


• The system should support multiple machine learning algorithms, including:
O support vector machines (svm) o random forest o naïve bayes o k-nearest neighbors
(knn) o decision trees
• It must allow for training and testing of models on labeled datasets.

• Models should be evaluated using appropriate metrics (e.g., accuracy, precision, recall, f1-score, and roc-
auc).
5. Cyberbullying detection
• The system should analyze new social media posts or comments and classify them as:
O "normal" o "cyberbullying"
• It should provide the probability or confidence score for each prediction.

14
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

6. Big data integration


• The system must be capable of processing large-scale data in real-time or near real-time.
• Support for distributed computing frameworks like hadoop or apache spark should be included.
7. Dashboard and visualization
• A user-friendly interface should display:
o Statistical insights, such as the number of flagged posts over time.

o Performance metrics of the detection model.

• Visualization tools (e.g., charts, heatmaps) should make it easy to interpret the results.
8. Feedback and learning
• The system should allow manual review of flagged posts for validation purposes.
• User feedback on flagged content should be incorporated to retrain and improve the model over time.
9. Security and privacy
• The system must anonymize user data to ensure compliance with data protection laws (e.g., gdpr, ccpa).
• All data transfers and storage must use encryption to prevent unauthorized access.
10. Deployment
• The system should be deployable on cloud-based platforms (e.g., aws, azure, or google cloud) to leverage
scalability for big data.
• It should support apis for integration with other social media monitoring tools.
11. Reporting
• Generate reports on detected cyberbullying cases, including patterns, trends, and actionable insights.
• Provide alerts for high-risk cases requiring immediate attention.

2.2 Non-functional requirements


Hardware requirements
The following minimum hardware specifications are required to effectively run and develop the system:
• System:
oA system with at least an intel core i3 processor or equivalent. For optimal performance, higher
configurations like core i5, i7, or newer processors are recommended, especially for faster execution of
machine learning tasks.
• Hard disk:

15
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

o A minimum of 40 gb of available storage is required to install the operating system, development tools, and

datasets. Additional space may be necessary depending on the volume of the data being processed.
• Ram:
o At least 4 gb ram is required for basic functionality. For better performance, particularly when working with

large datasets or simultaneous processes, 8 gb or more is recommended.

Software requirements
The following software components are required for the development and deployment of the system:
• Operating system:
o The system is compatible with windows 8 or higher. Windows 10 or 11 is recommended for better support

and features. The application is also cross-platform and can run on linux or macos with proper setup.
• Coding language:
o The primary development will be done in python 3.7, a versatile and widely used programming language
for machine learning and web development. Python’s ecosystem offers extensive libraries and tools for
seamless integration of machine learning algorithms.
• Framework:
o The web application will be built using django, a high-level python web framework that promotes rapid
development and clean, pragmatic design.
o Django simplifies the development process with built-in features such as:

▪ Orm (object-relational mapping) for database management.


▪ Built-in security mechanisms to prevent vulnerabilities like sql injection and crosssite scripting (xss).
▪ Scalability to handle growing datasets and user interactions.
Additional software requirements
• Python libraries:
o Required libraries include scikit-learn, numpy, pandas, nltk, and django-related packages such as django
rest framework (if apis are used).
o These can be installed using python's package manager pip.

• Database:
o Sqlite is the default database for django during development. For production, more robust databases like
postgresql, mysql, or mongodb can be used.
• Ide/code editor:
16
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

o Ides such as pycharm, visual studio code, or jupyter notebook are recommended for development. These
tools provide support for debugging, code linting, and version control.
• Web server:
o Django's built-in development server will be used during development. For deployment, a production-ready

web server like apache, nginx, or cloud-based hosting platforms such as heroku, aws, or azure can be utilized.
• Browser compatibility:
o The system is designed to run on modern web browsers such as google chrome, mozilla firefox, or microsoft

edge for user interaction and testing.

2.2Feasibility study
1) Economic feasibility
Economic analysis is most frequently used for evaluation of the effectiveness of the system. More
commonly knows as cost/benefit analysis the procedure is to determine the benefit and saving that
are expected from a system and compare them with costs, decisions is made to design and
implement the system.
• This part of feasibility study gives the top management the economic justification for the new
system. This is an important input to the management the management, because very often the top
management does not like to get confounded by the various technicalities that bound to be
associated with a project of this kind. A simple economic analysis that gives the actual comparison
of costs and benefits is much more meaningful in such cases.
• In the system, the organization is most satisfied by economic feasibility. Because, if the
organization implements this system, it need not require any additional hardware resources as well
as it will be saving lot of time.

2) Technical feasibility
Technical feasibility centers on the existing manual system of the test management process and to
what extent it can support the system.
• According to feasibility analysis procedure the technical feasibility of the system is analyzed and
the technical requirements such as software facilities, procedure, inputs are identified. It is also
one of the important phases of the system development activities.

17
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

The system offers greater levels of user friendliness combined with greater processing speed.
Therefore, the cost of maintenance can be reduced. Since, processing speed is very high and the
work is reduced in the maintenance point of view management convince that the project is
operationally feasible.

3)Behavioural feasibility
People are inherently resistant to change and computer has been known to facilitate changes. An
estimate should be made of how strong the user is likely to move towards the development of
computerized system. These are various levels of users in order to ensure proper.

18
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

III. SYSTEM DESIGN

3.1SYSTEM ARCHITECTURE

Fig 2: System Architecture


Key Elements of the System Architecture
1. Actors
• User: Represents individuals interacting with the system through the User Portal.
o Responsibilities: Registering, logging in, sending posts, viewing posts, and logging out.
• Admin: Represents system administrators interacting with the system through the Admin
Portal.
o Responsibilities: Monitoring posts, verifying users, adding new bullying words, running .

19
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

2. System Components
• User Interface:

• User Portal: Accessible by the user to perform basic actions like posting and viewing content.
• Admin Portal: Accessible by the administrator to monitor and manage the system.
• Database:

o Acts as the central storage for:


▪ User data (e.g., registration and login credentials).
▪ Posts submitted by users.
▪ Bullying-related keywords added by the admin.
▪ Results generated by the detection algorithms.

• Algorithms Module:
o Component where machine learning algorithms are executed to detect cyberbullying in
usersubmitted posts.
o Admin has access to initiate this module and view the results.
3. Workflow and Interactions User Interactions:
1. Register: Users register on the system by entering their details, which are stored in the
database.
2. Login: Users authenticate to access their portal.
3. Send Post: Users create and submit posts, which are saved in the database and flagged
for potential cyberbullying detection.
4. View Post: Users can view their own submitted content.
5.Logout: Users exit the system securely.

Admin Interactions:
1. Login: Admin authenticates to access the admin portal.
2. View User: Admin can monitor user details and activities stored in the database.
3. Verify User: Admin can validate the authenticity or actions of a user.
4. Monitor Post: Admin reviews flagged posts for cyberbullying or inappropriate content.

20
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

5. Add Bullying Words: Admin can update the database with new keywords related to
cyberbullying, improving the detection system's accuracy.
6. Run Algorithms: Admin initiates the machine learning models in the Algorithms Module
to analyze and classify user posts.
7. Logout: Admin exits the system securely.

3.2 DATA FLOW


• Users and admins interact with the system through their respective portals.
• Posts and other data are stored in the central database.
User Table

Login

User
Reg_Table

Regist-
ration

Result
Exam

C
C++ JAVA

Figure 3:Data flow diagram

21
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

• Admins have full control to monitor, update, and manage the database and algorithms.
• The Algorithms Module processes the data to detect cyberbullying and stores results back in
the database.

3.3 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.

22
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

Why UML Diagrams are Used:


Visual Representation:
• UML diagrams help visualize complex systems in an organized way.
• They make it easier to understand the relationships, processes, and structure of a system.
Communication Tool:
• They act as a common language between developers, designers, and stakeholders.
• Clear diagrams reduce misunderstandings and improve collaboration.
Design and Analysis:
• UML diagrams help in planning and designing the architecture of a system before coding.
• They assist in identifying potential design flaws early in the development process.
Documentation:
• UML diagrams serve as part of the system documentation.
• They provide a clear reference for future maintenance or updates.
Problem-Solving:
• They make it easier to identify bottlenecks or inefficiencies in the system design.
• UML diagrams allow experimentation with different designs before implementation.
Standardization:
• UML is a standardized modeling language recognized across the software industry.
• It ensures uniformity and consistency in system design representation.
Types of UML Diagrams and Their Uses:
• Structural Diagrams:
Represent the static aspects of a system.
1. Class Diagram: Shows classes, attributes, methods, and relationships.
2. Object Diagram: Displays objects and their relationships.
3. Component Diagram: Represents components and their dependencies.
4. Deployment Diagram: Depicts hardware and software components in the system.
• Behavioral Diagrams:
Represent the dynamic behavior of a system.
1. Use Case Diagram: Shows interactions between users (actors) and the system.
2. Sequence Diagram: Visualizes object interactions in a sequence.
23
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

3. Activity Diagram: Illustrates workflows and processes.


4. State Diagram: Displays states and transitions of an object.
UML diagrams are essential tools for creating efficient and well-structured software systems,
enabling clear communication and smooth project development.

3.3.1 USECASE DIAGRAM

Fig 4: Use case diagram


A Use Case Diagram is a type of UML (Unified Modeling Language) diagram that represents the
functional aspects of a system. It visually maps out the interactions between users (or other
systems) and the system being designed. A Use Case Diagram represents the interaction between
users (actors) and the system, highlighting the key functionalities (use cases) provided by the
system.
User Role
1. Register - Allows users to create an account.
2. Login - Enables users to log into their account.
3. Send Post - Users can create and send posts.
4. View Post - Users can view posts created by others or themselves.
5. Logout - Logs the user out of the system.
Admin Role
1. Login - Enables the admin to access their functionalities.
2. View Users - Allows admins to view the list of registered users.
3. Verify Users - Admins can verify or validate user accounts.
4. Monitor Post - Enables monitoring of posts for compliance or issues.

24
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

5. Add Bullying Words or Messages - Admins can update a list of flagged or bullying-
related terms.
6. Run Algorithms - Allows admins to execute specific algorithms, likely for content
moderation or analysis.
7. Logout - Logs the admin out of the system.

3.3.2.CLASS DIAGRAM

Fig 5: Class diagram


A Class Diagram is a type of UML (Unified Modeling Language) diagram that represents the
static
structure of a system. It focuses on the system's classes, their attributes, methods, and the
relationships between them. Class diagrams are widely used in object-oriented design and
provide a blueprint for system implementation.The image represents a Class Diagram for a

25
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

User-Admin System. It shows the relationships between different classes and their attributes
and methods.
Here's a detailed description: Classes and Attributes
1. User Class
o Attributes:
▪ String username: Stores the username of the user.
▪ String password: Stores the user's password.
▪ String email: Stores the user's email.
o Methods:
▪ sendPost(): Allows the user to create and send a post.
▪ viewPost(): Lets the user view posts.
▪ logout(): Logs the user out of the system.
2. Admin Class
o Attributes:
▪ String adminID: Stores the admin's unique ID.
▪ String password: Stores the admin's password.
▪ o Methods:
▪ viewUsers(): Displays all registered users.
▪ verifyUser(): Verifies user accounts.
▪ monitorPosts(): Monitors posts for inappropriate content.
▪ addBullyingWords(): Adds flagged words to the system.
▪ runAlgorithms(): Runs algorithms for post moderation or analysis.
▪ logout(): Logs the admin out of the system.
3. System Class
o Methods:
▪ registerUser(): Allows new users to register in the system.
▪ loginUser(): Logs a user into the system.
▪ loginAdmin(): Logs an admin into the system.

26
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

4. Post Class
o Attributes:
▪ int postID: Stores the unique ID for a post.
▪ String content: Stores the content of the post.
▪ String status: Represents the status of the post (e.g., approved, flagged, etc.).
o Methods:
▪ validatePost(): Validates the content of a post (e.g., checks for inappropriate content).

5. BullyingWords Class
o Attributes:
▪ List<String> words: A list of flagged words considered bullying or inappropriate.
o Methods:
▪ addWord(word: String): Adds a new word to the bullying list.
▪ RemoveWord(word: String): Removes a word from the bullying list.

Relationships
1. User -> System
o Association: Users access the system to perform actions like registration and
login.
2. User -> Post o Association: Users create posts through the system.
3. Admin -> System o Association: Admins access the system for management
purposes.
4. Admin -> Post o Association: Admins manage posts by monitoring or validating
them.
5. Admin -> BullyingWords o Association: Admins update the list of flagged
bullying words.
6. System -> Post o Association: Posts are created and managed through the system.

27
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

3.3.3 SEQUENCE DIAGRAM

Fig 6: Sequence diagram


A Sequence Diagram is a type of UML (Unified Modeling Language) diagram that illustrates the
interaction between objects or components in a system over time. It shows how processes operate
and how messages are exchanged in a sequential order, making it a key tool for modeling dynamic
aspects of a system.The image represents a Sequence Diagram for a system involving User Posting

28
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

and Admin Monitoring. It illustrates the interaction between various components and actors,
highlighting the flow of processes step-by-step. Here's a detailed explanation:
Actors and Components
1. Actors:
o User: Represents the end-user who logs in and creates posts.
o Admin: Represents the administrator who logs in and monitors posts.
2. Components:
o User Portal: The interface used by the user to interact with the system. o Post
Management Service: The backend service responsible for handling posts. o Database:
Stores user credentials, posts, and other data. o Admin Portal: The interface used by the
admin to interact with the system. Sequence Flow
User Posting
1. Login:
o The user initiates the login process through the User Portal. o The User
Portal sends the credentials to the Database for verification.
o The Database verifies the credentials and responds with Login Success/Fail.
2. Create Post:
o Once logged in, the user creates a post via the User Portal.
o The Post Management Service receives the post data and forwards it to the
Database for storage.
o The Database stores the post and confirms back to the Post Management Service
that the post was successfully stored.
o A Post Successful message is sent back to the user.
Admin Monitoring
3. Login:
o The admin logs into the system through the Admin Portal. o The Admin
Portal sends the admin credentials to the Database for verification.
o The Database verifies the credentials and responds with Login Success/Fail.
4. View Posts:
o After logging in, the admin initiates a request to view all posts.

29
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

o The Admin Portal sends a request to retrieve posts to the Post Management
Service. o The Post Management Service fetches posts from the Database. o The fetched
posts are returned to the Admin Portal, and the posts are displayed to the admin.
Key Interactions
• Communication Between Components:
o User actions (login, post creation) and admin actions (login, view posts) are
mediated by backend services and the database.
o Clear two-way communication between portals, services, and the database
ensures data consistency.
• Centralized Database:
o The Database acts as the core for storing and retrieving user credentials, posts,
and related information.
• System Responsiveness:
o Each interaction (login, create post, view post) involves confirmation messages
to ensure success or failure is communicated.

30
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

3.3.4 ACTIVITY DIAGRAM

Fig 7:Activity diagram


An Activity Diagram is a type of UML (Unified Modeling Language) diagram used to model the
dynamic aspects of a system by representing workflows or processes. It illustrates the sequence of
activities, decisions, and parallel processes in a system, making it ideal for capturing business
processes, use case workflows, or system behaviors.The image depicts an activity diagram for a

31
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

User-Admin Workflow in a system, outlining the actions performed by users and administrators.
It uses standard Unified Modeling Language (UML) symbols and conventions to represent
activities, decisions, and workflows.
• Register:A user starts by registering on the system.
• Login:After registering, the user logs into the system.
• Authentication Decision:A decision node checks if the user is authenticated:
Yes: If authenticated, the user can proceed.
No: If not authenticated, an error message is displayed.
• Send Post:An authenticated user can send or create a post.
• View Post:Users have the option to view posts.
• Logout:The user can log out of the system when finished.
Admin Actions
• Login:The administrator logs into the system.
• Authentication Decision:A decision node checks if the administrator is
authenticated:
Yes: If authenticated, the admin can proceed.
No: If not authenticated, an error message is displayed.
• View Users:The admin can view a list of users in the system.
• Verify User:The admin verifies the authenticity or details of a user.
• Monitor Posts:The admin can review or monitor posts made by users.
• Add Bullying Words:The admin can add flagged keywords or "bullying words"
to the system for monitoring abusive content.
Run Algorithms:The admin runs algorithms, possibly for content moderation or analysis.
Logout:The admin logs out of the system.
General Observations
The workflow is split into two sections: User Actions and Admin Actions, indicating separate
responsibilities.
The diagram uses decision nodes (diamonds) to represent conditional branches (e.g.,
authentication checks).

32
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

The start point is represented by a filled circle, and the end point is a circle with an "X," indicating
the termination of the process.
3.3.5 COMPONENT DIAGRAM

Fig 8: Component diagram


A Component Diagram is a type of UML (Unified Modeling Language) diagram that focuses on
the physical aspects of a system. It represents how the system is divided into components and how
these components interact with each other. Component diagrams are often used to model the
architecture of complex systems, showing dependencies and interfaces between components.
Key Components:
1.Actor
• User: Interacts with the system to post or view content.
• Admin: Monitors and manages posts, filters abusive content.
2.User Interface:
• User Portal: The interface where users post or view content.

33
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

• Admin Portal: The interface for admins to monitor content and manage the
system.
3.Services and Components:
• Post Management Service: Manages actions like sending or viewing posts,
interacting with the database to store/retrieve posts.
• Authentication Service: Handles login functionality for both users and
admins, verifying credentials via the database.
• Algorithm Module: Runs algorithms for content analysis, such as detecting
abusive language.
• Bullying Words Service: Manages a list of bullying keywords, stored in the
database for use in the algorithm.
• Database: Centralized storage system that holds: Posts for the Post
Management Service.User data for Authentication Service.Keywords for the Bullying
Words Service.
• Interactions and Flows:
• User Flow:
• Registers/logs in via Authentication Service. o Uses Post Management Service
to send/view posts.
• Posts are stored and retrieved from the Database.
• Admin Flow:
• Logs in through the Admin Portal, which uses the Authentication Service. o
Monitors and manages content, utilizing the Algorithm Module and Bullying Words
Service for moderation.
• Algorithm Analysis:
• The Algorithm Module analyzes posts for abusive or bullying patterns, using
the Bullying Words Service. Data for analysis is fetched from the database.
4.Actor
• User: Interacts with the system to post or view content.
• Admin: Monitors and manages posts, filters abusive content.

34
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

5.User Interface:
• User Portal: The interface where users post or view content.
• Admin Portal: The interface for admins to monitor content and manage the
system.
6.Services and Components:
• Post Management Service: Manages actions like sending or viewing posts,
interacting with the database to store/retrieve posts.
• Authentication Service: Handles login functionality for both users and
admins, verifying credentials via the database.

35
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

IV. IMPLEMENTATION
4.1 TECHNOLOGIES
What is Python ?
Python is currently the most widely used multi-purpose, high-level programming
language.Python allows programming in Object-Oriented and Procedural paradigms. Python
programs generally are smaller than other programming languages like Java.Programmers have
to type relatively less and indentation requirement of the language, makes them readable all the
time.Python language is being used by almost all tech-giant companies like – Google, Amazon,
Facebook, Instagram, Dropbox, Uber… etc.The biggest strength of Python is huge collection of
standard library which can be used for the following –
• Machine Learning
• GUI Applications (like Kivy, Tkinter, PyQt etc. )
• Web frameworks like Django (used by YouTube, Instagram, Dropbox)
• Image processing (like Opencv, Pillow)
• Web scraping (like Scrapy, BeautifulSoup, Selenium)
• Test frameworks
• Multimedia

Advantages of Python
1. Extensible
As we have seen earlier, Python can be extended to other languages. You can write some of
your code in languages like C++ or C. This comes in handy, especially in projects.
2.Embeddable
Complimentary to extensibility, Python is embeddable as well. You can put your Python code
in your source code of a different language, like C++. This lets us add scripting capabilities to our
code in the other language.
3.Improved Productivity
The language’s simplicity and extensive libraries render programmers more productive than
languages like Java and C++ do. Also, the fact that you need to write less and get more things
done.

36
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

4. IOT Opportunities
Since Python forms the basis of new platforms like Raspberry Pi, it finds the future bright for
the Internet Of Things. This is a way to connect the language with the real world.
5. Simple and Easy
When working with Java, you may have to create a class to print ‘Hello World’. But in Python,
just a print statement will do. It is also quite easy to learn, understand, and code. This is why when
people pick up Python, they have a hard time adjusting to other more verbose languages like Java.
6.Readable
Because it is not such a verbose language, reading Python is much like reading English. This
is the reason why it is so easy to learn, understand, and code. It also does not need curly braces to
define blocks, and indentation is mandatory. This further aids the readability of the code.
7.Object-Oriented
This language supports both the procedural and object-oriented programming paradigms. While
functions help us with code reusability, classes and objects let us model the real world. A class
allows the encapsulation of data and functions into one.
8. Free and Open-Source
Like we said earlier, Python is freely available. But not only can you download Python for free,
but you can also download its source code, make changes to it, and even distribute it. It downloads
with an extensive collection of libraries to help you with your tasks.
9. Portable
When you code your project in a language like C++, you may need to make some changes to it
if you want to run it on another platform. But it isn’t the same with Python. Here, you need to code
only once, and you can run it anywhere. This is called Write Once Run Anywhere (WORA).
However, you need to be careful enough not to include any system-dependent features.
10. Interpreted
Lastly, we will say that it is an interpreted language. Since statements are executed one by one,
debugging is easier than in compiled languages.

37
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

Advantages of Python Over Other Languages


1. Less Coding
Almost all of the tasks done in Python requires less coding when the same task is done in other
languages. Python also has an awesome standard library support, so you don’t have to search for
any third-party libraries to get your job done. This is the reason that many people suggest learning
Python to beginners.
2. Affordable
Python is free therefore individuals, small companies or big organizations can leverage the free
available resources to build applications. Python is popular and widely used so it gives you better
community support.
3. Python is for Everyone
Python code can run on any machine whether it is Linux, Mac or Windows. Programmers need
to learn different languages for different jobs but with Python, you can professionally build web
apps, perform data analysis and machine learning, automate things, do web scraping and also build
games and powerful visualizations. It is an all-rounder programming language.
Disadvantages of Python
1. Speed Limitations
We have seen that Python code is executed line by line. But since Python is interpreted, it often
results in slow execution. This, however, isn’t a problem unless speed is a focal point for the
project. In other words, unless high speed is a requirement, the benefits offered by Python are
enough to distract us from its speed limitations.
2. Weak in Mobile Computing and Browsers
While it serves as an excellent server-side language, Python is much rarely seen on the client-
side. Besides that, it is rarely ever used to implement smartphone-based applications. One such
application is called Carbonnelle.
3. Design Restrictions
As you know, Python is dynamically-typed. This means that you don’t need to declare the type
of variable while writing the code. It uses duck-typing. But wait, what’s that? Well, it just means
that if it looks like a duck, it must be a duck. While this is easy on the programmers during coding,
it can raise run-time errors.

38
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

4. Underdeveloped Database Access Layers


Compared to more widely used technologies like JDBC (Java DataBase Connectivity) and
ODBC
(Open DataBase Connectivity), Python’s database access layers are a bit underdeveloped.
Consequently, it is less often applied in huge enterprises.
5. Simple
Python’s simplicity can indeed be a problem. Take my example. I don’t do Java, I’m more of a
Python person. To me, its syntax is so simple that the verbosity of Java code seems unnecessary.
This was all about the Advantages and Disadvantages of Python Programming Language.
History of Python
The programming language Python and the alphabet have something in common: both start
with ABC. In the context of Python, ABC refers to a programming language developed in the
1980s at the Centrum Wiskunde & Informatica (CWI) in Amsterdam, Netherlands. ABC
significantly influenced Python's designPython was conceptualized in the late 1980s by Guido van
Rossum, who was then working on the Amoeba distributed operating system project at CWI.
Reflecting on his time with ABC, van Rossum mentioned in an interview that his experiences and
frustrations with ABC inspired him to create Python. He aimed to retain ABC's strengths while
addressing its limitations.Van Rossum developed Python with a simple virtual machine, parser,
and runtime. He designed a syntax that used indentation for statement grouping instead of curly
braces or begin-end blocks. He also introduced powerful data types such as dictionaries, lists,
strings, and numbers, which remain key features of Python today.
Install Python Step-by-Step in Windows and Mac :
Python a versatile programming language doesn’t come pre-installed on your computer
devices. Python was first released in the year 1991 and until today it is a very popular high-level
programming language. Its style philosophy emphasizes code readability with its notable use of
great whitespace.The object-oriented approach and language construct provided by Python enables
programmers to write both clear and logical code for projects. This software does not come pre-
packaged with Windows.
How to Install Python on Windows and Mac :
There have been several updates in the Python version over the years. The question is how to
install Python? It might be confusing for the beginner who is willing to start learning Python but
39
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

this tutorial will solve your query. The latest or the newest version of Python is version 3.7.4 or in
other words, it is Python
3.
Note: The python version 3.7.4 cannot be used on Windows XP or earlier devices.

Before you start with the installation process of Python. First, you need to know about your
System Requirements. Based on your system type i.e. operating system and based processor, you
must download the python version. My system type is a Windows 64-bit operating system. So the
steps below are to install python version 3.7.4 on Windows 7 device or to install Python 3.
Download the Python Cheatsheet here.The steps on how to install Python on Windows 10, 8 and
7 are divided into 4 parts to help understand better.
Download the Correct version into the system
Step 1: Go to the official site to download and install python using Google Chrome or any other
web browser. OR Click on the following link: https://www.python.org

Fig a: Search Python Compiler

40
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

Now, check for the latest and the correct version for your operating system.
Step 2: Click on the Download Tab.

Fig b : Download The Version


Step 3: You can either select the Download Python for windows 3.7.0 button in Yellow Color or
you can scroll further down and click on download with respective to their version. Here, we are
downloading the most recent python version for windows 3.7.4
Step 4: Scroll down the page until you find the Files option.
Step 5: Here you see a different version of python along with the operating system.
• To download Windows 32-bit python, you can select any one from the three options: Windows
x86 embeddable zip file, Windows x86 executable installer or Windows x86 web-based installer.
•To download Windows 64-bit python, you can select any one from the three options: Windows
x86-64 embeddable zip file, Windows x86-64 executable installer or Windows x86-64 web-based
installer.
Here we will install Windows x86-64 web-based installer. Here your first part regarding which
version of python is to be downloaded is completed. Now we move ahead with the second part in
installing python i.e.
Installation
Note: To know the changes or updates that are made in the version you can click on the Release
Note Option.
Installation of Python
41
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

Step 1: Go to Download and Open the downloaded python version to carry out the installation
process.
Step 2: Before you click on Install Now, Make sure to put a tick on Add Python 3.7 to PATH.

Fig c : Install Python Compiler

Step 3: Click on Install NOW After the installation is successful. Click on Close.

With these above three steps on python installation, you have successfully and correctly installed
Python.
Now is the time to verify the installation.
Note: The installation process might take a couple of minutes.

Verify the Python Installation


Step 1: Click on Start
Step 2: In the Windows Run Command, type “cmd”.5 Step 3: Open the Command prompt option.
Step 4: Let us test whether the python is correctly installed. Type python –V and press Enter.

42
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

Step 5: You will get the answer as 3.7.4


Note: If you have any of the earlier versions of Python already installed. You must first uninstall
the earlier version and then install the new one.

MACHINE LEARNING
What is Machine Learning?
Machine Learning (ML) is a branch of artificial intelligence focused on building models to
understand and predict data patterns. These models are equipped with tunable parameters that
adapt to observed data, effectively enabling the system to "learn."
Once trained on past data, these models can predict outcomes for new data. ML can be broadly
categorized into:
1.Supervised Learning: Learns from labeled data to predict outcomes (e.g., classification for
categories and regression for continuous data).
2.Unsupervised Learning: Extracts insights from unlabeled data (e.g., clustering for grouping
data and dimensionality reduction for simplifying data representation).
Why Do We Need Machine Learning?
Humans excel in problem-solving, but ML helps scale decision-making using data. It enables
automation, improved efficiency, and problem-solving in scenarios where traditional
programming logic falls short.

43
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

Organizations adopt ML for tasks such as fraud detection, recommendation systems, and more.

Challenges in Machine Learning


1.Data Quality: Poor data affects model accuracy.
2.Time-Intensive: Data acquisition and preprocessing require significant effort.
3.Skill Gap: Lack of experts in ML.
4.Unclear Objectives: Misaligned goals hinder effective solutions.
5.Overfitting/Underfitting: Poor model generalization leads to inaccurate predictions.
6.High Dimensionality: Too many features complicate modeling.
7.Deployment Difficulties: Complex models are hard to implement in real-world scenarios.

Applications of Machine Learning


ML is widely used across industries for:
• Emotion and sentiment analysis
• Weather and stock market forecasting
• Speech recognition and synthesis
• Fraud detection and prevention
• Customer segmentation
• Personalized recommendations
Advantages of Machine Learning
1. Identifies patterns and trends efficiently.
2. Operates autonomously, improving with experience.
3. Handles complex, multidimensional data.
4. Widely applicable across domains.
Disadvantages of Machine Learning
1. Requires massive, high-quality datasets.
2. Time-consuming development and resource-intensive.
3. Susceptible to errors like biased predictions.
4. Challenging result interpretation and deployment.

44
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

4.2 SAMPLE CODE


from django.shortcuts import render
from django.template import RequestContext
from django.contrib import messages
from django.http import HttpResponse
import os
import pymysql
import subprocess
from django.http import HttpResponse
from datetime import date

global uname

def JavaAssessment(request):
if request.method == 'GET':
return render(request, 'JavaAssessment.html', {})

def PythonAssessment(request):
if request.method == 'GET':
return render(request, 'PythonAssessment.html', {})

def index(request):
if request.method == 'GET':
return render(request, 'index.html', {})

def AdminLogin(request):
if request.method == 'GET':
return render(request, 'AdminLogin.html', {})

def UserLogin(request):
45
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

if request.method == 'GET':
return render(request, 'UserLogin.html', {})

def Signup(request):
if request.method == 'GET':
return render(request, 'Signup.html', {})

def AddChallenges(request):
if request.method == 'GET':
return render(request, 'AddChallenges.html', {})

def CompileJava(request):
if request.method == 'GET':
code = request.GET.get('mytext', False)
code = code.replace("@","\n")
codes = code.split("\n")
cname = ""
for i in range(len(codes)):
temp = codes[i].split(" ")
if len(temp) >= 2:
if temp[0].strip() == 'class' or temp[1].strip() == 'class':
if temp[0].strip() == 'class':
cname = temp[1].strip()
if temp[1].strip() == 'class':
cname = temp[2].strip()
print(cname)
f = open(cname+".java", "w")
f.write(code)
f.close()
calljava = subprocess.Popen(["javac",cname+".java"], stderr=subprocess.PIPE)
46
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

compiled = calljava.stderr.read()
compile_errors = compiled.decode().strip()
length = len(compile_errors)
print("lenght : "+str(length))
output = ""
if length == 0:
output += "Compilation Detail: compiled successfully\n"
calljava = subprocess.Popen(["java",cname, "10","20"], stdout=subprocess.PIPE)
compiled = calljava.stdout.read()
output += "Execution Detail "+compiled.decode()+"\nYour Coding Grade: 100%"
else:
arr = compile_errors.split("\n")
errors = arr[len(arr)-1]
err = errors.split(" ")
err = int(err[0])
grade = err / len(codes)
output += compile_errors+"\n\nYour Coding Grade: "+str(grade)
if os.path.exists(cname+".java"):
os.remove(cname+".java")
if os.path.exists(cname+".class"):
os.remove(cname+".class")
return HttpResponse(output, content_type="text/plain")

def CompilePython(request):
if request.method == 'GET':
code = request.GET.get('mytext', False)
code = code.replace("@","\n")
codes = code.split("\n")
print(code)
f = open("test.py", "w")
47
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

f.write(code)
f.close()
callpython = subprocess.Popen(["python","test.py", "40","20"], stderr=subprocess.PIPE)
error = callpython.stderr.read()
error = error.decode()
output = error
if len(error) == 0:
callpython = subprocess.Popen(["python","test.py", "40","20"],
stdout=subprocess.PIPE)
output = callpython.stdout.read()
output = output.decode()+"\n\nCode Compilation Successfull, Your Coding Grade =
100%"
#print("Execution Detail "+output)
else:
arr = len(error.split("\n")) / 2
grade = len(codes) / arr
output = "Errors occured: "+error+"\n\nYour Coding grade: "+str(grade)
return HttpResponse(output, content_type="text/plain")

def AdminLoginAction(request):
global uname
if request.method == 'POST':
username = request.POST.get('t1', False)
password = request.POST.get('t2', False)
if username == 'admin' and password == 'admin':
uname = username
context= {'data':'welcome '+uname}
return render(request, 'AdminScreen.html', context)
else:
context= {'data':'invalid login details'}
48
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

return render(request, 'AdminLogin.html', context)

def AcceptChallenge(request):
if request.method == 'GET':
global uname
cid = request.GET.get('t1', False)
output = '<td><input type="text" name="t1" style="font-family: Comic Sans MS"
size="30" value="'+str(cid)+'" readonly></td></tr>'
context= {'data1':output}
return render(request, 'AcceptChallenge.html', context)

def getScore(sname,cid):
score = 'none'
con = pymysql.connect(host='127.0.0.1',port = 3308,user = 'root', password = 'root',
database = 'Assessment',charset='utf8')
with con:
cur = con.cursor()
cur.execute("select * from challenge_result")
rows = cur.fetchall()
for row in rows:
if row[0] == cid and row[1] == sname:
score = row[3]
break
return score

def ViewAdminChallenge(request):
if request.method == 'GET':
global uname
49
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

output = ""
font = '<font size="" color="black">'
con = pymysql.connect(host='127.0.0.1',port = 3308,user = 'root', password = 'root',
database = 'Assessment',charset='utf8')
with con:
cur = con.cursor()
cur.execute("select * from challenges")
rows = cur.fetchall()
for row in rows:
output += '<tr><td>'+font+str(row[0])+'</td>'
output += '<td>'+font+row[1]+'</td>'
output += '<td>'+font+str(row[2])+'</td>'
score = getScore(uname,row[0])
if score == 'none':
output+='<td><a href=\'AcceptChallenge?t1='+str(row[0])+'\'><font size=3
color=black>Click Here to Answer</font></a></td></tr>'
else:
output += '<td>'+font+'Already Submitted. Your Score: '+score+'</td>'
context= {'data':output}
return render(request, 'ViewAdminChallenge.html', context)

def ViewUsers(request):
if request.method == 'GET':
global uname
output = ""
font = '<font size="" color="black">'
con = pymysql.connect(host='127.0.0.1',port = 3308,user = 'root', password = 'root',
database = 'Assessment',charset='utf8')
with con:
cur = con.cursor()
50
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

cur.execute("select * from signup")


rows = cur.fetchall()
for row in rows:
output += '<tr><td>'+font+str(row[0])+'</td>'
output += '<td>'+font+row[1]+'</td>'
output += '<td>'+font+row[2]+'</td>'
output += '<td>'+font+row[3]+'</td>'
output += '<td>'+font+row[4]+'</td>'
context= {'data':output}
return render(request, 'ViewUsers.html', context)

def UserLoginAction(request):
global uname
if request.method == 'POST':
username = request.POST.get('t1', False)
password = request.POST.get('t2', False)
usertype = request.POST.get('t3', False)
index = 0
con = pymysql.connect(host='127.0.0.1',port = 3308,user = 'root', password = 'root',
database = 'Assessment',charset='utf8')
with con:
cur = con.cursor()
cur.execute("select username,password FROM signup")
rows = cur.fetchall()
for row in rows:
if row[0] == username and password == row[1]:
uname = username
index = 1
break
page = "UserLogin.html"
51
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

if index == 1:
page = "UserScreen.html"
if page != "UserLogin.html":
context= {'data':'welcome '+uname}
return render(request, page, context)
else:
context= {'data':'invalid login details'}
return render(request, page, context)

def SignupAction(request):
if request.method == 'POST':
username = request.POST.get('t1', False)
password = request.POST.get('t2', False)
contact = request.POST.get('t3', False)
email = request.POST.get('t4', False)
address = request.POST.get('t5', False)
output = "none"
con = pymysql.connect(host='127.0.0.1',port = 3308,user = 'root', password = 'root',
database = 'Assessment',charset='utf8')
with con:
cur = con.cursor()
cur.execute("select username FROM signup")
rows = cur.fetchall()
for row in rows:
if row[0] == username:
output = username+" Username already exists"
break
if output == 'none':
db_connection = pymysql.connect(host='127.0.0.1',port = 3308,user = 'root', password
= 'root', database = 'Assessment',charset='utf8')
52
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

db_cursor = db_connection.cursor()
student_sql_query = "INSERT INTO
signup(username,password,contact_no,email,address)
VALUES('"+username+"','"+password+"','"+contact+"','"+email+"','"+address+"')"
db_cursor.execute(student_sql_query)
db_connection.commit()
print(db_cursor.rowcount, "Record Inserted")
if db_cursor.rowcount == 1:
output = 'Signup Process Completed'
context= {'data':output}
return render(request, 'Signup.html', context)

def AddChallengesAction(request):
if request.method == 'POST':
challenge = request.POST.get('t1', False)
today = date.today()
count = 0
con = pymysql.connect(host='127.0.0.1',port = 3308,user = 'root', password = 'root',
database = 'Assessment',charset='utf8')
with con:
cur = con.cursor()
cur.execute("select count(*) FROM challenges")
rows = cur.fetchall()
for row in rows:
count = row[0]
count = count + 1
db_connection = pymysql.connect(host='127.0.0.1',port = 3308,user = 'root', password =
'root', database = 'Assessment',charset='utf8')
db_cursor = db_connection.cursor()

53
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

student_sql_query = "INSERT INTO


challenges(challenge_id,challenge_data,challenge_date)
VALUES('"+str(count)+"','"+challenge+"','"+str(today)+"')"
db_cursor.execute(student_sql_query)
db_connection.commit()
print(db_cursor.rowcount, "Record Inserted")
if db_cursor.rowcount == 1:
output = 'Challenge details added with ID: '+str(count)
context= {'data':output}
return render(request, 'AddChallenges.html', context)

def AcceptChallengeAction(request):
if request.method == 'POST':
global uname
cid = request.POST.get('t1', False)
answer = request.POST.get('t2', False)
db_connection = pymysql.connect(host='127.0.0.1',port = 3308,user = 'root', password =
'root', database = 'Assessment',charset='utf8')
db_cursor = db_connection.cursor()
student_sql_query = "INSERT INTO
challenge_result(challenge_id,student_name,student_answer,score)
VALUES('"+cid+"','"+uname+"','"+answer+"','Pending')"
db_cursor.execute(student_sql_query)
db_connection.commit()
print(db_cursor.rowcount, "Record Inserted")
if db_cursor.rowcount == 1:
output = 'Your answer accepted'
context= {'data':output}
return render(request, 'UserScreen.html', context)

54
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

def ViewChallenges(request):
if request.method == 'GET':
global uname
output = ""
font = '<font size="" color="black">'
con = pymysql.connect(host='127.0.0.1',port = 3308,user = 'root', password = 'root',
database = 'Assessment',charset='utf8')
with con:
cur = con.cursor()
cur.execute("select * from challenge_result where score='Pending'")
rows = cur.fetchall()
for row in rows:
output += '<tr><td>'+font+str(row[0])+'</td>'
output += '<td>'+font+row[1]+'</td>'
output += '<td>'+font+row[2]+'</td>'
output+='<td><a href=\'ChallengeScore?t1='+str(row[0])+'&t2='+row[1]+'\'><font
size=3 color=black>Click Here to Give Score</font></a></td></tr>'
context= {'data':output}
return render(request, 'ViewChallenges.html', context)

def getAnswer(cid,sname):
answer = "none"
con = pymysql.connect(host='127.0.0.1',port = 3308,user = 'root', password = 'root',
database = 'Assessment',charset='utf8')
with con:
cur = con.cursor()
cur.execute("select student_answer from challenge_result where
challenge_id='"+str(cid)+"' and student_name='"+sname+"'")
55
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

rows = cur.fetchall()
for row in rows:
answer = row[0]
break
return answer

def ChallengeScore(request):
if request.method == 'GET':
cid = request.GET.get('t1', False)
sname = request.GET.get('t2', False)
answer = getAnswer(cid,sname)
output = '<td><input type="text" name="t1" style="font-family: Comic Sans MS"
size="30" value="'+cid+'" readonly></td></tr>'
output+= '<tr><td><font size="" color="black">Student&nbsp;Name</b></td>'
output += '<td><input type="text" name="t2" style="font-family: Comic Sans MS"
size="30" value="'+sname+'" readonly></td></tr>'
output+= '<tr><td><font size="" color="black">Student&nbsp;Answer</b></td>'
output+= '<td><textarea name="t3" rows="15"
cols="80">'+answer+'</textarea></td></tr>'
context= {'data1':output}
return render(request, 'ChallengeScore.html', context)

def ChallengeScoreAction(request):
if request.method == 'POST':
cid = request.POST.get('t1', False)
sname = request.POST.get('t2', False)
score = request.POST.get('t4', False)
db_connection = pymysql.connect(host='127.0.0.1',port = 3308,user = 'root', password =
'root', database = 'Assessment',charset='utf8')
db_cursor = db_connection.cursor()
56
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

student_sql_query = "update challenge_result set score='"+score+"' where


challenge_id='"+str(cid)+"' and student_name='"+sname+"'"
db_cursor.execute(student_sql_query)
db_connection.commit()
print(db_cursor.rowcount, "Record Inserted")
if db_cursor.rowcount == 1:
output = 'Score successfully assigned to '+sname
context= {'data':output}
return render(request, 'AdminScreen.html', context)

57
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

V.SYSTEM TESTING
Purpose of Testing:
Testing is a process to identify errors or weaknesses in a product to ensure its functionality
aligns with requirements and user expectations. It validates components, sub-assemblies, and
the complete system to confirm it meets quality standards.
5.1 Types of Testing:
1. Unit Testing:
o Tests individual units or components for proper functionality.
o Validates decision branches and internal code logic.
o Performed after a unit is developed, ensuring accurate inputs and outputs.
2. Integration Testing:
o Tests interactions between integrated software components.
o Ensures that combined components function correctly as a system.
o Focuses on detecting errors from the integration process.
3. Functional Testing:
o Verifies software functions match requirements and user manuals. o Ensures
valid inputs are accepted, invalid inputs rejected, and outputs are accurate.
o Focused on business processes, predefined procedures, and system links.
4. System Testing:
o Confirms the complete software system meets overall requirements. o
Emphasizes testing the entire system's integration and process links.
5. White Box Testing:
o Tests internal workings and structure of the software.
o Used for areas inaccessible through external testing methods.
o Black Box Testing:
o Tests software functionality without knowledge of its internal structure.
o Based on input/output analysis from requirements documentation.

5.1.1 TEST CASES

58
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

o Test Cases for Predicting Cyberbullying on Social Media Using Machine


Learning
1. Data Input Validation
o o Objective: Ensure the system accepts data in the correct format (e.g., text,
images). o Test Case: Feed sample social media data in various formats (correct/incorrect). o
Expected Result: Only valid data should be processed, and errors should be flagged for invalid
data.
2. Data Preprocessing
o o Objective: Verify that data cleaning, filtering, and preparation work as
expected. o Test Case: Input raw data with noise (e.g., hashtags, special characters). o
Expected Result: Noise is removed, and clean data is output for analysis.
3. Model Prediction Accuracy
o Objective: Test the model’s ability to classify content correctly. o Test Case:
Input labeled data (cyberbullying and non-cyberbullying) to evaluate predictions.
o Expected Result: High accuracy in correctly identifying both categories.
4. Real-Time Data Handling
o Objective: Check if the system handles real-time social media feeds efficiently.
o Test Case: Simulate streaming data to the model.
o Expected Result: The system processes data without delay and provides real-
time predictions.
5. False Positives and Negatives o Objective: Ensure the system minimizes incorrect
predictions. o Test Case: Input borderline cases (e.g., sarcastic comments, ambiguous text). o
Expected Result: False positives and negatives are reduced to acceptable levels.

6. User Interface and Output


o Objective: Test the clarity and functionality of the system’s user interface. o
Test Case: Display results to end-users after predictions.
o Expected Result: The output (e.g., flagged content) is easy to understand and
actionable.
Scalability o Objective: Verify the system’s performance with large datasets.

59
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

o Test Case: Input a high volume of social media data simultaneously. o Expected
Result: The system processes all data efficiently without crashing or slowing down.
Privacy and Security o Objective: Ensure user data is handled securely. o Test Case:
Test data encryption and user anonymity.
o Expected Result: No private information is exposed or misused.
o By covering these test cases, your project can ensure accuracy, reliability, and
scalability in detecting cyberbullying.

5.1.1 Coding Assessment Portal


In this project we are designing web application where users can signup with the application
and then login and can write programs in JAVA or PYTHON and then application will compile
and execute code and based on programs correctness application will give grade to the user.
While accessing this application we have added following features
1) Disable right click
2) Disable new tab opening
3) Disable screen shots capture
You asked to monitor audio and video and how we can do that as we can monitor using CCTV
not only with software’s program
To implement this project we have designed following modules
1) New User Signup: using this module user can signup with the application
2) User Login: using this module user can login to application
3) Python Assessment: using this module user can write python program and then application will
compile and run code and based on correctness application will give grade
4) Java Assessment: using this module user can write java program and then application will
compile and run code and based on correctness application will give grade
5) Admin Login; admin can login to application using username and password as ‘admin’ and
‘admin’ and after login admin can view all registered user details

60
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

For coding assessment you can use test programs given in ‘TestCodeSamples’ folder which is
showing below screen

61
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

VI. RESULTS
To run project install PYTHON 3.7 and MYSQL and then copy content from DB.txt file and
then paste in MYSQL to create database
Now double click on ‘run.bat’ to start DJANGO server and to get below screen

In above screen DJANGO server started and now open browser and enter URL as
http://127.0.0.1:8000/index.html and press enter key to get below page
In above screen click on ‘New User Signup Here’ link to add new user and to get below screen

62
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

In above screen user is entering signup details and then press ‘Submit’ button to get below
screen

In above screen in red colour text we can see signup process completed and now click on
‘Admin Login’ link to get below screen

63
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

In above screen admin is login and after login will get below screen

In above screen admin can click on ‘View Registered Users’ link to get below output

64
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

In above screen admin can view all registered user details and now logout and login as kumar
user

In above screen user is login and after login will get below screen

65
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

In above screen user can click on ‘Python Assessment’ link to get below screen

In above screen in first text area you can enter python code and in second text area you can see
output

66
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

In above screen I entered some factorial program and now press ‘Run Code Assessment’ button
to get below output

In above screen in second text area we got output as ‘Factorial of 5 is 120’ and we got message
as Code Compilation Successful and got grade as 100% and now put some error in code and
then execute again

67
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

In above screen in blue colour text you can see I added some garbage * symbols which are not
valid and press button to get below compilation error

In above screen in second text area we got error details and we got grade as 4.4% and similarly
you can test other programs also. Now click on ‘Java Assessment’ link to get below screen.

68
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

In above screen in first text area you can enter java program and in second text area u will see
error or output details

In above screen I entered some addition of 2 numbers program and press button to get below
output

69
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

In above screen I got error as I forgot to put ‘;’ after System.out. statement and now I will run
same program after putting semicolon

In above screen program got compiled and got addition output as 170 and got grade as 100%
as program compiled successfully.

70
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

VII. CONCLUSION
In conclusion, the online coding assessment has been a valuable experience that has allowed me
to demonstrate my programming skills and knowledge. Throughout the assessment, I was
presented with a series of challenging problems that required me to think critically and creatively.
I was able to apply my understanding of programming concepts and data structures to solve the
problems efficiently and effectively.
One of the key takeaways from this assessment is the importance of attention to detail and thorough
testing. I learned that even small mistakes can have a significant impact on the overall performance
of the code, and that it is essential to test the code thoroughly to ensure that it is working as
expected. I also appreciated the opportunity to work with a variety of programming languages and
technologies, which helped to broaden my skills and knowledge.
Overall, I am pleased with my performance on the assessment, and I believe that it has provided a
comprehensive evaluation of my coding abilities. I am confident that my skills and knowledge will
enable me to make a positive contribution to any organization, and I look forward to the
opportunity to apply my skills in a real-world setting.
In terms of areas for improvement, I recognize that there is always room to grow and develop as a
programmer. One area that I would like to focus on in the future is optimizing my code for
performance and scalability. I understand that this is an important consideration in many real-
world applications, and I would like to develop my skills in this area.
I would like to thank the assessors for providing me with the opportunity to complete this
assessment. I appreciate the time and effort that they put into creating the assessment and
evaluating my performance. I am grateful for the feedback that I received, which will help me to
improve my skills and knowledge in the future.
I would also like to explore more advanced programming concepts and technologies, such as
machine learning and artificial intelligence. I believe that these areas have the potential to
revolutionize many industries, and I would like to be at the forefront of this innovation.

In conclusion, I am grateful for the opportunity to have completed this online coding assessment,
and I am proud of the skills and knowledge that I have demonstrated. I am excited to apply my
skills in a real-world setting and to continue learning and growing as a programmer. I am confident

71
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

that my passion for programming, combined with my strong work ethic and attention to detail,
will enable me to make a positive contribution to any organization.
In addition, I would like to improve my skills in software development methodologies, such as
Agile and Scrum. I believe that these methodologies are essential for delivering high-quality
software products on time and on budget, and I would like to learn more about how to apply them
in a real-world setting.
I would also like to learn more about cybersecurity and how to protect software systems from
cyber threats. I believe that this is an important consideration in today's digital age, and I would
like to develop my skills in this area.
In conclusion, I am grateful for the opportunity to have completed this online coding assessment,
and I am proud of the skills and knowledge that I have demonstrated. I am excited to apply my
skills in a real-world setting and to continue learning and growing as a programmer. I am confident
that my passion for programming, combined with my strong work ethic and attention to detail,
will enable me to make a positive contribution to any organization.
Finally, I would like to say that I am excited about the future of programming and the many
opportunities that it presents. I believe that programming has the potential to revolutionize many
industries and to improve people's lives in many ways. I am proud to be a part of this field, and I
look forward to contributing to its continued growth and development.

72
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

VIII. FUTURE SCOPE


Preparing Online Examination Systems
Online exams may be a new topic but preparing for exams has always been a critical practice.
Therefore, you can look at online exams as a modern step up from the regular pen and paper
tests.
Preparing a modern version of tests is done by mirroring what a proper physical exam looks
like. A well-formulated exam discusses content relevant to the topic and provides the same level
of difficulty for every student.
With that in mind, exams need to consider the following.
1. Security
2. Content/Relevance
3. Accessibility
4. Fairness
1. Security
One of the main concerns for examinations, in general, is combating cheating. Different
examination systems have their methods to counter cheating attempts.
Some licensure examinations prevent test-takers from bringing any personal belongings to the
examination room. Other exams have proctors to watch over students and stop any wandering
eyes.
Ensuring security and academic integrity in an online examination is quite challenging. Virtual
examination systems let people access these tests from home. It is unlikely that you can take
personal belongings from their own home.
Another aspect of online examinations that makes security a problem is the manner of students
taking an exam. Most exams have students drop their phones off or keep any device in the bag
and out of their reach. However, if you take a student’s device, you take away their access to an
exam.
All of these may seem like severe problems that make security for an online examination system
impossible. However, different institutes and companies have taken additional steps to ensure
integrity.

73
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

Some schools require students to turn on their cameras during examinations. The camera
provides the same effect as having a proctor in the room standing beside them. Another answer
is to use examination platforms for these tests.
Some online examination systems prevent students from accessing other websites or parts of
their devices during an exam. Other platforms record the screen that a student is accessing to
show what they see.
Exam.net is an online examination portal used today. It provides a secure platform for students
to take their exams and also have their plagiarism checkers.
2. Content and Relevance
As mentioned, exams are important as they test what a student should know based on difficulty.
However, creating a proper online examination isn’t all about how online exams are conducted.
A huge chunk of it is making sure that the questions themselves are relevant.
You may have the best security system, but it fails to measure the students’ understanding if the
exam isn’t relevant to the topic. The criteria would say that it isn’t a reliable online exam. Just
like preparing for a physical exam, the questions need to be analyzed and checked if they belong
to the scope of the syllabus.
An online examination system that is focused on the wrong topics is ineffective and frustrating
for the student.
3. Accessibility
Having a relevant and secure exam is an outstanding achievement, but these strengths become
insignificant if students cannot access them. Accessibility discusses who gains access to the
exam.
How are these exams being distributed, and will the right people get them?
As you can guess, this is more complicated when it comes to virtual examinations. Physical
exams simply involve passing the paper to the right student, which isn’t possible in online
exams.
Online examination systems ship the questions through a network of wires and servers before
they can arrive at the target student. School management platforms play a crucial role here.
Some systems require large bandwidth and cannot be accessed by those who have subpar
internet. Therefore, choosing the right platform may be the deciding factor whether a student
gets to access their education or not.
74
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

Accessibility isn’t simply making sure that the exams get to the right people. Accessibility is
also about ensuring that these people can get to the exam.
4. Fairness
Talking about fairness is an overlooked topic when it comes to exams, but it is just as important.
Some people may have thought, “Well, we can just shuffle the questions to prevent cheating,”
and to some extent, it works. Students can no longer message their classmates the question
numbers and their answers.
Shuffling changes the order in which questions appear to a test taker is a factor in the difficulty
they experience. However, scrambled questions haves their weaknesses.
If one student were to get all the easy questions right away, then it might affect the energy left
for the rest of the exam. In contrast, a different student may have all the difficult questions right
away and have no power for the rest of the exam. The latter pertains to test-takers fatigue, which
happens more often during periodic examinations.
All of these minuscule factors show why online examinations shouldn’t be taken lightly.
Seemingly obvious answers might help in security but sacrifice fairness. Preparing an excellent
online examination system involves ticking all the right boxes with a good balance.

75
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

IX. References
[1] Douce C, Livingstone D, Orwell J. Automatic test-based assessment of programming: A
review. J Educ Resour Comput 2005;5(3):4–es. http://dx. doi.org/10.1145/1163405.1163409,
URL http://portal.acm.org/citation.cfm? doid=1163405.1163409.
[2] Amelung M, Forbrig P, Rösner D. Towards generic and flexible web services for E-
assessment. ACM SIGCSE Bull 2008;40:5.
[3] Ihantola P, Ahoniemi T, Karavirta V, Seppälä O. Review of recent systems for automatic
assessment of programming assignments. In: Proceedings of the 10th Koli calling international
conference on computing education research - Koli calling ’10. Berlin, Germany: ACM Press;
2010, p. 86– 93. http://dx.doi.org/10.1145/1930464.1930480, URL http://portal.acm.org/
citation.cfm?doid=1930464.1930480.
[4] Lehtonen T. Javala–addictive e-learning of the Java programming language. In: Proceedings
of Kolin Kolistelut/Koli calling–Fifth annual baltic conference on computer science education.
Finland: Koli; 2005, p. 41–8.
[5] Insa D, Silva J. Semi-automatic assessment of unrestrained Java code: a Library, a DSL,
and a workbench to assess exams and exercises. In: Proceedings of the 2015 ACM conference
on innovation and technology in computer science education. 2015, p. 39–44.
[6] Škorić I, Orehovački T, Ivašić-Kos M. Exploring the acceptance of the web-based coding
tool in an introductory programming course: A pilot study. In: International conference on
human interaction and emerging technologies. Springer; 2020, p. 42–8.
[7] Leal JP, Silva F. Mooshak: A web-based multi-site programming contest system. Softw -
Pract Exp 2003;33(6):567–81. http://dx.doi.org/10.1002/ spe.522.
[8] Guerreiro P, Georgouli K. Combating anonymousness in populous CS1 and CS2 courses.
ACM SIGCSE Bull 2006;38(3):5.
[9] Edwards SH, Perez-Quinones MA. Web-CAT: Automatically grading programming
assignments. SIGCSE Bull 2008;40(3):328. http://dx.doi.org/10. 1145/1597849.1384371. [10]
Sharp C, van Assema J, Yu B, Zidane K, Malan DJ. An open-source, API-based framework for
assessing the correctness of code in CS50. In: Proceedings of the 2020 ACM conference on
innovation and technology in computer science education. New York, NY, USA: Association
for Computing Machinery; 2020, p. 487–92. http://dx.doi.org/10.1145/3341525.3387417.

76
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

[11] Heckman S, King J. Developing software engineering skills using real tools for automated
grading. In: Proceedings of the 49th ACM technical symposium on computer science education.
Baltimore, Maryland, USA: ACM Press; 2018, p. 794–9.
http://dx.doi.org/10.1145/3159450.3159595, URL
http://dl.acm.org/citation.cfm?doid=3159450.3159595.
[12] Martín-Blas T, Serrano-Fernández A. The role of new technologies in the learning process:
Moodle as a teaching tool in Physics. Comput Educ 2009;52(1):35–44.
[13] Lobb R, Harlow J. Coderunner: A tool for assessing computer programming skills. ACM
Inroads 2016;7(1):47–51. [14] Wünsche BC, Chen Z, Shaw L, Suselo T, Leung K-C, Dimalen
D, Mark Wvd, Luxton-Reilly A, Lobb R. Automatic assessment of OpenGL computer graphics
assignments. In: Proceedings of the 23rd annual ACM conference on innovation and technology
in computer science education. 2018, p. 81–6.
[15] Apache Software Foundation. Apache Maven project. 2021, https://maven. apache.org/.
[Online; last accessed 17 February 2021].
[16] Edwards SH, Börstler J, Cassel LN, Hall MS, Hollingsworth J. Developing a common
format for sharing programming assignments. ACM SIGCSE Bull 2008;40(4):167–82. [17]
Ivanov R, et al. Checkstyle. 2021, https://checkstyle.org/. [Online; last accessed 17 February
2021].
[18] Garcia B. Mastering software testing with JUnit 5: Comprehensive guide to develop high
quality Java applications. Packt Publishing Ltd; 2017.
[19] The Spring Team. Sprint boot. 2021, https://spring.io/projects/spring-boot. [Online; last
accessed 17 February 2021].
[20] Scholte R, et al. Apache Maven Invoker. 2022, https://maven.apache.org/ shared/maven-
invoker/. [Online; last accessed 09-March-2022].
[21] Kratzke N. Smart like a fox: How clever students trick dumb automated programming
assignment assessment systems. In: Lane HC, Zvacek S, Uhomoibhi J, editors. Proceedings of
the 11th international conference on computer supported education, Volume 2. SciTePress;
2019, p. 15–26. http://dx.doi.org/10.5220/0007424800150026.
[22] Baniassad E, Zamprogno L, Hall B, Holmes R. Stop the (autograder) insanity: Regression
penalties to deter autograder overreliance. In: Proceedings of the 52nd ACM technical
symposium on computer science education. 2021, p. 1062–8.
77
DEPT OF CSE KITS FOR WOMEN
ONLINE CODING ASSESSMENT

[23] Boettiger C. An introduction to Docker for reproducible research. Oper Syst Rev
2015;49(1):71–9.
[24] Ljubovic V, Pajic E. Plagiarism detection in computer programming using feature
extraction from ultra-fine-grained repositories. IEEE Access 2020;8:96505–14.
[25] Spacco J, Denny P, Richards B, Babcock D, Hovemeyer D, Moscola J, Duvall R. Analyzing
student work patterns using programming exercise data. In: Proceedings of the 46th ACM
technical symposium on computer science education. New York, NY, USA: Association for
Computing Machinery; 2015, p. 18–23. http://dx.doi.org/10.1145/2676723.2677297.
[26] Diana N, Eagle M, Stamper J, Grover S, Bienkowski M, Basu S. An instructor dashboard
for real-time analytics in interactive programming assignments. In: Proceedings of the seventh
international learning analytics & knowledge conference. 2017, p. 272–9.

78
DEPT OF CSE KITS FOR WOMEN

You might also like