You are on page 1of 5

Executive Summary

A literature review showed that programming involves a high level of cognitive development (Pea and
Kurland, 1984). In a traditional computer lab it is not easy to promote students cognitive
developments in programming if learning activities and learning assisted tools are not well integrated.
For example, students cognitive understanding can be enhanced through integrating learning
activities and structured learning object.
Programming cannot be learnt without doing a lot of practice (Hwang et al., 2008). When learning to
program, it is essential that students are given the opportunity to practice in an environment where
they can receive constructive and corrective feedback. Without feedback, students may have a high
risk of failing the course. This study believes that the combination of the two approaches above would
give a better result on the process of learning.
Therefore, the objective of this project is to design and develop an Integrated Electronic Assessment
System to support student learning in introductory programming course. The proposed system is
modelled based on cognitive learning activities supported by learning objects that are integrated as
online help content and constructive learning activities supported by the assessment module which
enables the process of generating and debugging computer programs. The assessment module also
will also be equipped with functions to give a detailed description of each line of the code.

The learning environment is modeled


by cognitive learning activities supported by the
structured learning content into learning objects
that are integrated as online help content; and
constructive learning activities supported by the
editing-developing environment which enables
activities of constructing solutions to problems,
in the sense of enabling edit-compile-test cycle
to different programming concepts of given
examples (in the help content) or examples
created by the user by simple clicking the
appropriate icon on the interface of the
environment.
The combination of the two
approaches would give a better result on the
process of learning.

For example, in addition to


generating the whole program, program gap filling and peer program
assessment play vital roles in building the programming
cognitive development of students.
it is not easy to promote students cognitive
developments in programming if learning activities and learning assisted
tools are not well integrated.

and "combines the study of cognitive science of mental activity involved in


programming". Computer programming is very complex because "it involves
subtasks that draws on different domains of knowledge and various cognitive
processes [17].

The research literature shows that programming involves a high level of


cognitive development. Computer programming is highly complex since
"it involves subtasks that draw on different knowledge domains and a
variety of cognitive processes [17].

It involves a number of abilities that interrelate with the learner's


background knowledge and experience, reasoning skills, processing skills,
a wide range of comprehension strategies, and abilities for problemsolving and continual use of problem solving and design skills. Therefore,
there is variety of cognitive activities involved in computer programming
where cognitive skills or cognitive mismatch also seem to play a
significant role[10]. To support the cognitive learning in the process of
learning to program, a constructive approach of creating knowledge
should be enabled. Programming cannot be learnt without doing a lot of
practice. When learning to program, it is essential that students are given
the opportunity to practice in an environment where they can receive
constructive and corrective feedback [8]. The biggest problem of novice
programmers is not understanding of basic concepts but learning to apply
them. So, some basic test and debugging strategies should be taught [9].
These constructive activities should be made by the learner themselves in
an active, motivating manner that take place in the learning environment.
The combination of the two approaches would give a better result on the
process of learning. The model of the developed learning environment is
founded on the learning activities that depend on the cognitive and
intellectual abilities of learners and their abilities to individually construct
knowledge.

Professional development environments often generate syntax error


messages that tend to be cryptic, misleading, and often inaccurate when
taken at face value. Not only does this overwhelm and intimidate the
novice but it also detracts attention away from their key goal, learning to
program. It is for this reason that so many simplified pedagogic
programming environments exist.

can is difficult, especially novices in introductory programming courses.


Because novice suffer from a wide range of difficulties and deficits.
Example of difficulties that novice faces is lack of prior knowledge and
experience. Therefore, not only a lot of practices but also knowledge
are needed to help students better understanding on a particular topic.
Researcher believed that both knowledge and strategies are required in
learning programming effectively. Davies differentiate knowledge as ..
and strategies (practice) as ..
Therefore, the objective of this project is to design and develop an Integrated
Electronic Assessment System to support student learning in introductory
programming course. The proposed system is modelled based on

The description of the system 2 modules 1- to represent knowledge, 2- to


represent strategies in the form of programming practice with instance feedback
on each line of code.

For all but the best students an introductory programming course can prove to be a very
confusing and daunting experience, especially during the first term. Programming courses are
generally regarded as difficult and often have the highest drop out rates [10]. In order to
succeed a novice programmer must simultaneously acquire many new skills and concepts that
include, the development environment, the syntax and semantics of a programming language,
an understanding of programming concepts and any paradigm specifics (such as Object
Orientation). The novice must also acquire the problem solving skills and strategies that will
enable them to solve programming problems in an effective way. With so many new things to
learn, it is easy to see why some students struggle with the topic.
Professional development environments deluge the novice with a vast array of
visual and functional complexity most of which they will never use. Furthermore
the syntax error messages generated by these environments tend to be cryptic,
misleading, and often inaccurate when taken at face value. Not only does this
overwhelm and intimidate the novice it detracts attention away from their key
goal, learning to program. It is for this reason that so many simplified pedagogic
programming environments exist.

Another hurdle for the novice is in learning the syntax and semantics of a programming
language, this can have a profound effect on the performance of novices. The current desire
to teach real world languages such as Java, C++, and Visual Basic means novices have to deal
with complex confusing syntax, often at the expense of the problem at hand. McIver [4]

concurs with this view stating that trivial syntax errors may in fact impede learning, as they
distract students from the fundamentals of programming and problem solving.

rogramming courses are generally regarded as difficult, and often have the
highest dropout rates. Learning to program is hard. Novice programmers suffer
from a wide range of difficulties and deficits.
Learning programming languages, such as the Java object oriented programming
language, is a great challenge
especially when the students are still in the basic level of programming efficiency. A lot of
practical exercises are
needed to help the students to lead to better understanding on a particular topic. By
giving appropriate programming
exercises and assignments, the students' cognitive skill can be increased. Unfortunately,
lecturers take a lot of time
and effort to evaluate and assess the students programming exercises and assignments.
The manual approaches of
assessing programming assignment, such as the hardcopies and diskettes, are obviously
costly, time consuming and
inflexible.

Knowledge versus Strategy


Davies (1993) distinguishes between programming knowledge (of a declarative nature,
i.e., being able to state how a for loop works) and programming strategies (the way
knowledge is used and applied, using a for loop appropriately in a program).

According to [8] programming


knowledge cannot be directly transmitted from
instructors to students to construct - it must be
acquired actively by students by practicing the
acquired knowledge.
The traditional method of
listening lecturers and reading additional
materials are elementary in constructing
knowledge. But the teacher must transmit new
ideas of programming concepts and it is very
difficult to concretize abstract concepts of
programming with the concept on the table.
Most importantly, repetition by practicing will
ensure that the knowledge is retained. So
students need to do a lot of practice.
Unfortunately, traditionally in classroom, they
encounter many difficulties in the the editing,
compiling, and testing cycle while creating an
executive object was impossible with the concept
ex-cathedra.

incorporates cognitive science studies of


mental activities that are involved in
programming [11]. Computer programming is
highly complex since "it involves subtasks that
draw on different knowledge domains and a
variety of cognitive processes [17]. It involves a
number of abilities that interrelate with the
learner's background knowledge and experience,
reasoning skills, processing skills, a wide range
of comprehension strategies, and abilities for
problem-solving and continual use of problem
solving and design skills. Therefore, there is
variety of cognitive activities involved in
computer programming where cognitive skills
or cognitive mismatch also seem to play a
significant role[10].

Learning programming languages can be a very confusing and


intimidating experience, especially for novice programmers. Generally,
programming courses are regarded as difficult and often have the highest
dropout rates (Robins et al., 2003). In order to succeed, novices are
expected to acquire many new skills simultaneously including problem
solving skills, the syntax and semantics of a programming language, any
paradigm specifics and the development environment. Thus, it is not
surprising to see why some students struggle with the course since so
many new things to be learned.

You might also like