English
Related papers

Related papers: Steps Before Syntax: Helping Novice Programmers So…

200 papers

The development of data science expertise requires tacit, process-oriented skills that are difficult to teach directly. This study addresses the resulting challenge of empirically understanding how the problem-solving processes of experts…

Computers and Society · Computer Science 2026-02-18 Manuel Valle Torre , Marcus Specht , Catharine Oertel

Pseudocode is extensively used in introductory programming courses to instruct computer science students in algorithm design, utilizing natural language to define algorithmic behaviors. This learning approach enables students to convert…

Computers and Society · Computer Science 2024-10-30 Zhenyu Xu , Kun Zhang , Victor S. Sheng

Lowering the barriers to computer programming requires understanding how to scaffold learning. Parsons problems, which require learners to drag-and-drop blocks of code into the correct order and indentation, are proving to be beneficial for…

Human-Computer Interaction · Computer Science 2025-12-30 Carl Christopher Haynes-Magyar

In today's software world with its cornucopia of reusable software libraries, when a programmer is faced with a programming task that they suspect can be completed through the use of a library, they often look for code examples using a…

Software Engineering · Computer Science 2021-10-08 Geert Heyman , Rafael Huysegems , Pascal Justen , Tom Van Cutsem

Picat is a logic-based, multi-paradigm programming language that integrates features from logic, functional, constraint, and imperative programming paradigms. This paper presents solutions to several problems from the 2024 Advent of Code…

Programming Languages · Computer Science 2026-01-08 Neng-Fa Zhou , Cristian Grozea , Håkan Kjellerstrand , Oisín Mac Fhearaí

Navigating the diverse solution spaces of non-trivial software engineering tasks requires a combination of technical knowledge, problem-solving skills, and creativity. With multiple possible solutions available, each with its own set of…

Software Engineering · Computer Science 2023-01-31 Christoph Treude

With their remarkable ability to generate code, large language models (LLMs) are a transformative technology for computing education practice. They have created an urgent need for educators to rethink pedagogical approaches and teaching…

Human-Computer Interaction · Computer Science 2023-08-01 Paul Denny , Juho Leinonen , James Prather , Andrew Luxton-Reilly , Thezyrie Amarouche , Brett A. Becker , Brent N. Reeves

Novice programmers need to write basic code as part of the learning process, but they often face difficulties. To assist struggling students, we recently implemented personalized Parsons problems, which are code puzzles where students…

Computers and Society · Computer Science 2024-01-12 Xinying Hou , Barbara J. Ericson , Xu Wang

This document introduces PlDoc, a literate programming system for Prolog. Starting point for PlDoc was minimal distraction from the programming task and maximal immediate reward, attempting to seduce the programmer to use the system.…

Programming Languages · Computer Science 2007-11-06 Jan Wielemaker , Anjo Anjewierden

Large Language Models (LLMs), such as GitHub Copilot and ChatGPT have become popular among programming students. Students use LLMs to assist them in programming courses, including generating source code. Previous work has evaluated the…

Artificial Intelligence · Computer Science 2025-04-22 Emir Catir , Robin Claesson , Rodothea Myrsini Tsoupidi

Immediate feedback has been shown to improve student learning. In programming courses, immediate, automated feedback is typically provided in the form of pre-defined test cases run by a submission platform. While these are excellent for…

In computer science, students are encouraged to learn various programming languages such as Python, C++, and Java, equipping them with a broad range of technical skills and problem-solving capabilities. Nevertheless, the design of objective…

Programming Languages · Computer Science 2026-03-17 Jongwook Si , Sungyoung Kim

An introductory programming course (CS1) is an integral part of any undergraduate curriculum. Due to large number and diverse programming background of students, providing timely and personalised feedback to individual students is a…

Computers and Society · Computer Science 2017-02-03 Rajdeep Das , Umair Z. Ahmed , Amey Karkare , Sumit Gulwani

The Planning Domain Definition Language (PDDL) is the state-of-the-art language for specifying planning problems in artificial intelligence research. Writing and maintaining these planning problems, however, can be time-consuming and error…

Human-Computer Interaction · Computer Science 2020-08-26 Volker Strobel , Alexandra Kirsch

Many students in introductory programming courses fare poorly in the code writing tasks of the final summative assessment. Such tasks are designed to assess whether novices have developed the analytical skills to translate from the given…

Software Engineering · Computer Science 2024-04-04 Shruthi Ravikumar , Margaret Hamilton , Charles Thevathayan , Maria Spichkova , Kashif Ali , Gayan Wijesinghe

We introduce transductive program synthesis, a new formulation of the program synthesis task that explicitly leverages test inputs during synthesis. While prior approaches to program synthesis--whether based on natural language descriptions…

Artificial Intelligence · Computer Science 2025-10-22 Kang-il Lee , Jahyun Koo , Seunghyun Yoon , Minbeom Kim , Hyukhun Koh , Dongryeol Lee , Kyomin Jung

Modern computer programming languages are governed by complex syntactic rules. They are unlike natural languages; they require extensive manual work and a significant amount of learning and practicing for an individual to become skilled at…

Programming Languages · Computer Science 2012-04-03 Youssef Bassil , Aziz Barbar

Novice programmers often struggle to comprehend code due to vague naming, deep nesting, and poor structural organization. While explanations may offer partial support, they typically do not restructure the code itself. We propose code…

Software Engineering · Computer Science 2026-04-20 Subarna Saha , Alif Al Hasan , Fariha Tanjim Shifat , Mia Mohammad Imran

We present a computer-aided programming approach to concurrency. The approach allows programmers to program assuming a friendly, non-preemptive scheduler, and our synthesis procedure inserts synchronization to ensure that the final program…

As the world of technology advances, so do the tools that software developers use to create new programs. In recent years, software development tools have become more popular, allowing developers to work more efficiently and produce…

Software Engineering · Computer Science 2025-09-03 Larissa Salerno , Christoph Treude , Patanamon Thongtatunam