16 research outputs found
Early Developmental Activities and Computing Proficiency
As countries adopt computing education for all pupils from primary school upwards, there are challenging indicators: significant proportions of students who choose to study computing at universities fail the introductory courses, and the evidence for links between formal education outcomes and success in CS is limited. Yet, as we know, some students succeed without prior computing experience. Why is this?
<br/><br/>
Some argue for an innate ability, some for motivation, some for the discrepancies between the expectations of instructors and students, and some – simply – for how programming is being taught. All agree that becoming proficient in computing is not easy. Our research takes a novel view on the problem and argues that some of that success is influenced by early childhood experiences outside formal education.
<br/><br/>
In this study, we analyzed over 1300 responses to a multi-institutional and multi-national survey that we developed. The survey captures enjoyment of early developmental activities such as childhood toys, games and pastimes between the ages 0 — 8 as well as later life experiences with computing. We identify unifying features of the computing experiences in later life, and attempt to link these computing experiences to the childhood activities.
<br/><br/>
The analysis indicates that computing proficiency should be seen from multiple viewpoints, including both skill-level and confidence. It shows that particular early childhood experiences are linked to parts of computing proficiency, namely those related to confidence with problem solving using computing technology. These are essential building blocks for more complex use. We recognize issues in the experimental design that may prevent our data showing a link between early activities and more complex computing skills, and suggest adjustments. Ultimately, it is hoped that this line of research will feed in to early years and primary education, and thereby improve computing education for all
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
What Do We Think We Think We Are Doing?: Metacognition and Self-Regulation in Programming
Metacognition and self-regulation are popular areas of interest in programming education, and they have been extensively researched outside of computing. While computing education researchers should draw upon this prior work, programming education is unique enough that we should explore the extent to which prior work applies to our context. The goal of this systematic review is to support research on metacognition and self-regulation in programming education by synthesizing relevant theories, measurements, and prior work on these topics. By reviewing papers that mention metacognition or self-regulation in the context of programming, we aim to provide a benchmark of our current progress towards understanding these topics and recommendations for future research. In our results, we discuss eight common theories that are widely used outside of computing education research, half of which are commonly used in computing education research. We also highlight 11 theories on related constructs (e.g., self-efficacy) that have been used successfully to understand programming education. Towards measuring metacognition and self-regulation in learners, we discuss seven instruments and protocols that have been used and highlight their strengths and weaknesses. To benchmark the current state of research, we examined papers that primarily studied metacognition and self-regulation in programming education and synthesize the reported interventions used and results from that research. While the primary intended contribution of this paper is to support research, readers will also learn about developing and supporting metacognition and self-regulation of students in programming courses
Automatic question generation about introductory programming code
Many students who learn to program end up writing code they do not understand. Most
of the available code evaluation systems evaluate the submitted solution functionally
and not the knowledge of the person who submitted it. This dissertation proposes a
system that generates questions about the code submitted by the student, analyses their
answers and returns the correct answers. In this way, students reflect about the code
they have written and the teachers of the programming courses can better pinpoint their
difficulties.
We carried out an experiment with undergraduate and master’s students in Computer
Science degrees in order to understand their difficulties and test the prototype’s
robustness. We concluded that most students, although understanding simple details
of the code they write, do not understand the behaviour of the program entirely, especially
with respect to program state. Improvements to the prototype and how to conduct
future experiments are also suggested.Muitos alunos que aprendem a programar acabam por escrever cĂłdigo que nĂŁo entendem.
A maior parte dos sistemas de avaliação de cĂłdigo disponĂveis avaliam a solução
submetida funcionalmente e não o conhecimento da pessoa que o submeteu. Esta dissertação
propõe um sistema que gera questões sobre o código submetido pelo aluno, analisa
as suas respostas e devolve as respostas corretas. Desta forma, os alunos refletem sobre
o código que escreveram e os professores das unidades curriculares de programação
conseguem identificar melhor as suas dificuldades.
Conduzimos uma experiĂŞncia com alunos de licenciatura e mestrado em Engenharia
Informática e cursos relacionados de forma a perceber quais as suas dificuldades e testar
a robustez do protĂłtipo. ConcluĂmos que a maior parte dos alunos, embora entendam
detalhes simples do cĂłdigo que escrevem, nĂŁo entendem o comportamento do programa
na sua totalidade e o estado que este possui num determinado momento. São também
sugeridas melhorias ao protótipo e à condução de futuras experiências
Automatic question generation about introductory programming code
Many students who learn to program end up writing code they do not understand. Most of the available code evaluation systems evaluate the submitted solution functionally and not the knowledge of the person who submitted it. This dissertation proposes a
system that generates questions about the code submitted by the student, analyses their answers and returns the correct answers. In this way, students reflect about the code they have written and the teachers of the programming courses can better pinpoint their
difficulties.
We carried out an experiment with undergraduate and master's students in Computer Science degrees in order to understand their difficulties and test the prototype's robustness. We concluded that most students, although understanding simple details
of the code they write, do not understand the behaviour of the program entirely, especially with respect to program state. Improvements to the prototype and how to conduct future experiments are also suggested.Muitos alunos que aprendem a programar acabam por escrever cĂłdigo que nĂŁo entendem. A maior parte dos sistemas de avaliação de cĂłdigo disponĂveis avaliam a solução submetida funcionalmente e nĂŁo o conhecimento da pessoa que o submeteu. Esta dissertação propõe um sistema que gera questões sobre o cĂłdigo submetido pelo aluno, analisa as suas respostas e devolve as respostas corretas. Desta forma, os alunos refletem sobre o cĂłdigo que escreveram e os professores das unidades curriculares de programação conseguem identificar melhor as suas dificuldades.
Conduzimos uma experiĂŞncia com alunos de licenciatura e mestrado em Engenharia Informática e cursos relacionados de forma a perceber quais as suas dificuldades e testar a robustez do protĂłtipo. ConcluĂmos que a maior parte dos alunos, embora entendam detalhes simples do cĂłdigo que escrevem, nĂŁo entendem o comportamento do programa na sua totalidade e o estado que este possui num determinado momento. SĂŁo tambĂ©m sugeridas melhorias ao protĂłtipo e Ă condução de futuras experiĂŞncias
Teaching informatics to novices: big ideas and the necessity of optimal guidance
This thesis reports on the two main areas of our research: introductory programming as the traditional way of accessing informatics and cultural teaching informatics through unconventional pathways.
The research on introductory programming aims to overcome challenges in traditional programming education, thus increasing participation in informatics. Improving access to informatics enables individuals to pursue more and better professional opportunities and contribute to informatics advancements. We aimed to balance active, student-centered activities and provide optimal support to novices at their level. Inspired by Productive Failure and exploring the concept of notional machine, our work focused on developing Necessity Learning Design, a design to help novices tackle new programming concepts. Using this design, we implemented a learning sequence to introduce arrays and evaluated it in a real high-school context. The subsequent chapters discuss our experiences teaching CS1 in a remote-only scenario during the COVID-19 pandemic and our collaborative effort with primary school teachers to develop a learning module for teaching iteration using a visual programming environment.
The research on teaching informatics principles through unconventional pathways, such as cryptography, aims to introduce informatics to a broader audience, particularly younger individuals that are less technical and professional-oriented. It emphasizes the importance of understanding informatics's cultural and scientific aspects to focus on the informatics societal value and its principles for active citizenship. After reflecting on computational thinking and inspired by the big ideas of science and informatics, we describe our hands-on approach to teaching cryptography in high school, which leverages its key scientific elements to emphasize its social aspects. Additionally, we present an activity for teaching public-key cryptography using graphs to explore fundamental concepts and methods in informatics and mathematics and their interdisciplinarity. In broadening the understanding of informatics, these research initiatives also aim to foster motivation and prime for more professional learning of informatics
Introducing Computational Thinking in K-12 Education: Historical, Epistemological, Pedagogical, Cognitive, and Affective Aspects
Introduction of scientific and cultural aspects of Computer Science (CS) (called "Computational Thinking" - CT) in K-12 education is fundamental. We focus on three crucial areas.
1. Historical, philosophical, and pedagogical aspects. What are the big ideas of CS we must teach? What are the historical and pedagogical contexts in which CT emerged, and why are relevant? What is the relationship between learning theories (e.g., constructivism) and teaching approaches (e.g., plugged and unplugged)?
2. Cognitive aspects. What is the sentiment of generalist teachers not trained to teach CS? What misconceptions do they hold about concepts like CT and "coding"?
3. Affective and motivational aspects. What is the impact of personal beliefs about intelligence (mindset) and about CS ability? What the role of teaching approaches?
This research has been conducted both through historical and philosophical argumentation, and through quantitative and qualitative studies (both on nationwide samples and small significant ones), in particular through the lens of (often exaggerated) claims about transfer from CS to other skills.
Four important claims are substantiated.
1. CS should be introduced in K-12 as a tool to understand and act in our digital world, and to use the power of computation for meaningful learning. CT is the conceptual sediment of that learning. We designed a curriculum proposal in this direction.
2. The expressions CT (useful to distantiate from digital literacy) and "coding" can cause misconceptions among teachers, who focus mainly on transfer to general thinking skills. Both disciplinary and pedagogical teacher training is hence needed.
3. Some plugged and unplugged teaching tools have intrinsic constructivist characteristics that can facilitate CS learning, as shown with proposed activities.
4. Growth mindset is not automatically fostered by CS, while not studying CS can foster fixed beliefs. Growth mindset can be fostered by creative computing, leveraging on its constructivist aspects
Considering primary school programming education using a comprehension-first approach
No abstract available
Impact of Scratch on the achievements of first-year computer science students in programming in some Nigerian polytechnics
To support the advancement of modern civilisation, our institutions of higher learning must produce
the right pool of professionals, who can develop innovative software. However, the teaching and
learning of the first programming language (CS1) remains a great challenge for most educators and
novice computer students. Indicators such as failure and attrition rates, and CS1 student engagement,
continue to show that conventional pedagogy does not adequately meet the needs of some beginning
CS students. For its ease in introducing novices to programming, Scratch—a visual programming
environment following the constructionism philosophy of Seymour Papert—is now employed even
in some higher education CS1 classes with mixed evidence of its impact. Scratch captures the
constructionist agenda by its slogan: “Imagine, Program, Share.”
Therefore, this study explored the impart of using a constructionist Scratch programming pedagogy
on higher education CS1 students’ achievements. This study also sought to compare the impacts of
the two CS1 modes: the conventional class - involving textual programming language, lectures and
labs, and the constructionist Scratch inquiry-based programming class. It further aims to discover if
gender, academic level, age, prior programming, and visual artistic abilities moderate the effects of
programming pedagogy on students’ achievements.
To realize the study’s aims, the study employed a quasi-experimental pretest-posttest nonequivalent
groups design, involving four intact CS1 classes of polytechnic students (N = 418) in north-central
Nigeria. The investigation was conducted in phases: a pilot (n = 236) and main (n=182) studies lasting
two academic sessions, with each study comprising one experimental and one control group. In each
session, learning in both modes lasted for six weeks. In both studies, purposive sampling was
employed to select institutions, and selected institutions were randomly assigned to treatment groups.
Instruments employed included CS1 Student Profile Questionnaire (CSPROQ) and Introductory Programming Achievement Test (IPAT). To strengthen the research design, I employed Coarsened
Exact Matching (CEM) algorithm—after conducting a priori power analysis—to generate matched
random samples of cases from both studies. Thus, research data employed in the analysis include:
from the pilot, 41 cases in each treatment group; from the main study, 42 cases in each treatment
group. Descriptive and inferential statistics were employed to find answers to research questions and
test the research hypothesis. Data from both studies satisfied the requirements for statistical tests
employed, i.e., t-test and ANCOVA. The alpha level used in testing hypotheses was p = 0.05. The
dependent variable is the IPAT post-test score, while the independent variables are treatment, gender,
age, academic achievement level, prior programming, and prior visual art. The covariate was the
IPAT pretest score. Statistical analyses were conducted using SPSS version 23.
The t-test results from both pilot and main studies indicated that, both programming pedagogies had
significant effects on student IPAT scores, although the effect of the constructionist Scratch
intervention was higher.
Results from the one-way ANCOVA analysis of both pilot and main study data—while controlling
for students’ IPAT pretest scores—yielded the same outcome: There was significant main effect of
treatment on students’ IPAT posttest scores, although the impact was moderate. Controlling for pre test scores, analysis of the main studies data yielded no significant main effects of: gender, age,
academic level, prior programming and prior visual artistic ability. The result from the main study
also reveals no interaction effect of treatment, gender, academic level, age, prior programming, and
prior artistic ability.
While the quality of CS1 students’ performance in each session varies as their IPAT achievements
show, yet the results of this research revealed a consistent pattern: Students in the constructionist
Scratch class outperformed those in the conventional class, although the impart was moderate.
This finding implies college students without prior programming experience can perform better in a
class following a constructionist Scratch programming pedagogy. The study recommends the use of
Scratch, following a constructionist pedagogy with first-year students in colleges, especially those
without prior background in programmingSchool of ComputingPh. D. (Computing Education