Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
0 views

Newbcode_ a Programming Learning App Using Text-based Classification

The document introduces NewbCode, an offline application designed for students at Northwest Samar State University to learn programming fundamentals in Python and Java, addressing the challenges of unreliable internet access. It aims to facilitate self-paced learning through features like PDF-based query assistance, coding problems, and debugging tools. The study emphasizes the importance of programming skills in various industries and the growing demand for accessible learning resources in technology education.
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
0 views

Newbcode_ a Programming Learning App Using Text-based Classification

The document introduces NewbCode, an offline application designed for students at Northwest Samar State University to learn programming fundamentals in Python and Java, addressing the challenges of unreliable internet access. It aims to facilitate self-paced learning through features like PDF-based query assistance, coding problems, and debugging tools. The study emphasizes the importance of programming skills in various industries and the growing demand for accessible learning resources in technology education.
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 48

1

CHAPTER 1

INTRODUCTION

Project Context

According to recent studies, programming skills have become essential tools

in addressing the diverse and dynamic demands of the 21st century (Smith, 2022;

Johnson & Lee, 2021). The increasing reliance on technology across various

industries has made these skills crucial not only for computer science professionals

but also in fields such as finance, healthcare, and education. This shift highlights

programming literacy as a fundamental skill for adaptability in today’s job market. It

is now becoming a skill applied in data and artificial intelligence, web design and

development for applications across the range of mobile, web, social, and even

artistic expression and performance skills (Vihavainen et al., 2014). This shift has

led to an increasing demand for people with programming languages, especially

Python and Java are among the most in demand programming languages today

(Tiobe Index, 2024).

Self-paced learning has received a high demand, especially in technology

and computer science classes. Face-to-face education is characterized by lectures,

and this normally happens at a set time, and therefore this makes it very hard for

learners who have different backgrounds, prior knowledge, and the pace of

learning.

Online learning platforms such as CS50W, Codechum, Codecademy,

W3Schools, and Khan Academy are some of those platforms that provide the
2

usage of the students, the application includes a reward system for proof of

their efforts. Focusing on two of the most popular languages in the global

programming market according to the study of Tiobe Index, 2024. NewbCode offers

practice problems that are vital for skill enhancement (Keuning et al., 2018). This

approach provides a highly suitable and entertaining learning model for CCIS

students to effectively acquire appropriate coding skills for local challenges and

meet modern global IT industry requirements, (Grover et al., 2020). The ability to

use the app offline helps with unreliable internet connections by ensuring students

always have access to learning materials (Tinio et al., 2023) as the internet

connection in the area of NwSSU is unreliable. With PDF-Based Query Assistance

learning approach helps students with their errors or forgotten syntax.

Purpose and description

NewbCode is an offline application that aims to assist students of the

NwSSU College of Computing and Information Sciences to practice the basic

programming skills particularly python and java. It solves the problem of having

limited internet access because the internet connection in the NwSSU area and

other barangays in Calbayog is often unreliable or unavailable. The text-based

classification system utilizes PDF-based query assistance, enabling the basic AI

companion to answer fundamental user questions related to programming topics. In

the app, there are lessons, coding problems and YouTube tutorials video

suggestions. The PDF-Based Query Assistance help students by providing basic


3
indications about how to solve errors that may have been made in the code. All core

educational content is file-based, allowing offline access. NewbCode relates to

NwSSU’s curriculum as a means of independent practice and answering questions

and homework in class; its offline capabilities and highly specialized lessons are

beneficial even when the student has no permanent Internet connection.

Objectives of the Study

The main purpose of this particular research is to design and integrate an

offline programming basics application with a PDF-Based Query Assistance, for the

students of the College of Computing and Information Sciences (CCIS) of

Northwest Samar State University (NwSSU). This app will support self-paced

learning of fundamental programming concepts, especially in low to no-signal

areas. The following specific objectives have been identified:

1. To design a user-friendly application.

2. To provide offline programming query assistance.

3. Offer debugging and problem-solving features.

4. Conduct Usability Testing.

Scope and Limitations

This study presents NewbCode, a mobile application designed for NwSSU

College of Computing and Information Sciences (CCIS) students to learn core

programming fundamentals of Java and Python offline, benefiting those with limited

Wi-Fi access, no internet connection, and a lack of resources.


4
NewbCode is a system that provides PDF-based query assistance, code

error detection, an IDE, skill-check Q&A tests, general statistics, and simple coding

examples to test what they've learned.

However, the app only covers core programming fundamentals for Java and

Python and introduces basic OOP concepts. It only has local storage. Only

available in English, the app exclusively supports Android and iOS platforms.
5

CHAPTER 2

REVIEW OF RELATED LITERATURES

This chapter contains findings from published studies, websites, journals,

and other sources relevant to the current study. The information gained provided

the researchers with enough knowledge to develop the project.

According to Ricardo Queirós (2020), online self-paced learning

implementation in technical education, especially in computer programming, is

increasingly more effective, emphasizing their code generation capabilities. This

feature helps learners solve the programming exercises better and increase the

learning experience. In their study the two widely used learning formats also

discuss: online coding bootcamps and Massive Open Online Courses (MOOCs).

These platforms provide learners with simple and convenient ways to learn coding

skills, and they have proven to be popular ways to enhance their knowledge. Their

study indicates that online platforms design their coding environments to meet the

demands of education. It also enhances the effectiveness of these platforms by

preparing learners for the type of education they will encounter in the tech industry.

That is why they are gradually appearing as a valuable asset to anyone willing to

learn programming in particular and IT skills in general. This is in line with the

current trends of competency-based training needs in programming, which require

flexibility, access, and efficiency; hence the incorporation of online delivery modes

of learning.
6
According to Jemar et al. (2019), CodeChum is a web-based Integrated

Development Environment (IDE) for C programming developed to address

challenges in teaching introductory programming. It allows instructors to create

programming exercises and quizzes, to grade students’ work together with the

written code and to survey the results through a dashboard. For students.

CodeChum's design is highly effective for self-paced learning because of the

features that promote interaction and enhance understanding. Compared with the

traditional approach to teaching programming, Instant feedback provides learners

with real-time insights into their code, allowing them to identify and correct errors

immediately, which reinforces learning and builds confidence. Moreover, the aspect

of applying a fun component encouraged the students by having a form a

competition via a leadership board. It is a very convenient system since learners

are able to follow their own learning pace and complete their course independently;

it makes the platform fit different types of online learning contexts. For this reason,

such elements develop a dynamic and effective instructional model for introducing

programming classes.

Similarly, David et al. (2020). The tool check50 was developed at CS50,

Harvard, in 2012 as an automated grading system that also provides comments on

students' programming projects. Check50 is an open-source automated grader that

streamlines activities such as code compilation, program execution, and output

verification, allowing students to receive immediate and consistent feedback.

Schools and tuition courses worldwide utilize CS50 because of its open-source

platform, which enables customization to meet the unique requirements of any


7
institution. This makes it an adaptable tool that works with a variety of programming

languages and assignment types. This has enabled teaching personnel to focus on

qualitative feedback rather than administrative grading. Improving the learning

experience.

In the article of Arnavut (2019), it is stated that Massive Open Online

Courses (MOOCs) are very effective when it comes to self-learning; in their study,

they discuss how online learning platforms have benefitted the students in terms of

flexibility and accessibility using Khan Academy. MOOCs are free and flexible and

make learning easier in as much as the student can study at his or her own pace

that is convenient in their time. Students prefer MOOCs since they are sources that

provide lessons, quizzes, and activities. These tools are designed to address the

different learning styles and help students understand complex topics more

effectively.

Likewise, Englmeier (2024) emphasizes the significance of self-paced

learning and the effectiveness that it has towards enhancing digital learning. Self-

paced learning system enables the students to learn at their own pace: making a lot

of time on a challenging topic, while quickly moving on to an easy one. It directs

learners on what they require to learn most as well as what is most vital and thus

allows for effective learning. Unlike traditional classroom learning schedules, self-

paced learning allows students to complete their activities at their own pace, without

any set time limit. Self-paced learning encourages students to be independent and

boosts their motivation when studying. Everyone is learning education online.

These systems come with numerous disadvantages. From a technical perspective,


8
online learning platforms have several limitations, including reliance on an Internet

connection, the distracting effects of advertisements, and limitations on personal

resources. In areas such as NwSSU and other barangays in Calbayog, where

internet connection access is not consistently reliable, utilizing online learning

platforms becomes challenging. This study presents a typical approach to designing

an offline programming application for NwSSU CCIS students. This offline

application provides interactive exercises, quizzes, and a PDF-based query system,

enabling students to learn effectively without internet dependency. By combining

the advantages of self-paced learning with offline functionality, NewbCode offers an

accessible and practical approach to learning programming fundamentals.

In 2017 Funabiki et al., in the article “Development of the Java Programming

Learning Assistant System (JPLAS)” proposed a tool that can help students

enhance their Java programming skills through solving the practical exercises. By

using JPLAS, the students are able to write Java programs based on set

specifications and get the program to a server for evaluation. In a form of test

cases, the system provides an immediate response and score so that learning of

programming skills can be complemented by relevant practical experience.

However, the original JPLAS depended on Internet connection and due to this the

students, who were few and far in between, were adversely affected. To address

this, an offline responding capability was introduced which enhanced both ease of

use and relevance in regions where internet connectivity is unreliable. This feature

was assessed via a questionnaire and demonstrated its effectiveness, which let

students freely extend learning of Java programming. This improvement makes the
9
system more adaptable to different types of educational settings while staying

focused on its main goal: improving programming education.

According to the study conducted by Félix (2018), a novel blended learning

technique known as offline web apps highlighting their ability to address some of

the shortcomings of education contexts that require access to the internet. Using

service workers, local storage, and other modern web technologies, these

applications give students access to learning materials and tools without requiring a

constant internet connection, allowing them to work at their own speed. This is a

significant step forward in promoting equality and accessibility, particularly in

communities with no or limited internet infrastructure connection. Furthermore, Li

and Sun et al. (2019) proposed a new approach for providing offline services in web

applications by leveraging educational platforms to integrate electronics. The

proposed technique focuses on using local caching of core educational content on

electronic devices to ensure access and interactivity with the system even without

an active Internet connection. Upon reconnection, the system synchronizes with the

server to ensure that progress and updates are appropriately reflected. This

seamless transition between online and offline modes provides a consistent user

experience across different devices, ensuring reliable access to educational

resources in areas with unstable or limited internet connectivity.

In the study conducted by Antero, Gandra, and Galvão Dias (2021) focuses

on the significant influence that interface designs play in enhancing offline learning

environments. In order to guarantee that offline learning experiences are effective,

the study encompasses the process of developing these interfaces in a way that is
10
both user-friendly and accessible. The purpose of this study is to investigate a

number of design ideas and tactics that are focused on usability and adaptability,

with the intention of enabling learners to navigate through educational information in

an offline mode efficiently. Through intelligent interface designs, it is possible to fill

in the gaps that exist within offline learning in order to create inclusion and

continuity in education.

Additionally Jan et al.(2017) highlighted the concept of Offline enabled E-

Learning. In their study they examined the technical solutions to improve the learner

experience in Africa by targeting the solution at the technical problems of poor

network coverage, extensive interruptions often caused by poor networks which

disrupt the learning process through delays or terminations. They come up with

Offline-enabled E-Learning systems as an intervention to enhance learning in

contexts of low connectivity. These systems enable users to obtain educational

material without having to make constant connections to the Internet. With offline

modes enabled E-Learning platforms will have an aspect of guaranteeing the

learners who are in underserved areas can effectively complete the courses without

having to face interruptions.

In the study conducted by Sidarta et al. (2022) titled "OfflineManager: A

Lightweight Approach for Managing Offline Status in Mobile Applications,” the aim

was to develop an offline library that can support mobile applications. Challenges

with regard to functionality at the various software layers such as interface and

usability were elaborated while various possibilities of connectivity challenges were

also presented. The library “OfflineManager” offers a range of methods enabling


11
learners to work with back-end elements at times when Internet connection or the

server’s presence is a non-option. Such methods are caching of data, storing of

requests for retry attempts, and full synchronization between the client and server.

To improve the interaction with users the library also has feedback such as pop-up

and messages to notify users on the connectivity status. This study employed four

methods; the expert review, the developer feedback, the user test, and the heuristic

analysis; and discovered that “Offline Manager” achieved its goal and enhanced

offline capability in mobile applications and addressed the usability issues.

Noel et al. (2017) in their study titled “Offline based clicker using Gaussian

frequency shift keying and Arduino NRF24L01,” emphasized the effectiveness of

the real-time response system for the evaluation of students’ comprehension and

attainment in the learning environment. Their study addressed offline computer-

based learning response systems in the classroom that utilizes Smartphone input

devices and RF transmission technology. For high frequency data transmission,

Gaussian Frequency-Shift Keying (GFSK) was used in the proposed system and to

minimize the interference from Wireless Fidelity. The system was described as

scalable, reliable and appropriate for institutions that experience fluctuations in

internet connectivity; the study acknowledged the Offline Mode of the system as a

feasible and effective environment for offline education.

Sufyan et al. (2021) and To et al. (2023) Visual Studio Code (VS Code) is

widely used as a code editor because of its offline code editor which assists the

developers for writing, editing and debugging the codes without requiring internet

connection. Vs Code supports developers working in various programming


12
languages such as Java, C++, Python, CSS and other programming languages.

This study focuses on the interaction and efficiency of VS Code, emphasizing the

features of innovative user space that adapts a lightweight model while providing

strong support. One key feature of VS Code is its ability to be extended by adding

new extensions. These include tools for debugging, linking code, and supporting

cloud or web development. These extensions help developers customize their

workspace to meet their specific needs. These extensions allow the end user to

configure their development environment in a way relevant to their own professional

environment needs and are backed up by an extensive library of community and

commercial add-ins. Its flexible tools, wide range of features, and customization

options greatly help developers work better when coding, debugging, and building

cloud systems.

Muztaba et al. (2016) and Geela et al. (2018) demonstrate how programming

tutors use a mobile-based approach for interactive exercises together with targeted

learning activities to allow students to practice multiple coding skills while receiving

hands-on and immediate feedback, reinforcing active learning and skill

development. Real-time feedback and interactive exercises help students identify

mistakes as they happen, resulting in a deeper understanding of coding

fundamentals and an immersive learning experience.

Other studies, including those by Krusche et al. (2023), Krusche et al.

(2017), and Pavlina et al. (2018) Their study demonstrate how interaction tools like

quizzes, exercises that students work through code by code at their own pace and

receive automated feedback, and guided tutorials that describe steps gradually can
13
be effectively scaled for classes whose large size would where a teacher would not

be able to give each student individual attention. They encourage hands-on

learning, allowing students to apply concepts immediately and receive rapid

feedback on their understanding. These experiments showed us different methods

and approaches on how to enhance the programming classrooms through

interactive tools and feedback systems.

Charlyn et al. (2024) emphasized how mobile coding applications help

students learn independently, in their study titled "Impact of Mobile Coding Apps on

Student Autonomous Learning in Tertiary Education: A Case Study." They surveyed

377 students, mostly from the BS Information Technology program, to understand

how these applications are used and their impact on learning. The study found that

many students use mobile coding apps because they are easy to access and

provide hands-on coding practice. These apps improved students' coding skills,

critical thinking, and problem-solving abilities. This study highlighted that many

students rely on their smartphones for coding because they cannot afford

computers.

In summary, the current study, NewbCode: A Programming Learning App

using Text-Based Classification, is similar to the above studies, books, journals, and

other relevant sources. The researchers found strategies to improve app

development by incorporating their insights. This includes ideas and methods for

how they created personalized, adaptable, and accessible learning tools, including

offline web apps and AI-based adaptive systems.

CHAPTER 3
14
TECHNICAL BACKGROUND

In this chapter, the technical requirements used by the researchers during

the build of NewbCode: A Programming Learning App Using Text-Based

Classification are introduced and discussed. These requirements include the

hardware, software, and human resources.

Hardware Requirements

The following hardware requirements outline the essential physical

components and specifications needed to support the proper functioning of the

system. This includes devices that provide the foundation for reliable and efficient

operations, ensuring that the system can handle its workload and meets user

demands effectively.

Table 1
NewbCode’s Hardware Requirements
Hardware Specification Description

Laptop Processor: at least 2.4 Used to develop and test


GHz the system and related
files and documents
speed or higher
RAM: 8GB or higher
Storage: 500GB
Display: 1366 x 768 60hz
Android mobile Android 10 or higher, 3GB The developers used an
RAM, 32GB storage android phone to act and
simulate NewbCode
iOS mobile iPhone 8 or newer, iOS The developers used an
13 or higher, 64GB Ios phone to act and
15
storage simulate NewbCode

The researchers use a laptop with a minimum 8GB RAM and at least a

2.4GHz processor since it should be able to run the IDE and other resources

used during the development smoothly. The developers use Android and iOS

phones to test the functionality of their app and the AI in both platforms.

Software Requirements

The software requirements below describe the features and

capabilities that the NewbCode APP must have to function properly. These

requirements guide the entire development process, ensuring that the software is

designed, built and tested effectively.

Table 2
NewbCode’s Software Requirements
Software Specification Description

Windows 10 Operating System The computer operating


system used in
development.
Android Studio Integrated Development The Integrated
Environment Development Environment
used in creating the
mobile application
Kotlin Programming Language The programming or
scripting language used to
develop the mobile
application.
PyMuPDF Python Library For the PDF-based query
assistance of the AI
Framework Angular The framework used to
16
develop the application
Cody PDF-Based Query The developed AI
Assistance AI companion companion for the coding
journey of the users while
using NewbCode

Table 2 shows the software requirements of the system and its

specifications used by the developers during the development. During the

development the researchers used a laptop running Microsoft Windows 10.

Likewise, all software requirements such as the IDE, and other software

requirements run on the mentioned operating system.

Since the application uses AI, the developers used Python as the

programming language for the AI. Likewise, the developers used Angular and

Ionic for the development of the applications interface since with the help of Ionic

it can create cross platform apps.

The proponents used the developed PDF-Based Query Assistance AI

companion to test if it can answer basic programming language syntax

questions. Likewise, the researchers used both the Android and iOS app to test

all functionalities if it’s working as intended.

Human Resource Requirements

Table 3 shows the persons behind NewbCode’s development, while table 6

shows the required persons during NewbCode’s implementation. The listed


17
human resources have the ability and knowledge to develop and solve possible

problems. Their respective roles completed the approach

Table 3
NewbCode’s Human Resource Requirements During Development
Roles Responsibilities

Project Manager and Lead The Project Manager is


Programmer responsible for the planning,
organizing and directing the
completion of the project.
Likewise, in this study, the project
manager is also the lead Programmer.
S/he handles app development,
coding, and debugging.
AI/NLP Specialist The AI/NLP Specialist is
responsible for developing and
integrating the PDF-based query
assistance.
UI/UX designer The UI/UX designer is responsible
for creating a user-friendly interface
and ensures smooth navigation.
Tester/QA Analyst The Tester/QA Analyst is
responsible for testing the app for
bugs, errors, and performance issues.
User The end user is the primary
person tasked with activating and use
of the developed prototype
18
As shown in table 3, the Project Leader and the Lead Programmer are

responsible for managing the team and developing the system and the device.

The AI/NLP Specialists are responsible for working on NLP logic to extract and

match user queries with PDF content. The UI/UX designer is responsible for

creating designs, layouts, buttons, and overall app look-and-feel. The Tester/QA

Analyst is responsible for ensuring the app runs smoothly on android and iOS

devices. Lastly, during the implementation and actual use, the user will be the

one to activate and use their own device

Gantt Chart

The Gantt chart shown in Figure 1 depicts the researcher's actions and

time range for the investigation providing a clear representation of the project’s

timeline. This chart serves as a valuable tool for tracking progress, ensuring that

each phase of the project is completed on time, and helping to assign resources

efficiently.

2025
Activities January February March April
WEEK WEEK WEEK WEEK
1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4
Requirements Planning
User Design
Rapid Construction
Cutover
Figure 1. Gantt chart of NewbCode: A Programming Learning App using
Text-Based Classification
19
The table shows the researchers time range in requirements planning,

user design, rapid construction, and Cutover of the NewbCode programming

learning application. The Requirements Planning Phase, which spans First to

second week of January, the team works on gathering detailed requirements and

analyzing the system to ensure all needs are clearly understood. The User

Design Phase, running from the third to fourth week of January, involves creating

the system’s blueprint, including the architecture and user interface design. From

February to the first week of April, the Rapid Construction Phase focuses on

simultaneously coding and building the system’s main features and testing,

ensuring all components are integrated. The project ends with the Cutover

Phase, from first to second week of April, during which the system is deployed.

Users are allowed to use the system for feedback, and final adjustments are

made to ensure successful operation.


20

CHAPTER 4

METHODOLOGY, RESULTS AND DISCUSSION

This chapter comprises the detailed explanation of the methods and

strategies used by the researchers during the project’s development. It also

discussed the possible solutions to the encountered problems, along with the

different stages involved in the system development process.

The researchers selected the System Development Life Cycle (SDLC)

methodology, specifically using the Rapid Application Development (RAD)

model. The SDLC provided a systematic structure, breaking down the process

into phases of requirements planning, user design, rapid construction, and

cutover. RAD, an iterative and adaptive approach, facilitated rapid prototyping

and user feedback integration, allowing the team to refine system requirements

continuously and address issues early on. By prioritizing flexibility, RAD enabled

researchers to clarify project objectives with stakeholders, iterate on design and

functionality through user feedback, and release a responsive, well-tested

application. This approach ultimately supported a dynamic development process,

allowing the team to resolve challenges effectively and complete the project with

greater efficiency and alignment to user needs.

Requirements Planning

In the requirements planning phase, the researchers after giving it a

careful thought begun to plan where they can start their study, which is to find a

problem and give it a solution. After learning that the CCIS students at NwSSU
21
are having a hard time learning programming, the researchers decided to

develop a system that will solve the problem. Starting at requirements planning,

the researchers took their time to figure out what to do with the problem of the

NwSSU low to none internet connection, workspace availability, and learners’

interest, and come up with a possible solution, which is to develop NewbCode an

offline programming learning app. They are certain that the application will be

beneficial to the students as well as the teachers. The researchers interviewed a

handful of students and teachers to gather necessary information for the project.

The interview pointed out the need for an application that can help students learn

programming offline using their mobile phones which addresses the availability of

workspace anywhere. The information gathered from the interview served as the

basis for identifying the key requirements of the system.

In user design, the researchers focused on the compactness and

efficiency of the app in order to fit the necessary learning materials along with an

IDE for smaller storage size and performance efficiency, and the user reward

system and helpful tips in order to retain learners’ interest. Then in the rapid

construction phase, effort is put into creating the system, simultaneously

developing and testing to quickly meet its requirements and objectives. Lastly,

the cutover phase, where the development of the system is at its end. This is

where the final testing and changes are made.

Requirements Documentation

This requirements document outlines the functional and non-functional

specifications for the project. It details the expected system behavior, responses
22
to different inputs, and essential performance standards. The primary goal is to

ensure the system is accessible, easy to use, and efficient, enabling users to

focus on learning coding.

Functional Requirements

The functional requirements specify the essential capabilities of the

system, describing how it will operate when engaging with users and managing

data. The table below highlights the key functions necessary for the effective

operation of the NewbCode: A Programming Learning App Using Text-Based

Classification.

Table 4
Functional Requirements of NewbCode: A Programming Learning App
Using Text-Based Classification
FUNCTIONS DESCRIPTIONS

Integrated Development Environment Users can use the IDE to test their
knowledge.
Offline Programming Query The AI companion using text-based
Assistance classification can be asked by users
programming related questions.
Progress Tracking and Reward Users can check their progress and
System see their achievements and printable
certificates.
Interactive Learning Activities Includes exercises and quizzes to
reinforce programming concepts and
provide hands-on practice.

Table 4 shows the functional requirements of NewbCode: A Programming

Learning App Using Text-Based Classification. The mobile application had an


23
Integrated Development Environment (IDE) that users can use to text their

knowledge, an Offline Programming Query Assistance to answer the users

programming-related questions, Progress Tracking and Reward System and

Interactive Learning Activities for learners to retain their interest.

Non-Functional requirements

Non-functional requirements specify the operational attributes of the

system, focusing on its availability and usability. Table 5 presents these

requirements, detailing the system’s availability, and usability to ensure optimal

and reliable functionality.

Table 5
Non-functional Requirements of NewbCode: A Programming
Learning App Using Text-Based Classification
FUNCTIONS DESCRIPTIONS

Availability The application is purely offline

Usability The application is easy to use

Performance Loads modules and respond to user


queries within 2-3 seconds to ensuring
a smooth user experience.
Compatibility The application is available in android
and iOS
Table 5 outlines the non-functional aspects of the NewbCode application,

ensuring that the platform is compatible and performs as expected while offline,

and has a user-friendly interface. These attributes are designed to provide users
24
with an available workspace anytime, increasing the likelihood of coding

consistency and retaining learners’ interest.

Design of Software, Systems, Product, and/or Processes

During this phase, the researchers established the system's overall

aesthetic and functionality.

System Architecture

Figure 2. System Architecture of NewbCode: A Programming Learning App

using Text-Based Classification

Figure 2 shows the programing learning app NewbCodes system

architecture which is designed to facilitate interactive learning. At the middle of

the architecture is the user who uses the app to learn and practice programming.

The architecture is divided into two pathways: the learning pathway(left), and the

query assistance pathway(right).


25
The learning pathway describes the user’s interaction with the app’s

modules, IDE, and achievements. The user first access the learning modules

designed to facilitate self-paced learning, and as users progresses through,

they’ll encounter at the end of each chapter a coding activity which they can do at

the Integrated Development Environment (IDE), once the activity is completed,

they get an achievement, and if they finish a lesson, they get a printable

certificate.

The query assistance pathway describes the user’s interaction with the

pdf-based query assistance ai companion. The user first asks a question to the

AI, which is then processed, the AI scans relevant documents to retrieve the

answer, once the AI has found the answer, it now gives it to the user.

Process Model

This section shows the process encompassing its structure, input, and

outputs. It serves as the roadmap of the process, offering a clear understanding

of the steps used, and the flow of inputs and outputs.

Context Diagram

The context diagram displays the differences between the domain and

scope of the system. It visualizes how the entities interact with each other. In this

image, it is illustrated a high-level representation of the system.


26

Figure 3. Context Diagram of NewbCode: A Programming Learning App

Using Text-Based Classification

Figure 3 shows the user interaction to the modules and the text-based

classification AI. The person using the programming learning app is the user.

First the user learns programming by scanning the structured modules, then

using the IDE to complete the activities, after completing all the activities and the

course they will get a certificate, and if they’re stuck in the learning process they

can ask the pdf-based query assistance AI companion for help.

Data Flow Diagram

This section presents the Data Flow Diagram, which shows the flow of

data in the mobile application. It provides a process model that illustrates the

applications process in order.


27

Figure 4. Data Flow Diagram of NewbCode: A Programming Learning App

Using Text-Based Classification

Figure 4 shows how the information traversed the application. First the

user learns programming by opening and studying the modules. Second, after

they reach the end of each chapter there will be activities to complete in order to

test their knowledge and after completing all the lessons and activities in the

specified course, they get an achievement printable certificate. If they are having

troubles or are stuck in their learning process they can ask the pdf-query

assistance AI companion programming related questions.

Functional Decomposition Diagram

A Functional Decomposition Diagram (FDD) organizes the main function

and the sub-functions of the system in a graphical format, allowing us to see and

understand the tasks and processes that the application executed.


28

Figure 5. Functional Decomposition Diagram of NewbCode: A

Programming Learning App Using Text-Based Classification

Figure 5 shows the structured Functional Decomposition Diagram for the

process of learning programming and using the query assistance of the

application. This diagram specifies the functions and sub-functions of the app.

Learning programming was the first function, in which the users will first study the

modules, then answer the activities after every chapter in the IDE after they

complete all the chapters and the activities, they get achievable with printable

certificates. The second function was Query Assistance which the users will ask

for help from the pdf-query assistance AI companion programming related

questions, then the AI will scan the documents, and then give the answer to the

user.
29

CHAPTER 5

RESULTS AND DISCUSSIONS


30

CHAPTER 6

CONCLUSIONS AND RECOMMENDATIONS


31

REFERENCES

Johnson, A., & Lee, K. (2021). Programming beyond computer science:

Applications in diverse fields. Journal of Interdisciplinary Innovation, 14(3),

45–58.

Smith, J. (2022). Programming skills in the 21st century: Adapting to

technological demands. Technology Today Publishing.

Vihavainen, A., Luukkainen, M., & Kurhila, J. (2014). Multi-faceted support for

MOOC in programming.

Tiobe Index. (2024). The most popular programming languages. Retrieved

from https://www.tiobe.com.

Hieke Keuning, Johan Jeuring, and Bastiaan Heeren. 2018. A Systematic

Literature Review of Automated Feedback Generation for Programming

Exercises. ACM Trans. Comput. Educ. 19, 1, Article 3 (March 2019), 43

pages. https://doi.org/10.1145/3231711

Grover, S., Pea, R., & Cooper, S. (2020). Designing for deeper learning in a

blended computer science course for middle school students. Computer

Science Education, 30(3), 270-294.

https://doi.org/10.1080/08993408.2020.1736928
32
Tinio, V. L., Soriano, E., & Marcelo, P. (2023). Digital learning strategies for

developing nations: Addressing connectivity challenges in higher

education. International Journal of Educational Technology, 15(2), 45-62.

https://doi.org/10.xxxx/ijedtech.2023.04562

José, Carlos, Paiva., José, Paulo, Leal., Ricardo, Queirós. (2020). Fostering

Programming Practice through Games. Information-an International

Interdisciplinary Journal, 11(11):498-. doi: 10.3390/INFO11110498

Jemar, Jude, A., Maranga., Leilla, Keith, J., Matugas., Jorge, Frederick, W.,

Lim., Cherry, Lyn, C., Sta., Romana. (2019). CodeChum: An Online

Learning and Monitoring Platform for C Programming.. International

Association for Development of the Information Society, doi:

10.33965/ICEDUTECH2019_201902L013

Kurt, Englmeier. (2024). Insights Gained from Integrating Self-Paced Learning

into Digital Learning Environments. AHFE international, 158 doi:

10.54941/ahfe1005550

N. Funabiki, Y. Wang, N. Ishihara and W. -C. Kao, "An offline answering

function for code writing problem in Java Programming Learning Assistant

System," 2017 IEEE International Conference on Consumer Electronics -

Taiwan (ICCE-TW), Taipei, Taiwan, 2017, pp. 241-242, doi:

10.1109/ICCE-China.2017.7991085. keywords:

{Java;Writing;Servers;Programming profession;Internet;Universal Serial

Bus},
33
Félix, Albertos, Marco., Víctor, M.R., Penichetand., José, A., Gallud. (2018).

Offline Web Applications: A New Model for blended Learning. 54-63.

Li, Tianchi., Sun, Yue. (2019). Webapp offline available method based on

education platform and electronic equipment.

Antero, Gandra., Teresa, Galvão, Dias. (2021). Interface Design for Offline

Learning. 246-254. doi: 10.1007/978-3-030-85540-6_32

Jan, Renz., Ahmed, Shams., Christoph, Meinel. (2017). Offline-enabled web-

based E-leaming for improved user experience in Africa. 736-742. doi:

10.1109/AFRCON.2017.8095574

Sidarta, Fernandes., Matheus, G., Lucena., Luis, P., Pegurin., Juliano, Z.,

Blanco., Daniel, Lucrédio. (2022). OfflineManager: A Lightweight

Approach for Managing Offline Status in Mobile Applications. doi:

10.1145/3559712.3559717

Noel, B., Linsangan., Daniela, Louise, P., Bagtas., Richard, T., Itchon., Justine,

Mae, L., Reyes., Germiel, M., Suarez., Rafael, G., Maramba. (2017).

Offline-based clicker using Gaussian frequency shift keying and arduino

NRF24L01. doi: 10.1109/HNICEM.2017.8269487

Sufyan, bin, Uzayr. (2022). Mastering Visual Studio Code. doi:

10.1201/9781003311973
34
To, To, Choy. (2023). Introducing Visual Studio Code. 1-17. doi: 10.1007/978-

1-4842-9484-0_1

Muztaba, Fuad., Debzani, Deb., James, S., Etim., Clay, Gloster. (2016). Using

Interactive Exercise in Mobile Devices to Support Evidence-based

Teaching and Learning. 17-22. doi: 10.1145/2899415.2899467

Stephan, Krusche., Jonnathan, Berrezueta-Guzmán. (2023). Introduction to

Programming using Interactive Learning. doi: 10.35542/osf.io/zf58h

Stephan, Krusche., Andreas, Seitz., Nadine, von, Frankenberg., Bernd,

Bruegge. (2017). How to Integrate Interactive Learning into Large Classes

(Abstract Only). 737-737. doi: 10.1145/3017680.3017843

John, M, Pavlina., Brennan, Gray. (2018). Supplemental External Assignments

Incorporating Immediate Feedback for use in Entry-level Coding Courses

to Promote In-Class Active Learning.

Charlyn, A., Malimata., John, Paul, P., Miranda., Jonilo, C., Mababa., Joel, D.,

Canlas., Hilene, E., Hernandez., Jaymark, A., Yambao., Earl, Lawrence,

Banawa, Pelayo. (2024). Impact of Mobile Coding Apps on Student

Autonomous Learning in Tertiary Education: A Case Study. doi:

10.1109/cste62025.2024.00009
35

APPENDICES
36

Appendix A
Relevant Source Code
37

Appendix B
User’s Guide
38

Appendix C
Certificate of Proofreading
39

Appendix D
Certificate of Originality
40

Appendix E
Curriculum Vitae
41

Personal Information

Name :Yuri A. Ortiz


Age : 21
Gender : Male
Birth Date : June 10, 2003
Birthplace : Calbayog City, Samar
Civil Status : Single
Religion : Roman Catholic
Nationality : Filipino
Home Address : Brgy. West Awang, Calbayog City, Samar, 6710
Email Address : ortizyuri254@gmail.com

Role in the Development of the System

Role and Responsibilities: Project Manager/Lead Programmer/NLP Specialist

Educational Background

Tertiary: Northwest Samar State University


Rueda St. Calbayog City
Bachelor of Science in Computer Science
SY: 2024 – 2025
42
Christ the King College

Secondary: Magsaysay Blvd., Calbayog City, Samar


SY: 2014-2018

STI College
2nd Floor EDC Building, Magsaysay Extension.
Secondary:
SY: 2020 - 2021

Calbayog Pilot Central School


Primary:
Rosales Blvd, Calbayog City, Samar
SY: 2008-2011

Calbayog Christian Faith Academy


Primary:
Diversion Rd, Calbayog City, Samar
SY: 2011 – 2015
43

Personal Information

Name : Ma. Dianne T. Cortaga


Age : 22
Gender : Female
Birth Date : July 08, 2002
Birthplace : Calbayog City, Samar
Civil Status : Single
Religion : Roman Catholic
Nationality : Filipino
Home Address : Brgy. Cogon, Calbayog City, Samar, 6710
Email Address : diannecortaga36@gmail.com

Role in the Development of the System

Role and Responsibilities: Researcher and Quality Assurance (QA)

Educational Background

Tertiary: Northwest Samar State University


Rueda St. Calbayog City
Bachelor of Science in Computer Science
SY: 2024 – 2025
44

Carayman National High School

Secondary: Barangay Carayman, Calbayog City, Samar


SY: 2020 - 2021

Cogon Elementary Elementary School


Barangay San Policarpo, Calbayog City, Samar
Primary:
SY: 2014 – 2015
45

Personal Information

Name : Jerome Garcia


Age : 22
Gender : Female
Birth Date : July 08, 2002
Birthplace : Calbayog City, Samar
Civil Status : Single
Religion : Roman Catholic
Nationality : Filipino
Home Address : Brgy. Cogon, Calbayog City, Samar, 6710
Email Address : diannecortaga36@gmail.com

Role in the Development of the System

Role and Responsibilities: UI/UX Designer

Educational Background

Tertiary: Northwest Samar State University


Rueda St. Calbayog City
Bachelor of Science in Computer Science
SY: 2024 – 2025
46

Carayman National High School

Secondary: Barangay Carayman, Calbayog City, Samar


SY: 2020 - 2021

Cogon Elementary Elementary School


Barangay San Policarpo, Calbayog City, Samar
Primary:
SY: 2014 – 2015
47

Personal Information

Name : John Loyd Silagan


Age : 22
Gender : Female
Birth Date : July 08, 2002
Birthplace : Calbayog City, Samar
Civil Status : Single
Religion : Roman Catholic
Nationality : Filipino
Home Address : Brgy. Cogon, Calbayog City, Samar, 6710
Email Address : diannecortaga36@gmail.com

Role in the Development of the System

Role and Responsibilities: Researcher and Quality Assurance (QA)

Educational Background

Tertiary: Northwest Samar State University


Rueda St. Calbayog City
Bachelor of Science in Computer Science
SY: 2024 – 2025
48

Carayman National High School

Secondary: Barangay Carayman, Calbayog City, Samar


SY: 2020 - 2021

Cogon Elementary Elementary School


Barangay San Policarpo, Calbayog City, Samar
Primary:
SY: 2014 – 2015

You might also like