Newbcode_ a Programming Learning App Using Text-based Classification
Newbcode_ a Programming Learning App Using Text-based Classification
CHAPTER 1
INTRODUCTION
Project Context
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
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
Python and Java are among the most in demand programming languages today
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.
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
programming skills particularly python and java. It solves the problem of having
limited internet access because the internet connection in the NwSSU area and
the app, there are lessons, coding problems and YouTube tutorials video
and homework in class; its offline capabilities and highly specialized lessons are
offline programming basics application with a PDF-Based Query Assistance, for the
Northwest Samar State University (NwSSU). This app will support self-paced
programming fundamentals of Java and Python offline, benefiting those with limited
error detection, an IDE, skill-check Q&A tests, general statistics, and simple coding
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
and other sources relevant to the current study. The information gained provided
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
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
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
programming exercises and quizzes, to grade students’ work together with the
written code and to survey the results through a dashboard. For students.
features that promote interaction and enhance understanding. Compared with the
with real-time insights into their code, allowing them to identify and correct errors
immediately, which reinforces learning and builds confidence. Moreover, the aspect
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,
Schools and tuition courses worldwide utilize CS50 because of its open-source
languages and assignment types. This has enabled teaching personnel to focus on
experience.
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.
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
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
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
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
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
and Sun et al. (2019) proposed a new approach for providing offline services in web
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
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
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,
in the gaps that exist within offline learning in order to create inclusion and
continuity in education.
Learning. In their study they examined the technical solutions to improve the learner
disrupt the learning process through delays or terminations. They come up with
material without having to make constant connections to the Internet. With offline
learners who are in underserved areas can effectively complete the courses without
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
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
Noel et al. (2017) in their study titled “Offline based clicker using Gaussian
the real-time response system for the evaluation of students’ comprehension and
based learning response systems in the classroom that utilizes Smartphone input
Gaussian Frequency-Shift Keying (GFSK) was used in the proposed system and to
minimize the interference from Wireless Fidelity. The system was described as
internet connectivity; the study acknowledged the Offline Mode of the system as a
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
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
workspace to meet their specific needs. These extensions allow the end user to
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
(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
students learn independently, in their study titled "Impact of Mobile Coding Apps on
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.
using Text-Based Classification, is similar to the above studies, books, journals, and
development by incorporating their insights. This includes ideas and methods for
how they created personalized, adaptable, and accessible learning tools, including
CHAPTER 3
14
TECHNICAL BACKGROUND
Hardware Requirements
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
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
capabilities that the NewbCode APP must have to function properly. These
requirements guide the entire development process, ensuring that the software is
Table 2
NewbCode’s Software Requirements
Software Specification Description
Likewise, all software requirements such as the IDE, and other software
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
questions. Likewise, the researchers used both the Android and iOS app to test
Table 3
NewbCode’s Human Resource Requirements During Development
Roles Responsibilities
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
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,
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
CHAPTER 4
discussed the possible solutions to the encountered problems, along with the
model. The SDLC provided a systematic structure, breaking down the process
and user feedback integration, allowing the team to refine system requirements
continuously and address issues early on. By prioritizing flexibility, RAD enabled
allowing the team to resolve challenges effectively and complete the project with
Requirements Planning
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
offline programming learning app. They are certain that the application will be
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
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
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
Requirements Documentation
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
Functional Requirements
system, describing how it will operate when engaging with users and managing
data. The table below highlights the key functions necessary for the effective
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.
Non-Functional requirements
Table 5
Non-functional Requirements of NewbCode: A Programming
Learning App Using Text-Based Classification
FUNCTIONS DESCRIPTIONS
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
System Architecture
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
modules, IDE, and achievements. The user first access the learning modules
they’ll encounter at the end of each chapter a coding activity which they can do at
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
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
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
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
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
and the sub-functions of the system in a graphical format, allowing us to see and
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
questions, then the AI will scan the documents, and then give the answer to the
user.
29
CHAPTER 5
CHAPTER 6
REFERENCES
45–58.
Vihavainen, A., Luukkainen, M., & Kurhila, J. (2014). Multi-faceted support for
MOOC in programming.
from https://www.tiobe.com.
pages. https://doi.org/10.1145/3231711
Grover, S., Pea, R., & Cooper, S. (2020). Designing for deeper learning in a
https://doi.org/10.1080/08993408.2020.1736928
32
Tinio, V. L., Soriano, E., & Marcelo, P. (2023). Digital learning strategies for
https://doi.org/10.xxxx/ijedtech.2023.04562
José, Carlos, Paiva., José, Paulo, Leal., Ricardo, Queirós. (2020). Fostering
Jemar, Jude, A., Maranga., Leilla, Keith, J., Matugas., Jorge, Frederick, W.,
10.33965/ICEDUTECH2019_201902L013
10.54941/ahfe1005550
10.1109/ICCE-China.2017.7991085. keywords:
Bus},
33
Félix, Albertos, Marco., Víctor, M.R., Penichetand., José, A., Gallud. (2018).
Li, Tianchi., Sun, Yue. (2019). Webapp offline available method based on
Antero, Gandra., Teresa, Galvão, Dias. (2021). Interface Design for Offline
10.1109/AFRCON.2017.8095574
Sidarta, Fernandes., Matheus, G., Lucena., Luis, P., Pegurin., Juliano, Z.,
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).
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
Charlyn, A., Malimata., John, Paul, P., Miranda., Jonilo, C., Mababa., Joel, D.,
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
Educational Background
STI College
2nd Floor EDC Building, Magsaysay Extension.
Secondary:
SY: 2020 - 2021
Personal Information
Educational Background
Personal Information
Educational Background
Personal Information
Educational Background