Wednesday, January 16, 2013
Duplicate Checker RRL
REVIEW
OF RELATED LITERATURE
Nowadays,
the amount of students enrolling computer science is still constantly rising.
According to Computing Research Association (CRA), the population of computer
science students increased to almost 10% in the 2011 – 2012 academic year. This
has been the fourth straight year for the population to rise (Harsha, 2012). And
along with this growth, comes the problem of learning introductory programming.
In this
chapter, the researchers discussed about the literature from different sources
that are related to this study.
Failure Rates in Introductory
Programming
(Bennedsen
& Caspersen, 2007)
Introductory programming is one of
the great obstacles an aspiring programmer will have to face. Many have stated,
including the researchers themselves that learning introductory programming is
one of the hardest subjects offered in computer studies. However, the belief
that high failure rates in this subject are not from official statistics but a
common folk-wisdom that has been shared so often that they are almost accepted
to be truths.
If a student views the failure and
pass rates of introductory programming incorrectly, there will be an upsetting
psychological effect that stops the student from trying their best and reasons
out that it is just the way a programming subject will be. If this kind of
rumor spreads out to aspiring programmers and computer studies enrollees, “it
could be one of the factors influencing the declining number of students taking
up degree in computer science” Bennedsen and Caspersen stated. Therefore, an
accurate statistical research should be made for the students to precisely
understand the difficulty of programming.
The researchers used a short,
web-based questionnaire with four terms defined as abort, skip, fail and pass.
These questionnaires were given to different universities and colleges,
majority of the schools were from United States of America. 575 questionnaires
were deployed to specific respondents, 78 of them were undeliverable, giving
only a population of 497. Unfortunately, only 80 respondents from different
institutions answered the questionnaire and 17 of them were answered
incorrectly. This gives the researchers 67 correctly filled out questionnaires
which is equivalent to 12.7% of the total questionnaires deployed.
Figure 2.0 Abort, Skip, Fail and
Pass rate; Aggregate
Figure 2.1 Abort, Skip, Fail and
Pass rate; Average
In Figure
2.0, only 67% of the students were able to pass introductory programming. This
calculation is based on aggregate numbers, this means that if there are more
students in a course, it counts more. In Figure 2.1, giving the courses equal
weight, 72% of the students passed the subject.
33% abort,
skip or fail the subject based on aggregate numbers and 28% fail based on
average values. The question is, is this high? From the remaining passers of
the subject, there is still no guarantee that they will graduate with a degree
in their hands. Cutting off almost one-third of the students enrolled in
computer studies is somewhat alarming to some of us. Introductory programming
isn’t impossible to pass, you can think of it as a huge stepping stone for your
goal.
A Participative Approach to Teaching
Programming
(Jenkins,
1998)
Participative
learning approach focuses in making the traditional lecture-based teaching into
a fun, modern and conventional way of learning. The primary goal of this
approach is to change the students from being passive recipients and convert them into active recipients which will make them more engaging towards their
subject.
There are
several evidences of participative learning approach showing its effectiveness
in higher education. Fleury shows how difficult recursive algorothms can be
when first learning it. However, he stated that it can be presented effectively
to students using a participative learning approach where the students
themselves enact the situation involved. Pennington stated that using
participative approach and other similar techniques were “likely to help (the
students) remember the material”.
It is
generally known that the most effective way of learning programming is through
practice. Race listed the four keys to learn programming effectively:
·
Practice
·
By doing it
·
By trial and error
·
By getting it wrong at first and learning from mistakes
These keys
are certainly ways of learning programming efficiently. However, one of the
problems encountered by students is the fact that they are not getting
sufficient knowledge to start these four keys. Participative learning approach
plans to get the students to this stage at least.
Traditional
lectures are not effective for educators to use when teaching the process of
programming to novices (Jenkins & Towle, 1997). Students easily get bored
when learning introductory programming the traditional way. Although they are
effective in learning with syntax and semantics, the most important for a
novice programmer is the process of the program. Knowing this, educators must
devise a plan to make the students learn programming effectively.
Participation
is difficult. Even if the learning approach is proven effective, it is not easy
to make the students participate in the lecture. Students easily get afraid of
them being considered stupid, attention seekers and creeps (Gibbs, 1992).
Educator’s experiences show that majority of the class cannot understand the
material just presented and are afraid of revealing their ignorance. With these
problems in mind, the ideal class environment should be:
·
Informal – there should be as few barriers between the
educator and students. Informal enough that students can speak comfortably with
the educator. This attribute can remove shyness and nervousness of the students
which can hinder them in their quest for knowledge. Sometimes the students are
just shy towards asking questions especially if the educator is strict and
unapproachable. Not too informal that we could fool around our instructors like
they are our best friends. We still need to respect the, informal but well
respected.
·
Dynamic – the classes would adapt as they progressed
and as more was understood about the students’ level of knowledge of a
particular topic. Classes would advance depending on the students’ current
level of knowledge. This would put them in their own pace. It would make them
comfortable and confident rather than feeling alone and left behind when
classes are just too much for them.
·
Personal – there would be no “them” and “us” from
either point of view. For example, trying hard just to learn every name of the
students in a class.
·
Entertaining – make the students want to come to
class. Encouraging them to come to class results to lesser absences due to
uninteresting way of teaching.
·
Memorable – an attribute in learning that is
underestimated often. Classes that are memorable are likely to help the
students save the material they learned into their memories. Even if they do
not fully understand the lesson, they remember the class itself. And hopefully,
they would appreciate the relevance of the class to the lesson they had.
Lessons are easy to understand when it is delivered surprisingly fun and
memorable.
·
Fun – teaching and learning are supposed to be fun.
This makes the students more interested in learning rather than the traditional
way which is only effective if the students are motivated enough.
With the
attributes mentioned, it is clear that participative learning approach is best
used for this type of class environment. Learning introductory programming
using a participative learning approach is one of the best approaches out there
to use. However, this does not mean that the traditional lecture-based is bad.
It is not just the right approach to use when teaching introductory programming
especially when the students are still fresh from it. There is an exception to
this though, that is when the students are highly motivated to learn
programming.
Lear: Learning and Problem Solving
as an Iterative Process
(Oppermann
& Thomas, 2005)
The current learning challenges for
competent employees in information technology is insufficient during the
introduction phase of new systems, improved on-line help, and user support by
local or central consultants. Nowadays, requirements and qualifications of
working people change and evolve. Especially flexible work organizations that
often do job rotations, job enrichment and group work. A new learning approach is
needed to support learning and qualification process to lessen the difficulties
encountered when learning something new.
The researchers think that this
problem does not only occur in work environment but also in learning
institutions. This often happen in introductory programming subjects where the
students need to pace up with the lessons given by the educator. It is
extremely hard to study introductory programming especially if you are fresh
from it. Students often proceed to the next lesson without fully understanding
material just presented. This problem also occurred to the researchers when
they enrolled for introductory programming.
According to Oppermann and Thomas,
there are currently three approaches to the learning challenge.
First are
the training courses during the introductory phase of new systems. Pre-training
of the job or learning on the job is good since this approach has been for
ages. But good doesn’t mean they are perfect, pre-training before actual
performance needs to consume time before working. Training courses usually take
around a week or more depending on the job. In addition, actual learning and
encountering problems occur right on the job and not on these training courses.
They might help you get ready for problems but the learning always takes place
on actual performance and not on training. Learning on the job can slowly build
your pace but prone to errors. A significant error might put your career into
danger.
Another
approach would be asking support from on-line help. This refers to intelligent
help systems. One major flaw of this kind of system is their limited capacity
of information. Systems like this can only cater topics that the developer
intended to. Users might end up buying a lot of software or you can hire a
software engineer to make you one but it is expensive enough to make you
research another approach.
The third
approach uses local and central consultants. They might be good for tutorial
services. Actual learning is best when it is personal. However, like on-line
help systems, the capacity of a consultant is still limited. They are still
human being that has limitations in what they know. Furthermore, like other
human beings, they are busy and might not be available all of the time.
Oppermann
and Thomas stated the three aspects of learning that they want to focus on:
·
Learning is universal – it has to be supported in
every working situation. Learning is not only present in the beginning; it is
present throughout the entire process.
·
Learning is a combination of exploration and
instruction. People start to learn by trying something they don’t know.
·
Learning is an iterative phenomenon. It undergoes a
cycle trying to learn something out of it.
With this
mentioned aspects, they decided to use an iterative learning approach.
Iterative learning is a process that executes several trials of acquisitions
and the application of the knowledge gathered. Acquiring knowledge in the first
trial may be exploratory, supported by consultants, prone to errors, indirect
solutions and a dead end. The first step might be challenging but it provides
the user a lot of ideas, risks, errors and maybe solutions. The first step
might be enough for others to provide solutions but most of the time, it is
just a preliminary understanding of the surface of the problem. Iterative approach
focuses on the user’s ability to reinforce and extended by re-use in identical
or similar situations.
Oppermann
and Thomas’ solution to this continuous problem is the LEAR. LEAR stands for
Learner’s Living Repository; a support environment for learning and
consultation. It focuses on integrating working and learning and on supporting
self-directed and group learning. Users of LEAR can describe problems or
solutions they encounter, comment on them and store them as “episodes”. Users
can then send their episodes and store it in an online database for later use.
Users who are interested in specific episodes can be made available to a group
of users.
An
environment of this kind can help the people who want to learn by asking the
users of this system or can access the episodes for the easier way of finding
the solutions.
The
researchers recognized the usefulness of the iterative learning approach
through this article. Iterative learning can be really useful if done
correctly. The researchers decided to use this approach to improve the quality
of learning of their research.
Learning through comparison
(Saalbach,
Schalk, Schneider & Stern)
Comparison
is one of the most effective means for learning for both children and adults.
We have been doing comparison for all kinds of things before we even know about
it. It is one of the most basic tools to use when learning. It is supposed to
work by analyzing the “structural alignment” of two objects, allowing for the
discovery of important common and different properties of the object.
The researchers consider this basic
learning method essential for the learning of introductory programming. For the
complexity of programming, the researchers thought about using the basic and
commonly used learning approach. This type of approach might be very slow but
is very productive.
Code Rocket
Designer
Code
Rocket Designer is a standalone tool which helps programmers’ lives easier by
converting pseudocode to source code, which helps save time to developers
without almost having the need to manually code the ideas they have presented
as grammatical thoughts or flowcharts. It provides a document generator that
can be modified to the likeness of the document creator; the supported formats
are Word documents and HTML, to make documentation easy, making it
understandable to people who have no idea about the technical aspects of the
software. When slight changes to the pseudocode or flowcharts are made, it
automatically reflects to the design of the system, this will help the
developers save time by preventing them to make changes, for example, on their
source code or vice versa. The programming languages currently supported are:
C, C++, C#, Java and Visual basic, plugins are also available for Visual Studio
and Eclipse with a debugger to trace possible errors. The software can be
evaluated for 30 days and after that it has to be purchased for 99.95 euros.
Considering the price of the software, users can save a lot of money using the
software.
GPC Pseudocode
Converter
GPC
Pseudocode Converter is an open-source software that converts pseudocode into
C++ source code, the code is ready to compile for run-time execution,
developers will only have to run their converted pseudocode after it has been
converted, saving a lot of time from having to code it manually, simultaneous
conversions is also supported by the software, with lots of project piled up
for the developers, it is necessary to finish them as early as possible as to
catch deadline and possibly save costs. The program also includes a text editor
where you can test your conversions, for inexperienced users, they can use the
text editor to try its effectiveness and hone their understanding of an idea
and then coding it. It works on the
Debian operating system.
AthTek Code to
FlowChart
AthTek converts source code into flowcharts and allows the flowchart diagrams to
be exported to Microsoft Visio, Excel, Word and Power Point. The program
supports C, C++, Visual C++, and Pascal/Delphi. It is a shareware program and
the license costs $99.99.
Instant C#
Instant
C# converts entire VB.NET project into C# programming language code. This time
saving program helps developers finish their tasks in time and save resources.
This program is a shareware, and it can be evaluated for conversion of up to
2000 lines of code. The program can be purchased for $139.
Visustin V6
Flowchart Generator
Visustin
is a software that converts a source code into its flowchart design. The
software reverse engineers the source code written to convert it into
flowcharts or UML Activity Diagrams and supports simultaneous conversions. It
is also capable of reading conditional and iterative statements. No drawing is
required to generate the flowchart from its source code but if necessary, the
users can draw flowcharts from scratch to be able to formulate an approach on
building certain solutions/programs or edit existing flowcharts for improvement
and error tracing measures. Users can also save the flowcharts they have made
as image files (MP, GIF, JPEG, PBM, PCX, PGM, PNG, PPM, TGA, TIFF, MHT, EMF and
WMF) and allow exporting of diagrams into Microsoft Visio, with the program
being able to save a digital image format for created flowcharts, it makes the
flowchart more viewable as some programs tend to use their own file format for
their project files, the tendency is, few or the said program(s) can only
recognize the file formats used by a certain program. The programming languages
that Visustin supports are the following : Ada,
ASP, assembler, BASIC, C, C++, C#, Clipper, COBOL, ColdFusion, Delphi, Fortran,
Java, JavaScript, JCL, JSP, LotusScript, Matlab, Pascal, Perl, PHP, PL/I,
PL/SQL, PowerScript, PureBasic, Python, QB, REALbasic, REXX, SAS, TSQL, VB,
VBA, VBScript, VB.NET, Visual FoxPro and XSLT.
Site
licensing of this program may cost up to $7790, in which you can install the
program to any machines the buyer wants to. There are three (4) editions of
this program: Standard, Pro, Pro Premium
and Standard Educational. Single user licenses may cost $499 dollars. The
resarchers realized that the price was too much for its functionalities but the
support provided for programming languages almost made up for it.
Crystal Reports
Formula Editor
Formula
Editor is the tool provided by Crystal Reports to generate statements that
create the foundation of a report. This is where the researchers’ project’s
software is based. Users will only have to click, for example, a database
table’s column or row to be included on the report. The advantage of using this
tool over the others is that users do not have to necessarily code the formula
for their reports, they can use ‘Report Builds’ to find the necessary
conditions needed to use for the output of the generated report, making it easy
to understand or use. The disadvantage of this tool is that, the debugger is
not user friendly for beginners, if users have limited knowledge, they may have
a hard time debugging because the tool does not tell on what line number of the
formula has the wrong statement or expression.
Synthesis
With the
reviews of related literature presented above, it shows the concept of the
learning methods that are going to be used with this research. The reviews
gathered here helped in determining the significance of the research.
Crystal
Report’s Formula Editor shows that its user interface is practical and
user-friendly. The ability to point and click the variables, statements and
definitions is pretty convenient and a good thing to have.
There are other
pseudocode to C code converters mentioned above but none of them have the
concept of making it a learning material instead of being a pure converter.
Subscribe to:
Posts (Atom)


