SANTOS, J. S.; http://lattes.cnpq.br/4603605800436333; SANTOS, Jucelio Soares dos.
Résumé:
The current instructions to teach cognitive programming skills have gaps in identifying,
structuring and sequencing them. Novices in the Introduction to Programming Course
(CS1) often have different levels of prior knowledge and widely varying problem-solving
skills. Students who have some previous contact with programming in stages prior to
CS1 may find it easier to assimilate the content. On the other hand, students who have
not had this experience may have learning difficulties and should receive more attention
from educators. In general, the learning of students with different levels of knowledge
is impacted by several cognitive levels, which, until now, has been little explored. A
lack of the correct understanding of these levels and the need for more reliable and
valid instruments for personal assistance can have serious implications in the teaching
environment in CS1. About one-third of the students enrolled in CS1 usually end up
failing or dropping out. This fact leads to students’ demotivation and distrust of these
higher education courses by the academic community. Thus, it is essential to fill in the
gaps in the knowledge about the identification/segmentation of which cognitive skills are
involved in programming learning and propose reliable instruments to measure and foster
them. Thus, this research aims to identify, measure, and foster cognitive skills in novices in
programming through a reliable, adaptive, and empirically valid instrument. This instrument
determines the appropriate challenge level according to the student’s skill level. To do
so, we identify cognitive programming skills and approaches to foster/measure such skills.
We assume that sequencing the cognitive skills involved in programming learning through
the Cognitive Domain of Bloom’s Revised Taxonomy determines the correct challenge
level in an assessment instrument. Through this approach, we created an items bank and
analyzed the content and semantics of these items. Using Measurement Theories, we
calibrated the items bank and assessed the instrument’s internal consistency. In addition, we
analyzed the relationship between cognitive programming skills and the participant’s ability
to produce code. We integrated adaptive selection into the created instrument to improve
the item selection and the estimation of participants’ abilities. Finally, we investigated
whether fostering cognitive programming skills improves code writing performance for
novices. As a result, we provide an approach to sequencing cognitive programming skills
vi
to foster and measure them. We offer reliable and adaptive instruments that incrementally
foster and measure cognitive skills in programming novices. In addition, we obtained
empirical evidence on the influence of the cognitive skills fostered by the instruments on
the participants’ performance in writing code. The results indicate that learning can occur
linearly as students advance in cognitive levels in Bloom’s Revised Taxonomy. The cognitive
performance of successful novice programmers in code writing tasks may be interconnected
with the skills fostered by the instrument. In addition, the item choice managed by the
adaptive instrument determines a reduction in the number of items and an adequate sequence
to determine the subject’s skill level. These research results can contribute to teaching and
learning practice in CS1 by providing an instrument that will allow programming educators
to collect evidence of initial programming difficulties efficiently. Educators can assist by
assigning questions according to the student’s skill level to compensate for difficulties.