Вы находитесь на странице: 1из 22

CHAPTER I

THE PROBLEM AND ITS BACKGROUND


Introduction
Programming is a fundamental part of Information and Communication
Technology (ICT) Curriculum, though it is often problematic for students. It is
well-known that many student experience difficulties in learning and practicing
programming. To become a good programmer, a student must acquire a series of
abilities that go well beyond knowing the syntax of some programming
languages.
Learning Programming requires full effort and special approach in the way
it is learned and taught. Thus, this study focuses on the difficulties encountered in
C++ programming language as perceived by sophomore students of Bachelor of
Science in Information Technology in Polytechnic University of the Philippines
Santa Rosa Campus. This study will also help the teachers and students address
the problem in its early stage to avoid other problems in the future.

Background of the Study


The C++ programming language was originally developed by AT&T Bell
Labs in Murray Hill, New Jersey, starting in 1979 by Bjarne Stroutstrup, as an
enhancement of the C Language. It is regarded as a middle-level language, as it
comprises a combination of both high-level and low-level language features. C++

is a statically typed, compiled, general-purpose, case-sensitive, free-form


programming

language,

object-oriented

and

generic

programming.

The

Language is also widely used for teaching and research because it is clean
enough for successful teaching of basic concepts.
Learning how to make a computer program is a very hard work. There are
such things that one must work on when starting out with programming like
familiarizing with the syntaxes, solving machine problems, debugging program
error, critical thinking, analysing the program flow and more. Honestly speaking,
programming is inherently difficult to understand especially for novice
programmers. But practicing could improve ones programming skills.
The researchers observed that several First Year students in Bachelor of
Science in Information Technology failed their programming subject at the end of
the semester. So the researchers came up with this study to help and give
possible solution in the difficulties experienced or encountered by Second Year
students of Bachelor of Science in Information Technology in their programming
subjects. In addition, the possible solutions that researchers may give are online
tutorials and organizing group studies to help them improve their programming
skills.

Theoretical Framework
C++ programming language is one of the first and major subjects of an
Information Technology student. And like all other subject, some to most students
experience difficulties in various topics or parts of the subject. Learning is not a
simple thing. In cognitive psychology, learning something new requires a
complex array of mental processes such as attention, language used, memory,
perception, creativity, thinking and problem solving skills. Various students can
differ in terms of how their brain interpret and analyze information. This gives the
idea that different student learn differently or that different topics or subjects
affects how the student perceives the subject. This can also be affected by
various factors like a students environment.
The theory of constructivism states that learners are not passive
recipients of information, but that they actively construct their knowledge in
interaction with the environment and through the reorganization of their mental
structures. When a student fails a quiz on a specific subject, that student will find
the answer to that question easier and will remember it through experience.
There are also cases where the student only experience difficult at the start of
the learning process then finds the subject easier once they understand the
basics. Different students have their own environment and factors that differ from
that of their classmates. Some however, would find the same subject difficult due
to the fact that the subject is too hard or complex as it is.

Statement of the Problem


This study aims to determine the difficulties encountered in C++
programming language as perceived by sophomore students of Bachelor of
Science in Information Technology in Polytechnic University of the Philippines
Santa Rosa Campus, First Semester, Academic Year 2015-2016.
Moreover, the researchers want to specify what part of C++ programming
language they do not understand the most and to know the common errors in
which the students committed. Specifically, it attempts to answer the following
questions:
1. What is the profile of the respondents in terms of:
1.1 Section;
1.2 Gender;
2. What part of the C++ programming language does the respondents
experiencing difficulties in terms of:
2.1 Variable Declarations;
2.2 Initialization of Variables;
2.3 Input and Output Stream;
2.4 Operators;
2.5 Conditional Statements;
2.6 Looping;
2.7 Array;
2.8 Pointers;
2.9 Void Function; and
2.10 File Handling.
3. What are the common errors in C++ programming language does the
respondents encountering difficulties in terms of:
3.1 Invalid symbols or keywords;
3.2 Mismatched symbols;
3.3 Missing symbols; and
3.4 Excessive symbols.

Hypothesis
The following null and alternative hypothesis was tested in this study:
The students are not experiencing significant difficulties in manipulating
and utilizing variable declaration, initialization of variable, input and output
stream, operators, conditional statements, looping, array, pointers, void function.
The students are not encountering significant difficulties in programming
errors such as mismatched symbols, invalid symbols, missing symbols, and
excessive symbols.
The students are experiencing significant difficulties in manipulating and
utilizing void functions, pointers, file handling, arrays, and conditional statements.
The students are encountering significant difficulties in programming
errors such as mismatched symbols, invalid symbols, missing symbols, and
excessive symbols.

Significance of the Study


This study is significant to students, parents, teachers, researchers, and
future researchers.
Students

This study will help them to think for some important adjustments to solve
their problem as well as to help them improve their capabilities towards learning
C++ programming language.
Parents
This study will help them to lessen their worries about the academic status
of their children.
Teachers
This study will help them to have an effective strategy on teaching C++
programming language.
Researchers
Through this study, the researchers would be able to find solutions in
handling the difficulties encountered in C++ programming language as perceived
by the students.
Future Researchers
This study will serve as guide for further studies to be conducted in the
future. This study will also provide reference for them to get ideas and sources if
they are going to conduct the same study.

Scope and Limitation

This study focused mainly on determining the difficulties encountered in


C++ programming language of sophomore students of Bachelor of Science in
Information Technology in Polytechnic University of the Philippines.
The scope of this study is the sophomore students of Bachelor of Science
in Information Technology in Polytechnic University of the Philippines in an extent
that they encounter difficulties in programming. The Bachelor of Science in
Information Technology 2-1 consists of forty-seven (47) students on the other
hand, the Bachelor of Science in Information Technology 2-2 which consists of
forty nine (49) students. All in all, there were ninety six (96) students involve in
this study.

CHAPTER II
REVIEW OF RELATED LITERATURE AND STUDIES
This chapter presents the review of the related literatures and studies
regarding topic about Difficulties encountered in C++programming language as
perceived by sophomore students of Polytechnic University of the Philippines

Santa Rosa Campus. At the outset of this study, the researchers are engaged in
gathering information related to the research studies and literatures that have
bearing and significance to the study.
Foreign Literature
On the difficulty of learning to program, (Tony Jenkins 2002) said that It is
sometimes argued that the students who nd programming dicult are simply
those for whom programming is dicult. He also stated that there is nothing
inherently difficult in the subject; the argument is simply that some students have
no aptitude for programming. The required skills often cited are problem solving
ability and mathematical ability.
It is the foregoing connection that he also stressed that the link between
mathematical ability and programming is widely accepted, although its empirical
demonstration is questionable. In addition, there is little evidence that either has
any signicant eect. A recent study in Ireland (Pat Byrne and Gerry Lyons,
2001) has once hinted at some connection between programming aptitude and
experience in mathematics and problem solving. Along with it, an experiment at
the University of Leeds (John Davy and Tony Jenkins, 1999) designed to stream
a programming class based on the results of an aptitude test aimed at these two
skills but the nal results of the course showed no signicant correlation between
the calculated aptitude and the nal grade. Other studies (General E. Evans and
Mark G. Simkin, 1989) have shown that no demographic factor is a strong
predictor of success in programming.

Moreover, Dianne Hagan and Selby Markham (2000) said that it certainly
helps to have some experience of programming before starting a programming
course but this is not the same thing as aptitude. There exists programming
aptitude tests (PAT) produced by IBM, but the evidence for their effectiveness is
inconclusive at best (Lawrence J. Mazlack, 1980). If it is not possible to measure
aptitude for programming in some convenient way, and if it is possible that
"aptitude" for programming does not even exist, the focus for the understanding
the difficulty of learning to program must turn in a more cognitive view of the
problem lies in the subject itself (T. Jenkins, 2002).
According to Kathryn D. Sloane and Marcia C. Linn (1988), programming,
then, is not a single skill. It is also not a simple set of skills; the skills form a
hierarchy, and a programmer will be using many of them at any point in time. As
cited by C. Bereiter and E. Ng (1991), a student faced with learning a hierarchy
of skills will generally learn the lower level skills first, and will then progress
upwards. In the case of coding (one small part of the skill of programming) this
implies that students will learn the basics of syntax first and then gradually move
on to semantics, structure, and finally style. Teachers will be all too familiar with
the student who produces programs with no indentation, intending to "indent it all
later", or without any comments, content to add these later (and only then
because there are marks for the comments in the assessment). Further, (Tony
Jenkins, 2001) stressed that no experienced programmer would work in this way,
and these are bad habits to fall into, but this is an inevitable side effect of the
order in which programming skills are learned. This approach to learning is often

reinforced by lectures that concentrate on the details of syntax, and by textbooks


that adopt much the same approach. This leads to the student who hopes to
gain an understanding of programming and plans to achieve this by reading a
textbook. Programming is learned by programming, not from books.
In sustenance to the foregoing, (McKeithen Katherine et.al, 1981) alleged
that programming is not only more than a single skill; it also involves more than
one distinct process. At the simplest level the specification must be translated
into an algorithm, which is then translated into program code. In experienced
programmers it is also possible to identify an intermediate process whereby the
algorithm is mapped to something resembling a "recipe" for the programme,
based on previous experience
Meanwhile, Tony Jenkins (2001) cited that the most difficult part of multiple
process of Programming is first, translating the specification into the algorithm.
This is also the most important, as it is crucial that a correct and efficient
algorithm is used as the basis of any coding. Given a correct algorithm the other
processes are essentially mechanical. Therefore, a student must master three
distinct processes. He also mentioned that teaching and learning, however, can
concentrate on the low level issues of syntax at the expense of the higher level,
more complex, and process of designing an algorithm. Worse, any consideration
of algorithm design and efficiency can be relegated to another, apparently
unrelated, part of the course. In any case there is surely little point in lecturing
students on syntax when they have no idea of where and how to apply it.
Teachers will be familiar with students who can follow the lectures in the

programming course, who can dissect and understand programs, but who are
totally incapable of writing their own program. They have not mastered all the
processes; they can code, but they cannot produce an algorithm.
Local Literature
An article published on WebGeek.ph shows an interview with Tim Joseph
Dumol, chief Hacker of Kalibrr. Tim is an active competitor in programming
contests, such as ACM ICPC Philippine Invitational Programming Contest (1st),
ACM ICPC Jakarta Regionals 2012 (9th) Google Code Jam 2011 (Rank 786 of
Round 2) and Manila Dev Challenge (Best Performance in the preliminaries).
In the interview, he was asked about his view on Philippine tech and its
potential, he said that there might be more talent shortage in the upcoming years,
I don't think software development is visible enough in the public consciousness
to attract top talent towards it. I also think that programming and computer
science education in the Philippines is severely lacking. I've heard of several
schools that teach MS Word, PowerPoint, and Photoshop for their computer
classes, which misleads potential computer scientists as to what computer
science actually is. Hes last statement to the question was I think without
proper training on the foundations of computer science, future programmers will
be ill prepared to face novel problems and to truly excel in their fields.
Along with it, an article was written by fydesign, a web design company
focused on web development of corporate websites, e-commerce and search
engine optimization, about the quality of Filipino programmers that applied for a

job in their company. The articles shows that only 5 out of the 81 applicants have
answered a problem in the interview correctly and none of those 5 were able to
answer it efficiently. The skill evaluation consists of two simple exams: Variable
Swapping to test your resourcefulness and Shuffling to test the applicants coding
efficiency.
Due to the result of the interview, the interviewer or writer of the articles
narrowed the three problems, the first one was the Misconception on Experience.
They say that experience isnt much of a factor since Its with an average of 7
years experience cant answer the two questions. It is stated in the article that if
a person will Give a month to a new graduate with an outstanding knowledge in
programming concepts, problem-solving or logic formulation skills and he can
even exceed your average 7-year experienced programmer. The misconception
on the years of experience is one factor the programmer slows down or even
stops learning.
The second problem was in the low quality of education. A big factor in the
worsening quality of programmers is the institution. IT Schools focus more on
teaching specific programming languages and programming syntax instead of
programming concepts. The author stated the learning the concept is more
important that hands on experience. The last one was the lack of passion, It all
starts within you (programmer). In the first place, why take the Computer Science
Course if all they want is design, photography, nursing, agriculture, housewife,
etc. They will never succeed, and they will never look for opportunities to

improve. This is normally the behaviour if what they do is not something that you
really love.
Foreign Studies
The study of Matthew Butler and Michael Morgan (2007) introduces the
Learning challenges faced by novice programming students studying high level
and low feedback concepts. This study is conducted at Monash University in
Singapore where Butler and Morgan are both Faculty of Information Technology
in the said University. The researchers had shown the approximate arrangement
of the curriculum and list of the notional level of conceptual difficulty of the
subject matter for the basis of their study. The researchers have a total of 167
respondents for their study.
Matthew Butler and Michael Morgan conclude the following statements:
An analysis of the survey data has provided a large number of insights into study
habits and challenges faced by novice students. It was clear that elements of
program design proved to be among the most challenging aspects of introductory
programming curriculum. Indeed the elements of the curriculum of a highly
conceptual nature proved to be acknowledged as the most challenging, both
from an understanding and implementation perspective.
They further stated that a shift in acknowledged difficulty from
understanding to implementation could also be seen in almost all parts of the
curriculum. The only element not to experience this shift was syntax. This is an
aspect of programming curriculum that provides a very high level of feedback to

the students, possibly a reason why students feel a little more comfortable in
working with programming syntax than their conceptual understanding of it.
In addition, the results presented are only a small part of more a thorough
analysis of the data that is in progress. The most important direction for future
research involving further surveys of students will focus on areas of the
curriculum that contain concepts that have a high level of conceptual difficulty
with the aim of clarifying exactly why students find these elements conceptually
difficult. Students have commented on general topic areas only at this stage,
therefore further breakdown of curriculum topics, particularly those relating to
object oriented concept and design must be done to further investigate these
problems.
Moreover, the data provides an insight into student problems with the
introductory programming curriculum. It is clear that issues relating to high
concept areas and the limited feedback opportunities that they afford must be
addressed. As feedback is inherently limited by programming environments and
the like and the greatest opportunity for feedback comes from in-class
assistance, consideration should be given to teaching methods that can provide
feedback opportunities to the student both in and outside the classroom. A
teaching method that can scaffold the student learning and guide them through a
process such as program design may be invaluable to reducing the perceived
difficulty of high-level concepts in introductory programming units.

In the view of the foregoing, a Study from the Department of Applied


Computing, University of Dundee, Dundee, DD1 4HN titled Difficulties in
Learning and Teaching ProgrammingViews of Students and Tutors by Iain
Milne and Glenn Rowe (2002) from Netherlands.
The respondents of the said study are the Learning and Teaching Support
Network (LTSN) and the students of Dundee. The researchers conducted this
study to know the perspective of teaching staffs (LTSN) and learners (students of
Dundee). The researchers conclude that the purpose of their study was to rank
programming concepts in order of difficulty, both from the students points of
view, and those of their lecturers.
The researchers believe that the results show that the most difficult topics
are so ranked because of the lack of understanding by the students of what
happens in memory as their programs execute. Therefore, the students will
struggle in their understanding until they gain a clear mental model of how their
program is workingthat is, how it is stored in memory, and how the objects in
memory relate to one another. This provides us with the motivation to design a
program visualization tool whose primary goal is to aid and enhance the
programmers understanding of what is happening in memory as their program
executes.
Meanwhile, the study of Mahmoud M. Mhashi and Ali M. Alakeel from the
Kingdom of Saudi Arabia and also a part of Department of Computer Science
Faculty of Computers and Information Technology at University of Tabuk, Tabuk

conducted a study about Difficulties Facing Students in Learning Computer


Programming Skills at Tabuk University. Presented below are the results of this
studys survey.
The researchers conclude that learning to program is a complex task.
This paper has presented results from a case study and a questionnaire whose
purpose was to make sure that our students face difficulties in programming and
to rank programming issues in order of difficulties from students points of view.
The students face real difficulties in programming. The students lack the ability
to problem solving and design at its different stages, and general programming
topics. Most of the students lack skills even to analyze a short piece of code. In
addition, students are not hard working and they lack understanding. Poorly
designed course, students weakness in English language, lack of practice and
exercises feedback, and lecturers insufficient skills in organizing the material and
lack of support by the university (large number of students in labs, and availability
of assistant lecturers), were seen as possible factors related to the difficulties.
Finally, one of the difficulties was the students level of maturity. This category
included students conduct: need for hard work, class and lab attendance, solving
home works and exercises, getting feedback from the lecturers, and involvement
in class interactive visualizations.
Local Studies
As cited by Bringula et al. (2012), programming is the core skills for
Information Technology students or from its simplest definition is an act of

creating a program. However, learning to program is difficult, it requires


exceptional perfection, strong foundation about knowledge on computers and
programming languages, programming tools and resources and formal methods.
More specifically, programming is an act of putting programming codes together
of a set of instruction that solves a specific problem.
Inexperienced programmers, also called novice programmers, have
experienced difficulties in making a program. It is important to study
programming errors because it can lead to a better understanding of problemsolving strategies. As a result, numerous studies have been conducted to identify
the difficulties experienced by novice programmers and the errors associated
with these difficulties (Bringula et al., (2012)).
There are two types of novice programmers according to Bringula et al.,
(2012), the stoppers and movers. Stoppers, from the world itself, stop when they
experience difficulties and errors in program and movers are those who are trying
to work on giving a solution to the problem and eventually they are the ones who
will achieve a working program.
In the study of Bringula et al., (2012), the difficulties or errors frequently
committed by novice programmers are missing semi-colons, unmatched curly
braces, excessive symbols like putting semi-colon after if-condition, inappropriate
naming of method names, illegal start of expressions, incompatible types and
irrelevant naming of variables or constants.

On the other hand, according to Tabanao et al., (2008) inexperienced


programmers encounter a variety of distributing problems. She also said that In
Australia, almost 35% of the students fail their first programming course and in
the United Kingdom and United States, almost 30% of the students did not
understand the basics in programming by the end of the first programming class.
In the study of Tabanao et al., (2008), there was a total of 52 different error
types encountered. First on the list is cannot find symbol-variable. The possible
explanations were Java is case sensitive capitalization of a variable or a part
of a variable while coding and students tended to forget to declare variables
first before using them. Second on the list was missing semicolon and lastly,
forgetting to pair a parenthesis or bracket or a brace.

CHAPTER III
RESEARCH METHODOLOGY
This chapter presents the various components of research methodology
as research design, the population and sampling technique, the description of

participants, the survey instruments use in this study, the collection and
procedure in gathering of data as well as the statistical treatment of the data.
Research Design
The research design being used in this study is descriptive research
method. Descriptive research deals with the description, recording, analysis, and
interpretation of the phenomena that already exist. The researchers used this
method because it is the most appropriate research method wherein, the
numerical data is based on the respondents responses for the items on the
difficulties encountered in C++ programming language.
Population and Sampling Technique
This study involves two sections of second year students taking up
Bachelor of Science in Information Technology in the Polytechnic University of
the Philippines, Santa Rosa Campus. In particular, the subjects of the study are
the students in the following sections of the First Semester, S.Y. 2015-2016: BSIT
2-1 and BSIT 2-2.
Since it is the purpose of the researchers to study the difficulties
encountered in C++ Programming Language of the students, it is only
appropriated that the researchers employ the use of Total Sampling in which the
sample would be taken from the population of the said respondents. Total
sampling which otherwise be called total enumeration uses no method of
sampling or selecting respondents. As the term implies, all samples are included

as respondents. This is availed of in cases where there are only reasonable or


few number of samples.
For an individual to qualify as respondent of the researchers study, the
individual must possess the following qualifications: The respondent should be a
Sophomore Student of Bachelor of Science in Information Technology; The
respondent should belong to any of the two sections of the said year level; The
respondent should be a student of Polytechnic University of the Philippines Santa
Rosa Campus; The respondent experienced the difficulties encountered in C++
programming language.
Only those students who have met the above qualifications would be part
of the study, from which data would be gathered.
Description of participants
The second year students of Bachelor of Science in Information
Technology of Polytechnic University of the Philippines are the participants of this
study. The Bachelor of Science in Information Technology 2-1 consists of fortyseven (47) students, twenty four (24) men and twenty three (23) women. On the
other hand, the Bachelor of Science in Information Technology 2-2 which consist
of forty nine (49) students, thirty one (31) men and eighteen (18) women. In the
overall count, there were ninety six (96) students involve in this study.
Data Gathering Procedures

The survey questionnaire was conducted and distributed to the selected


respondents of Polytechnic University of the Philippines, for which the
researchers intended to allot at least one (1) day for the survey questionnaire
distribution and retrieval of the same survey forms from the same respondents.
The survey questionnaires were collected and checked if all the items have been
filled out and rated correctly by the respondents in order to minimize errors in
data analysis, thereby making the results to be obtained thereon more accurate,
reliable, and valid. As a way of summarizing the data collected, the researchers
tallied the data from the questionnaires as filled out by the respondents.
Research Instrumentation
The instrument used for gathering the needed data for this study covers
research questionnaires with its three parts.
The first part pertains to the personal profile of the respondents as to
name, gender and section.
The second part of the researchers questionnaire deals with identifying
the specific C++ topic that the respondents encountering difficulties in learning
the subject. For this part of questionnaire the researcher used the likert scale
system because it is the most widely used approach of scaling responses in
survey research. The respondents of the study should rate each item on the
difficulties encountered in C++ programming language in the said scale system,
the ratings must have the corresponding descriptions: 5 which is always; 4 which
is often; 3 which is sometimes; 2 which is rarely or seldom; and 1 which is never.

The Last part of the researchers questionnaire consists of items which will
pertain to the common error in C++ programming language that the respondents
experiencing difficulties. For this part of questionnaire, the respondents of the
study will also rate each item on the difficulties encountered in C++ programming
language in a scale system.

Вам также может понравиться