{'fraction_non_alphanumeric': 0.019945602901178604, 'fraction_numerical': 0.0027198549410698096, 'mean_word_length': 5.610778443113772, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Syntax Exercises in CS1

This paper investigates the idea of teaching programming language syntax before problem solving in Introductory Computer Programming (CS1). Theories of procedural skill acquisition imply that syntax should be taught with a pedagogy and curriculum quite different from that used in teaching problem solving. We draw from this literature to propose a practice-based pedagogy and curriculum to teach students syntax before they learn its application, something we call a "syntax-first" pedagogy, which uses skilled performance in syntax to scaffold learning of problem solving. We report results of a controlled study investigating whether learning syntax using pedagogy suitable for procedural skill acquisition (e.g. repetitive practice) prior to learning problem solving influences student performance. A syntax-first pedagogy is complementary to almost any other teaching approach: in our study, simply adding carefully designed syntax exercises to an existing CS1 course resulted in higher exam scores, lower student attrition, and evidence that plagiarism rates may be lower.