11 research outputs found
Using Visualization as an Easy Way to Learn Programming Logic
In the Information Technology (IT) education, from certificate level in colleges or educational institutions until degree level in universities, programming
courses are essential to build students‘ logical thinking and to train their programming skills in creating different types of software. Unfortunately,programming courses often consist of higher failure rates than other computer science courses. In this research, problem in studying programming courses will be analysed through literature review. To improve and to aid the understanding of the essence of computer programming, an easy way to learn programming logic will be formulated focusing on providing visualization to aid the learning. This approach will be applied on a courseware prototype, presented and later evaluated by first year diploma computer science students. Brief on the results obtained
Defining and evaluating conflictive animations for programming education : the case of Jeliot ConAn
A review of the practical uses of errors in education reveals three contexts where errors have been shown to help: teaching conceptual knowledge, changing students’ attitudes and promoting learning skills. Conflictive animations form a novel approach to teaching programming that follows a long tradition on research and development on program animation tools. Conflictive animations link the benefits of errors with program animation tools and programming education. This approach involves presenting to the students conflictive animations that do not animate faithfully the programs or concepts taught. Conflictive animations are versatile enough to cover the fundamental building blocks of programs such as operators, expressions and statements. With conflictive animations a novel set of learning activities can be introduced to computer science classes. This conflictive dimension of activities augments an engagement taxonomy for animation tools at all levels. They are an example of activities that promote critical thinking. A particular implementation of conflictive animations has been empirically evaluated aiming for ecological validity rather than statistical significance. Results indicate that students using conflictive animations improve their metacognitive skills, and, when compared to a control group, their conceptual knowledge improves at a better rate
Understanding notional machines through traditional teaching with conceptual contraposition and program memory tracing
A correct understanding about how computers run code is mandatory in order to effectively learn to program. Lectures have historically been used in programming courses to teach how computers execute code, and students are assessed through traditional evaluation methods, such as exams. Constructivism learning theory objects to students’ passiveness during lessons, and traditional quantitative methods for evaluating a complex cognitive process such as understanding. Constructivism proposes complimentary techniques, such as conceptual contraposition and colloquies. We enriched lectures of a “Programming II” (CS2) course combining conceptual contraposition with program memory tracing, then we evaluated students’ understanding of programming concepts through colloquies. Results revealed that these techniques applied to the lecture are insufficient to help students develop satisfactory mental models of the C++ notional machine, and colloquies behaved as the most comprehensive traditional evaluations conducted in the course.Universidad de Costa Rica/[]/UCR/Costa RicaMinisterio de Ciencia Tecnología y Telecomunicaciones de Costa Rica/[]/MICITT/Costa RicaUCR::Vicerrectoría de Investigación::Unidades de Investigación::Ingeniería::Centro de Investigaciones en Tecnologías de Información y Comunicación (CITIC)UCR::Vicerrectoría de Docencia::Ingeniería::Facultad de Ingeniería::Escuela de Ciencias de la Computación e Informátic
Using cognitive conflict and visualisation to improve mental models held by novice programmers
Recent research has found that many novice programmers often hold non-viable mental models of basic programming concepts such as assignment and object reference, which can limit their potential to develop programming skills. This paper proposes a constructivist-based teaching model that integrates cognitive conflict and program visualisation with the aim of supporting novice programmers in the formulation of appropriate mental models. The results of an initial empirical study produced three findings of note. Firstly, a teaching model based on either visualisation alone or cognitive conflict integrated with visualisation can help students develop viable models of value assignment. Secondly, there was evidence to suggest that cognitive conflict integrated with visualisation outperformed visualisation alone in helping students develop viable models of the more challenging concept of object reference assignment. And thirdly, there was evidence of an improvement in students' understanding of value and object reference assignment using the teaching model based on visualisation and cognitive conflict
Hindrances to learning to program in an introductory programmimg module
Introductory programming failure rate among students is high worldwide, including in
South Africa. The failure rate remains a subject for investigation due to a high number of
students who find learning to program difficult. This study evaluates factors that contribute
to high failure rates in an introductory programming module at University of South Africa.
The study evaluates curriculum, programming syllabus, and personal factors to evaluate
reasons for high failure rates. Quantitative and qualitative research approaches are used to
identify learning hindrances.
The research results show that personal factors are the leading contributing factors,
followed by the curriculum and then the programming syllabus. Personal factors relate to
time, personal reasons, and commitments; curriculum involves tutorials; and programming
syllabus factors are linked to programming concepts and application. The findings have
implications for how teaching and learning in introductory programming can be improved.
The study provides recommendations for improvement and future studies.
Keywords: Learn to program; introductory programming; higher learning; personalSchool of ComputingM. Tech (Information Technology
A study of novice programmer performance and programming pedagogy.
Identifying and mitigating the difficulties experienced by novice programmers is an active
area of research that has embraced a number of research areas. The aim of this research
was to perform a holistic study into the causes of poor performance in novice
programmers and to develop teaching approaches to mitigate them. A grounded action
methodology was adopted to enable the primary concepts of programming cognitive
psychology and their relationships to be established, in a systematic and formal manner.
To further investigate novice programmer behaviour, two sub-studies were conducted
into programming performance and ability.
The first sub-study was a novel application of the FP-Tree algorithm to determine if
novice programmers demonstrated predictable patterns of behaviour. This was the first
study to data mine programming behavioural characteristics rather than the learner’s
background information such as age and gender. Using the algorithm, patterns of
behaviour were generated and associated with the students’ ability. No patterns of
behaviour were identified and it was not possible to predict student results using this
method. This suggests that novice programmers demonstrate no set patterns of
programming behaviour that can be used determine their ability, although problem
solving was found to be an important characteristic. Therefore, there was no evidence
that performance could be improved by adopting pedagogies to promote simple changes
in programming behaviour beyond the provision of specific problem solving instruction.
A second sub-study was conducted using Raven’s Matrices which determined that
cognitive psychology, specifically working memory, played an important role in novice
programmer ability. The implication was that programming pedagogies must take into
consideration the cognitive psychology of programming and the cognitive load imposed
on learners.
Abstracted Construct Instruction was developed based on these findings and forms a new
pedagogy for teaching programming that promotes the recall of abstract patterns while
reducing the cognitive demands associated with developing code. Cognitive load is
determined by the student’s ability to ignore irrelevant surface features of the written
problem and to cross-reference between the problem domain and their mental program
model. The former is dealt with by producing tersely written exercises to eliminate
distractors, while for the latter the teaching of problem solving should be delayed until
the student’s program model is formed. While this does delay the development of
problem solving skills, the problem solving abilities of students taught using this pedagogy
were found to be comparable with students taught using a more traditional approach.
Furthermore, monitoring students’ understanding of these patterns enabled micromanagement of the learning process, and hence explanations were provided for novice
behaviour such as difficulties using arrays, inert knowledge and “code thrashing”.
For teaching more complex problem solving, scaffolding of practice was investigated
through a program framework that could be developed in stages by the students.
However, personalising the level of scaffolding required was complicated and found to be
difficult to achieve in practice.
In both cases, these new teaching approaches evolved as part of a grounded theory study
and a clear progression of teaching practice was demonstrated with appropriate
evaluation at each stage in accordance with action researc