20-Years Later: A Replication Study on Teaching CS1 Concepts
Bibliographic record
Abstract
Introduction: Computer Science Education does not have a universally defined set of concepts consistently covered in all introductory courses (CS1). One approach to understanding the concepts covered in CS1 is to ask educators. In 2004, Nell Dale did just this. She also collected their perceptions on challenging topics to teach. Dale mused how the findings of a similar survey conducted in later years would compare with her results. Objectives: We answered Dale’s call to consider changes in teaching CS1 concepts by performing a replication study 20 years later. Our goals were to determine how the teaching of CS1 concepts has changed and to identify concepts educators perceive as challenging to teach. Methods: We created a survey based on Dale’s original study and added concepts from the CS2023 recommended curricula to include CS1 concepts for today’s teaching practice. We used a mixed-methods approach to analyse the 178 responses from CS1 educators. Results: Our survey results show Python is predominately used to teach today’s CS1 courses, with educators continuing to teach basic programming concepts similar to 20 years ago. However, our survey shows recursion continues to be challenging to teach, with most secondary school educators perceiving it does not belong in CS1. Today’s educators also teach less of the CS1 concepts from 20 years ago, such as inheritance and polymorphism, and have a limited focus on ethics and professionalism in their courses. Participants also found good learning behaviours like thinking and planning strategies challenging to teach. Conclusion: We conclude our paper by discussing the challenges of conducting a replication study, which includes reproducing studies with limited or no access to the original instruments. We present future research opportunities raised by the study’s findings, including how to support educators in teaching the challenging concept of good learning behaviours and further refine curricular guidelines to remove ambiguity on concepts covered in CS1 and CS2 courses.
Fetched live from OpenAlex and de-inverted. Abstracts are not stored in this database: the inverted indexes are 8.6 GB of the frame’s 9.3 GB of text, and the host has 13 GB free.
How this classification was reachedexpand
Full frame machine prediction
Teacher imitationNot calibrated prevalence, not ground truth. Human validation pending. The Gemma side is a direct model label for every work in the frame, read from the title-only record. The Codex side is a classifier learned from the 10,348 direct Codex labels and calibrated to design-weighted sample rates; fields without enough sample support carry no Codex call. Candidate is the union of the two sides; consensus is their intersection. These outputs are machine_predicted_unvalidated and are not human labels.
Distilled classifier scores by category (both heads)
| Category | Codex | Gemma |
|---|---|---|
| Metaresearch | 0.031 | 0.068 |
| Meta-epidemiology (narrow) | 0.001 | 0.001 |
| Meta-epidemiology (broad) | 0.001 | 0.002 |
| Bibliometrics | 0.002 | 0.001 |
| Science and technology studies | 0.004 | 0.002 |
| Scholarly communication | 0.003 | 0.004 |
| Open science | 0.001 | 0.002 |
| Research integrity | 0.002 | 0.003 |
| Insufficient payload (model declined to judge) | 0.003 | 0.002 |
Machine scores (provisional)
The two teacher heads of the student model, read on this work. A score orders the frame for review; it never asserts a category, and the validation status ships verbatim with every row.
Baseline scores from an immature model (maturity gate not passed, 7 training rounds). Scores rank; they never assert a category.
score_only:v0-immature-baseline · verbatim from the scoring run: score_only means the number may rank works, and no category label ships from itClassification
machine, unvalidatedMachine predicted; a candidate call from one source (direct Gemma or distilled Codex), not a consensus.
How this classification was reached, model by model and score by score, is at the end of the page under "How this classification was reached".