Académique Documents
Professionnel Documents
Culture Documents
Gerald E. Martinez
Norman E. Certifico
Marifier Munoz
Jericho Castro
Group 6
12-zOS
JOAN F. ASTORGA
CHAPTER I
The Problem and Its Setting
General Problem
Specific Problem
Specific Objectives
To determine the ways on how the ICT students learned in java programming
To evaluate the effectiveness of the methods and strategies best suit in
learning the java
To identify the factors that affect the ICT students’ learning progress
To clarify and distinguish the significant difference between the perceptions of
the ICT students and the methods of teaching in learning the java
This study aims to determine the learning status of ICT students in java
programming also to recognize their logical and java skills together with the
recent application of java in making simple program
To the students. It can be used as their guide in learning the java on how a
simple program makes and works, their improvements and potential as
programmers
To the teachers. This study could be the basis in determining on how the
students learned the java and how they understand in making a simple program,
together with the problems and solutions to the problems in learning the java
Although the research has reached its aims, there were some unavoidable
limitations. First, because of lack of facility, this research conducted only in
available computer units in school computer laboratory and in computer shops
that can be found in the community. Therefore, to enhance the investigation, this
should have effective computer units to pursue and help the researchers in
conducting the study, enough knowledge about java program and worked thesis
related to this study. Second, the ICT students’ knowledge about java in making
simple program and their learning progress might affect the result in conducting
this research because they have different aspects and learning skills in making
java program.
TOPICAL OUTLINE
1. Introduction
2. Definition of Java
3.1 Discovery
4. Purpose of Java
Introduction
History of Java
In the early 1990’s, grunge rock was in its prime and childrens’ cartoons
were reaching their prime as well. In coincidence with these events is the
development of a programming language called Java. James Gosling at Sun
Microsystems had the idea of creating a more readable, universal language than
C++, so he set out to create Java. At first, the target audience for Java was
consumer electronics, but quickly spread to having the title of being the Universal
Programming Language, which would eventually lose momentum. (Vincent,
2014)
Discovery
Java is heavily influenced by C++, and has grown exponentially over the
years. Countless updates have given Java more flexibility and power. To the
present, 2014, Java SE 8 has been released. Previous updates have expanded
the class library from a few hundred classes to over 3,000 and added many
extensions such as for-each loops and lambda expressions. Java has expanded
into one of the most powerful programming languages to ever exist and is still
being developed in order to expand its capabilities and further its power.
(Vincent, 2014)
Java wasn’t very popular when it was released in 1991, but has gained
considerable momentum through the years. The simplicity, extensibility and the
minor difficulty of learning Java has gained it the status of being one of the first
program languages programmers learn in their journey. In addition, the power of
Java has gained it the status of being one of the most widely used programming
languages of today. (Vincent, 2014)
It’s Proponent
Since 1984, Gosling has been with Sun Microsystems, and is generally
known best as the founder of the Java programming language.
As Computer Language
Java is also well known technology which allows software designed and
written only once for a "virtual machine" to run on different computers, supports
various Operating System like Windows PCs, Macintoshes, and Unix computers.
On the web aspect, Java is popular on web servers, used by many of the largest
interactive websites. Java is used to create standalone applications which may
run on a single computer or in distributed network. It is also be used to create a
small application program based on applet, which is further used for Web page.
Applets make easy and possible to interact with the Web page. (Purushotham,
2016)
Every enterprise uses Java in one way or other. As per Oracle, more than
3 billion devices run applications designed on the development platform. Java is
used to design the following applications:
According to article written by Mohan (2016), these are the nine (9)
advantages and seven (7) disadvantages of using Java Codes:-
Graphical User Interface Toolkits: The Swing and Java 2D toolkits provide
us the feature of Graphical User Interfaces (GUIs).
Encapsulation
Polymorphism
1) Static Polymorphism
In Java method overloading we define two or more methods with the same
name but different parameters. The methods are said to be overloaded, and the
process is referred to as method overloading.
2) Dynamic Polymorphism
It's run time polymorphism. We can also call it Method Overriding. In a class
hierarchy, when a method in a sub class has the same name and type signature
as a method in its superclass, then the method in the subclass is said to override
the method in the superclass. This feature is called method overriding. (Sharma
S. 2013)
Abstraction
When we hide the unnecessary detail and defining the useful (relevant)
detail, then the procedure is said to be abstraction. An interface or abstract class
is something that is not concrete, something that is incomplete. Another way of
providing a simple explanation is to use a more complex system as an example.
One does not want to understand how an engine works. Similarly one does not
need to understand the internal implementation of the software objects.
Abstraction in Java is done by using an interface and abstract class in Java. In
order to use an interface or abstract class we need to explain the methods of an
interface or abstract class in a sub-class. (Sharma S., 2013)
For example,
private ClassName obj1 = null;
As for bindings in Java, static and dynamic bindings are both possible. If
a variable needs to be static, the user must explicitly declare the variable as
static. For example:
static int i = 0;
All other variables are stack-dynamic variables, unless they are objects, in which
case they are explicit heap-dynamic variables.
package packageName;
import ClassNameToImport;
accessSpecifier ClassName([argumentList]) {
constructorStatement(s)
methodStatement(s)
// This is a comment
/* This is a
multiline
comment */
// This is a comment
/* This is a comment too */
/* This is a
multiline
comment */
With the Java language, you can choose the names for your classes, such as
Account, Person, or LizardMan. At times, you might end up using the same name
to express two slightly different concepts. This situation, called a name collision,
happens frequently. The Java language uses packages to resolve these
conflicts.
package orgType.orgName.appName.compName;
This package definition breaks down as:
import ClassNameToImport;
Importing an entire package can make your code less readable, however,
so I recommend that you import only the classes that you need, using their fully
qualified names.
To define an object in the Java language, you must declare a class. Think
of a class as a template for an object, like a cookie cutter.
accessSpecifier ClassName([argumentList]) {
constructorStatement(s)
methodStatement(s)
A class's accessSpecifier can have several values, but usually it's public.
You'll look at other values of accessSpecifier soon.
May name classes pretty much however, but the convention is to use
camel case: Start with an uppercase letter, put the first letter of each
concatenated word in uppercase, and make all the other letters lowercase. Class
names should contain only letters and numbers. Sticking to these guidelines
ensures that your code is more accessible to other developers who are following
the same conventions.
Classes can have two types of members—variables and methods.
An accessSpecifier
A dataType
A variableName
Optionally, an initialValue
Public: Any object in any package can see the variable. (Don't ever use this
value; see the Public variables sidebar.)
package com.makotojava.intro;
accessSpecifier
returnType
methodName
argumentList
accessSpecifier ClassName([argumentList]) {
constructorStatement(s)
For any constructor other than the default constructor (see the
Constructors are optional sidebar), you pass an argumentList, which is one
or more of:
argumentType argumentName
See what happens when you add the capability to create a Person
object in two ways: by using a no-arg constructor and by initializing a
partial list of attributes.
package com.makotojava.intro;
public Person() {
// Nothing to do...
public Person(String name, int age, int height, int weight String eyeColor, String
gender) {
this.name = name;
this.age = age;
this.height = height;
this.weight = weight;
this.eyeColor = eyeColor;
this.gender = gender;
}
}
The “this” keyword is Java shorthand for "this object," and you must use it
when you reference two variables with the same name. In this case, age is both
a constructor parameter and a class variable, so the this keyword helps the
compiler to tell which is which.
Static methods are used largely for utility; you can think of them as being
global methods (à la C) while keeping the code for the method with the class that
defines it.
For example, throughout this tutorial, you'll use the JDK Logger class to
output information to the console. To create a Logger class instance, you don't
instantiate a Logger class; instead, you invoke a static method named
getLogger().
The syntax for invoking a static method on a class is different from the
syntax used to invoke a method on an object. You also use the name of the class
that contains the static method, as shown in this invocation:
Logger l = Logger.getLogger("NewLogger");
In this example, Logger is the name of the class, and getLogger(...) is the
name of the method. So to invoke a static method, you don't need an object
instance, just the name of the class.
Table shows the eight primitive data types that likely to see on a regular basis,
including the default values that primitives take on if doesn’t explicitly initialize a
member variable's value.
Default
Type Size value Range of values
bits
16
short bits 0 -32768 to 32767
32
int bits 0 -2147483648 to 2147483647
64 -9223372036854775808 to
long bits 0 9223372036854775807
32
float bits 0.0 1.17549435e-38 to 3.4028235e+38
64
double bits 0.0 4.9e-324 to 1.7976931348623157e+308
When calling the getLogger() method, you pass it a String. For now, just
get in the habit of passing the name of the class that the code is located in. From
any regular (that is, nonstatic) method, the preceding code always references the
name of the class and passes that to the Logger.
In making a Logger call inside of a static method, reference the name of
the class inside of:
Logger l = Logger.getLogger(Person.class.getName());
A literal dot
objectReference.someMethod();
Here's an example:
p.setName("Jane Q Author");
42, // Age
173, // Height in cm
82, // Weight in kg
"MALE");// Gender
Logger l = Logger.getLogger(Person.class.getName());
In the Java language, strings are first-class objects of type String, with
methods that help you manipulate them.
Because Strings are first-class objects, may can use new to instantiate
them. Setting a variable of type String to a string literal has the same result,
because the Java language creates a String object to hold the literal, and then
assigns that object to the instance variable.
Using with String, many things can do and the class has many helpful
methods. Without even using a method, the code already done something
interesting within the Person class's testPerson() method by concatenating, or
combining, two Strings:
The plus (+) sign is shorthand for concatenating Strings in the Java
language.
+ a + b Adds a and b
Operator Usage Description
- a - b Subtracts b from a
- -a Arithmetically negates a
* a * b Multiplies a and b
/ a / b Divides a by b
+= a += b Shorthand for a = a + b
-= a -= b Shorthand for a = a - b
*= a *= b Shorthand for a = a * b
%= a %= b Shorthand for a = a % b
Several other symbols that are called operators in the Java language,
including:
The Java language syntax also includes several operators that are used
specifically for conditional programming — that is, programs that respond
differently based on different input. Look at those in the next section.
The Java language gives operators and control statements that can use to
make decisions in the code. Most often, a decision in code starts with a Boolean
expression— that is, one that evaluates to either true or false. Such expressions
use relational operators, which compare one operand to another, and conditional
operators.
== a == b a is equal to b
!= a != b a is not equal to b
&& a && b a and b are both true, conditionally evaluates b (if a is false, b is not evaluated)
! !a a is false
The following codes shows what happens when adding some logic to the
Person object's getHeight() accessor:
if (Locale.getDefault().equals(Locale.US))
return ret;
If the current locale is in the United States (where the metric system isn't
in use), it might make sense to convert the internal value of height (in
centimeters) to inches. This (somewhat contrived) example illustrates the use of
the if statement, which evaluates a Boolean expression inside parentheses. If
that expression evaluates to true, the program executes the next statement.
In this case, only need to execute one statement if the Locale of the
computer the code is running on is Locale.US. If need to execute more than one
statement, may can use curly braces to form a compound statement. A
compound statement groups many statements into one — and compound
statements can also contain other compound statements.
if (true) {
int ret;
if (gender.equals("MALE"))
ret = height + 2;
else {
ret = height;
return ret;
The else statement works the same way as if, in that the program
executes only the next statement that it encounters. In this case, two statements
are grouped into a compound statement (notice the curly braces), which the
program then executes.
if (conditional) {
// Block 1
} else if (conditional2) {
// Block 2
} else if (conditional3) {
// Block 3
} else {
// Block 4
} // End
If conditional evaluates to true, Block 1 is executed and the program
jumps to the next statement after the final curly brace (which is indicated by //
End). If conditional does not evaluate to true, then conditional2 is evaluated. If
conditional2 is true, then Block 2 is executed, and the program jumps to the next
statement after the final curly brace. If conditional2 is not true, then the program
moves on to conditional3, and so on. Only if all three conditionals fail is Block 4
executed.
for loops
while loops
do...while loops
The basic loop construct in the Java language is the for statement. May
can use a for statement to iterate over a range of values to determine how many
times to execute a loop. The abstract syntax for a for loop is:
For loop
Logger l = Logger.getLogger(Person.class.getName());
l.info("Age:" + p.getAge());
l.info("Gender:" + p.getGender());
}
}
Shown in the next section that an alternative for loop syntax is available
for looping over constructs that implement the Iterable interface (such as arrays
and other Java utility classes).
while (condition) {
statementsToExecute
Logger l = Logger.getLogger(Person.class.getName());
int aa = 0;
l.info("Age:" + p.getAge());
l.info("Gender:" + p.getGender());
aa++;
A loop that always executes once and then checks its conditional
expression, may use a do...while loop
int aa = 0;
do {
l.info("Gender:" + p.getGender());
aa++;
The conditional expression (aa < 3) is not checked until the end of the loop.
Logger l = Logger.getLogger(Person.class.getName());
int aa = 0;
if (aa == 1)
break;
l.info("Age:" + p.getAge());
l.info("Gender:" + p.getGender());
aa++;
The break statement takes the program to the next executable statement
outside of the loop in which it's located.
To execute the loop only once and then bail. May also skip a single
iteration of a loop but continue executing the loop. For that purpose, the program
need the continue statement:
Logger l = Logger.getLogger(Person.class.getName());
int aa = 0;
aa++;
if (aa == 2)
continue;
l.info("Age:" + p.getAge());
l.info("Gender:" +
p.getGender());
Skip the second iteration of a loop but continue to the third. Continue
comes in handy when the program are, say, processing records and come
across a record in a program don't want to process. Skip that record and move
on to the next one.
Create the array with a certain size, which is fixed for the life of the array.
Create the array with a certain set of initial values. The size of this set
determines the size of the array — it's exactly large enough to hold all of
those values, and its size is fixed for the life of the array.
or
int[] integers = { 1, 2, 3, 4, 5 };
The initial values go between the curly braces and are separated by
commas.
integers[aa] = aa+1;
The preceding code declares an integer array of five elements. If you try to
put more than five elements in the array, the Java runtime will throw an
exception.
To load the array, a loop through the integers from 1 through the length of
the array (which can get by calling .length on the array — more about that in a
minute). In this case, the program stop when hits 5.
This syntax also works, and (because it's simpler to work with) using it
throughout this section:
Logger l = Logger.getLogger("Test");
To access an element, need the reference to the array (its name) and the
index that contains the element that needed.
Every array has a length attribute, which has public visibility, that you can
use to find out how many elements can fit in the array. To access this attribute,
use the array reference, a dot (.), and the word length, like this:
Arrays in the Java language are zero-based. That is, for any array, the first
element in the array is always at arrayName[0], and the last is at
arrayName[arrayName.length - 1].
Integer.valueOf(1),
Integer.valueOf(2),
Integer.valueOf(3),
Integer.valueOf(4),
Integer.valueOf(5)
};
Every primitive type in the Java language has a JDK counterpart class
boolean java.lang.Boolean
byte java.lang.Byte
char java.lang.Character
short java.lang.Short
int java.lang.Integer
long java.lang.Long
float java.lang.Float
double java.lang.Double
Each JDK class provides methods to parse and convert from its internal
representation to a corresponding primitive type. For example, this code converts
the decimal value 238 to an Integer:
Strictly speaking, no need to box and unbox primitives explicitly. Instead, use the
Java language's autoboxing and auto-unboxing features:
//
intValue = boxedValue;
The second way uses the "diamond" operator (introduced in JDK 7):
Notice that the type of the object in the ArrayList instantiation isn't
specified. This is the case because the type of the class on the right side of the
expression must match that of the left side.
Note that it assigned the ArrayList object to a variable of type List. With
Java programming, may assign a variable of one type to another, provided the
variable being assigned to is a superclass or interface implemented by the
variable being assigned from.
The second way uses the "diamond" operator (introduced in JDK 7):
The <Object> in the preceding code snippet is called the formal type.
<Object> tells the compiler that this List contains a collection of type Object,
which means that any can pretty much put whatever the likes in the List.
import java.util.Scanner;
unknown.append("*");
int j = 0;
while(j < 6)
if(unknown.toString().indexOf("*") == -1)
break;
String in = input.next();
if(word.indexOf(guess) == -1)
j++;
else
{
if(unknown.indexOf(guess) >= 0)
else
if(word.substring(k, k + 1).equalsIgnoreCase(guess))
unknown.replace(k, k + 1, guess);
if( j == 6)
System.out.println("You Lost!");
reply = input.next().charAt(0);
The researchers consider that the study methods followed by many students are
not suitable for programming learning. The researchers also identify several
aspects where improvement could happen:
According to the article written by Leijen et. Al (2016) A high dropout rate
among ICT students is a big problem in many countries. Motivation is one of the
characteristics which influence how students approach their learning and is
important in academic achievement. Motivation could be influenced by prior
experience, such as learning ICT at the general education level and working in
the ICT field. Some differences were found in the motivation of students who had
and those who did not have experience in programming.
In the European Union, the forecast in 2013 suggests that the unmet
demand for ICT practitioners could rise to 372,000–864,000 by 2015 and to
481,000–1,685,000 by 2020 (according to different scenarios). Unfortunately, the
number of computer science graduates in the European Union has been
decreasing since 2006. In Estonia, the forecast suggests that by the year 2020,
the number of higher education graduates needed in the ICT sector and other
sectors of the economy will be between 6,661 and 8,456. If the number of ICT
student positions in higher education does not change compared with the years
2010–2012, the number of ICT graduates will be around 8,400 by the year 2020,
which will probably meet the demand. However, it is only the case if all students
who start studies will finish them as well. Unfortunately, many students will drop
out already in the first year of their studies. So the problem is not a low number of
ICT students but a high dropout rate. Many of the students who drop out will still
enter the labor market and, therefore, more and more ICT workers will not have a
degree in ICT. However, the number of student candidates in ICT is about 2.6
times higher than the number of student positions. It means that the researchers
have to understand which characteristics of the candidates should be taken into
account, in order to avoid dropout. Previous experience with ICT either in studies
or at work might be an important factor to consider.
In the Philippines
Since its installation, LIS has allowed DepEd to generate total public
school enrollment based on the actual registration of learners.
To fully realize this, Andaya said that teachers should understand that ICT
is both a platform and tool for delivering instructions.
"ICT integration in digital literacy focuses on learning about ICT itself, how
the technology works, and how it is used in addressing the need for inclusive
education," she added. (Santisteban B. 2017)
Global Solutions
IBE sets the standards and guidelines for what must be regarded as
quality curricula. If countries must benefit from the true development value of the
curriculum, we must look beyond traditional conceptions, where the curriculum is
viewed simply as a collection of syllabi, study plans, and textbooks. Instead,
stakeholders must come to realise the more encompassing role of curriculum in
supporting development through education. IBE is a global intellectual leader in
this regard, as we continuously promote and support policy and technical
dialogue on a renewed understanding of curriculum. (International Bureau of
Education 2016)
In the past, infoDev worked with ICT and education. While our programs
do support some entrepreneurs and start-ups that develop educational
technologies (like Afroes and ListenMi), ICT and education are no longer the
focus of our mission.
Learning materials in electronic format are most useful when they are
directly linked to the curriculum The absence of educational content directly
linked to curricula is one of the key inhibiters of ICT use by teachers and
learners.
ICT use often promotes English language use ICT-enabled teaching and
learning is often seen as an important vehicle for the development of English
(and other linguas francas) language competencies by teachers and learners.
This is especially true with science and mathematics instruction, which are
delivered in English in many countries where English is not an indigenous or
dominant local language. This raises important issues related to learner equity
and access to education.
Intellectual property issues are very real Intellectual property issues are of
tremendous importance when developing digital content for use in education.
Ownership of content developed is a key issue to consider. Licensing of content
is often an option, but may contain hidden costs.
Internet Resources:
https://www.researchgate.net/profile/Anabela_Gomes2/publication/228328491_L
earning_to_program_-
_difficulties_and_solutions/links/02e7e52389017b9984000000.pdf(July 19, 2018)
Vincent S. (2014)
Java
https://www.google.com/books?hl=en&lr=&id=4NZaDwAAQBAJ&oi=fnd&pg=PA5
83&dq=history+of+java&ots=BwDhSoBP5p&sig=UyaNhQ5nhj0mrL35BD5efiwTy
dE (July 19, 2018)
Perry S. J. (2010)
https://www.ibm.com/developerworks/java/tutorials/j-introtojava1/index.html (July
19, 2018)
Engineering and Technology History Wiki (2016)
James Gosling
Purushotham S. (2016)
https://www.quora.com/What-is-the-use-of-Java-programming-language (August
7, 2018)
Vijayalakshmi K. (2017)
Rongala A. (2015)
https://www.invensis.net/blog/it/benefits-of-java-over-other-programming-
languages/ (August 7, 2018)
Mohan S. (2016)
https://www.weblineindia.com/blog/all-you-need-to-know-about-java-advantages-
and-disadvantages/ (August 7, 2018)
Sharma S. (2013)
https://www.c-sharpcorner.com/UploadFile/fd0172/oops-principle-in-java/ (August
7, 2018)
Sedgewick R. et al (2018)
Hardware Requirements
Cellphones
Computer/Laptop
The Process section identifies the activities involved, such as: Data
Gathering Procedures, Data Analysis and Interpretation, Coding, Testing and
Debugging, Implementation.
Application – a program that performs one of the major tasks for which a
computer is used.
Computer – an electronic machine that can store and work with large amounts of
information.
Software – programs that can run on a computer and perform certain function.
The True Experimental method of research was used in the study. True
Experimental method of research is a bias-free selection that ensures objectivity
of results in the study. The strength of true experiment lies in the fact that
researcher can achieve greater confidence in the genuineness of casual
relationships because they are observed under controlled conditions. Since the
present study or investigation was concerned about the learning status of
information and communications technology students in java programming, a
true experimental research was the most appropriate method to use.
The method of collecting data used was the normative survey. This is
concerned with looking into the commonality of some elements. Since the
present research is a status study, the normative survey was the appropriate
method to use in gathering data.
The instrument used to collect data was the questionnaire. This was used
because it gathers data faster than any other method. Besides, the respondents
were students and so they are very literate. They could read and answer the
questionnaires with ease.
After reading and studying samples from the related literature and studies,
the researchers prepared their own questionnaires. They also consulted some
knowledgeable people about how to prepare one. The researcher wrote down
several questions to make up for a survey questionnaire. The researchers saw it
that there were enough items to collect data to cover all aspects of the problem
and to answer all the questions. It includes name, gender and certain questions
under the statement of the problem. Then the researchers prepare the system to
be tested by the respondents in conducting the study using the java eclipse
oxygen. The questionnaire soon will deploy if the system was done and finalized.
Formula:
P = F/n X 100
Where:
P = Percentage (%)
F = Frequency