1,820 research outputs found
Exploring student perceptions about the use of visual programming environments, their relation to student learning styles and their impact on student motivation in undergraduate introductory programming modules
My research aims to explore how students perceive the usability and enjoyment of visual/block-based programming environments (VPEs), to what extent their learning styles relate to these perceptions and finally to what extent these tools facilitate student understanding of basic programming constructs and impact their motivation to learn programming
Effects of sequencing computer-based instruction and lecture in learning function concepts of C programming language
This study investigated the effectiveness of a computer-based lesson used before versus after formal lecture and examined students\u27 difficulties in learning the function concepts of the C programming language. The subjects were fifteen university students who were randomly assigned to two treatment groups that received different instructional sequences. The subjects completed questionnaires, a pretest, the computer-based lesson and a posttest. During the experiment, students\u27 learning processes were observed, their program errors were recorded by the computer system, and some students\u27 reactions were video-taped;Results showed that students\u27 posttest scores were not significantly affected by whether the computer-based lesson was presented before or after the formal lecture. The study reported students\u27 difficulties in syntax, semantics, design and debugging of C programs on the function topics. Recommendations for programming instruction, such as providing appropriate examples, teaching design and debugging strategies and developing a notional machine , were discussed. Use of a team approach, interviews of students, use of think-aloud and investigations of students\u27 preferences were also made for future research
Knowledge restructing and the development of expertise in computer programming
This thesis reports a number of empirical studies exploring the development of expertise in computer programming. Experiments 1 and 2 are concerned with the way in which the possession of design experience can influence the perception and use of cues to various program structures. Experiment 3 examines how violations to standard conventions for constructing programs can affect the comprehension of expert, intermediate and novice subjects. Experiment 4 looks at the differences in strategy that are exhibited by subjects of varying skill level when constructing programs in different languages. Experiment 5 takes these ideas further to examine the temporal distribution of different forms of strategy during a program generation task. Experiment 6 provides evidence for salient cognitive structures derived from reaction time and error data in the context of a recognition task. Experiments 7 and 8 are concerned with the role of working memory in program generation and suggest that one aspect of expertise in the programming domain involves the acquisition of strategies for utilising display-based information. The final chapter attempts to bring these experimental findings together in terms of a model of knowledge organisation that stresses the importance of knowledge restructuring processes in the development of expertise. This is contrasted with existing models which have tended to place emphasis upon schemata acquisition and generalisation as the fundamental modes of learning associated with skill development. The work reported here suggests that a fine-grained restructuring of individual schemata takes places during the later stages of skill development. It is argued that those mechanisms currently thought to be associated with the development of expertise may not fully account for the strategic changes and the types of error typically found in the transition between novice, intermediate and expert problem solvers. This work has a number of implications for existing theories of skill acquisition. In particular, it questions the ability of such theories to account for subtle changes in the various manifestations of skilled performance that are associated with increasing expertise. Secondly, the work reported in this thesis attempts to show how specific forms of training might give rise to the knowledge restructuring process that is proposed. Finally, the thesis stresses the important role of display-based problem solving in complex tasks such as programming and highlights the role of programming language notation as a mediating factor in the development and acquisition of problem solving strategies
Automatic Sensor-free Affect Detection: A Systematic Literature Review
Emotions and other affective states play a pivotal role in cognition and,
consequently, the learning process. It is well-established that computer-based
learning environments (CBLEs) that can detect and adapt to students' affective
states can enhance learning outcomes. However, practical constraints often pose
challenges to the deployment of sensor-based affect detection in CBLEs,
particularly for large-scale or long-term applications. As a result,
sensor-free affect detection, which exclusively relies on logs of students'
interactions with CBLEs, emerges as a compelling alternative. This paper
provides a comprehensive literature review on sensor-free affect detection. It
delves into the most frequently identified affective states, the methodologies
and techniques employed for sensor development, the defining attributes of
CBLEs and data samples, as well as key research trends. Despite the field's
evident maturity, demonstrated by the consistent performance of the models and
the application of advanced machine learning techniques, there is ample scope
for future research. Potential areas for further exploration include enhancing
the performance of sensor-free detection models, amassing more samples of
underrepresented emotions, and identifying additional emotions. There is also a
need to refine model development practices and methods. This could involve
comparing the accuracy of various data collection techniques, determining the
optimal granularity of duration, establishing a shared database of action logs
and emotion labels, and making the source code of these models publicly
accessible. Future research should also prioritize the integration of models
into CBLEs for real-time detection, the provision of meaningful interventions
based on detected emotions, and a deeper understanding of the impact of
emotions on learning
Identification and Evaluation of Predictors for Learning Success and of Models for Teaching Computer Programming in Contemporary Contexts
Introductory undergraduate computer programming courses are renowned for higher than average failure and withdrawal rates when compared to other subject areas. The closer partnership between higher education and the rapidly expanding digital technology industry, as demonstrated by the establishment of new Degree Apprenticeships in computer science and digital technologies, requires efficient and effective means for teaching programming skills. This research, therefore, aimed to identify reliable predictors of success in learning programming or vulnerability to failure. The research also aimed to evaluate teaching methods and remedial interventions towards recommending a teaching model that supported and engaged learners in contemporary contexts that were relevant to the workplace.
Investigation of qualifications designed to prepare students for undergraduate computer science courses revealed that A-level entrants achieved significantly higher programming grades than BTEC students. However, there was little difference between the grades of those with and those without previous qualifications in computing or ICT subjects.
Analysis of engagement metrics revealed a strong correlation between extent of co-operation and programming grade, in contrast to a weak correlation between programming grade and code understanding. Further analysis of video recordings, interviews and observational records distinguished between the type of communication that helped peers comprehend tasks and concepts, and other forms of communication that were only concerned with completing tasks.
Following the introduction of periodic assessment, essentially converting a single final assessment to three staged summative assessment points, it was found that failing students often pass only one of the three assignment parts. Furthermore, only 10% of those who failed overall had attempted all three assignments. Reasons for failure were attributed to âsurfaceâ motivations (such as regulating efforts to achieve a minimum pass of 40%), ineffective working habits or stressful personal circumstances rather than any fundamental difficulty encountered with subject material.
A key contribution to pedagogical practice made by this research is to propose an âincrementalâ teaching model. This model is informed by educational theory and empirical evidence and comprises short cycles of three activities: presenting new topic information, tasking students with a relevant exercise and then demonstrating and discussing the exercise solution. The effectiveness of this model is evidenced by increased engagement, increased quiz scores at the end of each teaching session and increased retention of code knowledge at the end of the course
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
Computer Science at Community Colleges: Attitudes and Trends
This study aimed to understand the identity and attitude of students enrolled in computer science (CS) or programming-related course at community colleges nationwide. This study quantitatively evaluation data for estimating the relationships between studentsâ identity and attitudes toward computer science with prior programming experience and other demographic factors. I distributed the survey to community college faculty of computer science programs nationwide. Questions for this study were adapted from the Computing Attitude Survey developed by Weibe, Williams, Yang, & Miller (2003). Using two robust quantitative statistical methodologies, I investigated the correlations and predictability of previous programming experience, gender, race, and age with participants\u27 attitudes toward computer science. This study drew its inspiration from prior works of Dorn and Tew (2015) and Chen, Haduong, Brennan, Sonnert, and Sadler (2018), whose studies looked at previous experiences in programming with a favorable attitude toward computer science. The primary independent variable was a studentsâ prior programming experience. Under evaluation, the dependent variables were students\u27 programming experience and demographic characteristics such as race, gender, and age. This investigation showed a significant association between programming experience and attitude toward computer science. Among the demographic variables evaluated, students\u27 racial identity was the only factor found highly correlated with attitudes toward computer science. Future work will consider the association between participants\u27 accumulated college credit hours and specific programming language effects on computer science attitudes
Recommended from our members
A study of high school students\u27 learning Logo : microanalysis of uses of variables.
Task-related models for teaching and assessing iteration learning in high school
A number of studies report about studentsâ difficulties with basic flow-control constructs,
and specifically with iteration. Although such issues are less explored in the
context of pre-tertiary education, this seems to be especially the case for high-school
programming learning, where the difficulties concern both the âmechanicalâ features
of the notional machine as well as the logical aspects connected with the constructs,
ranging from the implications of loop conditions to a more abstract grasp of the
underlying algorithms.
For these reasons, the aim of this work is to: i) identifying methodological tools
to enhance a comprehensive understanding of the iteration constructs, ii) suggest
strategies to teach iterations.
We interviewed 20 experienced upper secondary teachers of introductory programming
in different kinds of schools. The interviews were mainly aimed at ascertaining
teachersâ beliefs about major sources of issues for basic programming
concepts and their approach to the teaching and learning of iteration constructs.
Once teachersâ perception of studentsâ difficulties have been identified, we have
submitted, to a sample of 164 students, a survey which included both questions on
their subjective perception of difficulty and simple tasks probing their understanding
of iteration. Data collected from teachers and students confirm that iteration is a
central programming concept and indicate that the treatment of conditions and
nested constructs are major sources of studentsâ difficulties with iteration.
The interviews allowed us to identify a list of problems that are typically presented
by teachers to explain the iterations. Hence, a catalogue of significant program
examples has been built to support studentsâ learning, tasks with characteristics
different from those typically presented in class.
Based on the outcome of previous steps, a survey to collect related information
and good practices from a larger sample of teachers has been designed. Data
collected have been analysed distinguishing an orientation towards more conceptual
objectives, and one towards more practical objectives. Furthermore, regarding
evaluation, a orientation focused on process-based assessment and another on
product-based assessment.
Finally, based on the outcome of previous studentsâ survey and drawing from
the proposed examples catalogue, we have designed and submitted a new studentsâ
survey, composed of a set of small tasks, or tasklets, to investigate in more depth
on high-school studentsâ understanding of iteration in terms of code reading abilities.
The chosen tasklets covered the different topics: technical program feature,
correlation between tracing effort and abstraction, the role of flow-charts, studentsâ
perception of self-confidence concerning high-level thinking skills.A number of studies report about studentsâ difficulties with basic flow-control constructs,
and specifically with iteration. Although such issues are less explored in the
context of pre-tertiary education, this seems to be especially the case for high-school
programming learning, where the difficulties concern both the âmechanicalâ features
of the notional machine as well as the logical aspects connected with the constructs,
ranging from the implications of loop conditions to a more abstract grasp of the
underlying algorithms.
For these reasons, the aim of this work is to: i) identifying methodological tools
to enhance a comprehensive understanding of the iteration constructs, ii) suggest
strategies to teach iterations.
We interviewed 20 experienced upper secondary teachers of introductory programming
in different kinds of schools. The interviews were mainly aimed at ascertaining
teachersâ beliefs about major sources of issues for basic programming
concepts and their approach to the teaching and learning of iteration constructs.
Once teachersâ perception of studentsâ difficulties have been identified, we have
submitted, to a sample of 164 students, a survey which included both questions on
their subjective perception of difficulty and simple tasks probing their understanding
of iteration. Data collected from teachers and students confirm that iteration is a
central programming concept and indicate that the treatment of conditions and
nested constructs are major sources of studentsâ difficulties with iteration.
The interviews allowed us to identify a list of problems that are typically presented
by teachers to explain the iterations. Hence, a catalogue of significant program
examples has been built to support studentsâ learning, tasks with characteristics
different from those typically presented in class.
Based on the outcome of previous steps, a survey to collect related information
and good practices from a larger sample of teachers has been designed. Data
collected have been analysed distinguishing an orientation towards more conceptual
objectives, and one towards more practical objectives. Furthermore, regarding
evaluation, a orientation focused on process-based assessment and another on
product-based assessment.
Finally, based on the outcome of previous studentsâ survey and drawing from
the proposed examples catalogue, we have designed and submitted a new studentsâ
survey, composed of a set of small tasks, or tasklets, to investigate in more depth
on high-school studentsâ understanding of iteration in terms of code reading abilities.
The chosen tasklets covered the different topics: technical program feature,
correlation between tracing effort and abstraction, the role of flow-charts, studentsâ
perception of self-confidence concerning high-level thinking skills
- âŠ