Review of Related Literature and Studies

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 15

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 find programming difficult are simply

those for whom programming is difficult”. 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 significant effect. 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 final results of the course showed no significant correlation between

the calculated aptitude and the final 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.” He’s 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 applicant’s 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 isn’t much of a factor since It’s with an average of 7

years’ experience can’t 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 hand’s 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 Programming—Views 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 ‘working’—that 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
programmer’s 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

study’s 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 problem-

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


Ooo 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 researcher’s 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 forty-

seven (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.

You might also like