English
Related papers

Related papers: Using Video Game Development to Motivate Program D…

200 papers

The purpose of a program analysis is to compute an abstract meaning for a program which approximates its dynamic behaviour. A compositional program analysis accomplishes this task with a divide-and-conquer strategy: the meaning of a program…

Programming Languages · Computer Science 2013-10-15 Azadeh Farzan , Zachary Kincaid

Decomposition and abstraction is an essential component of computational thinking, yet it is not always emphasized in introductory programming courses. In addition, as generative AI further reduces the focus on syntax and increases the…

Software Engineering · Computer Science 2025-12-09 Georgiana Haldeman , Peter Ohmann , Paul Denny

This report outlines an approach to learning generative models from data. We express models as probabilistic programs, which allows us to capture abstract patterns within the examples. By choosing our language for programs to be an…

Artificial Intelligence · Computer Science 2011-10-27 Irvin Hwang , Andreas Stuhlmüller , Noah D. Goodman

While proof is a central component of postsecondary mathematical study, proof construction has historically posed significant difficulties for students who intend to earn mathematics degrees at the undergraduate level. This work is…

History and Overview · Mathematics 2023-03-01 Bolanle Salaam

Design skills are increasingly recognized as a core competency for software professionals. Unfortunately, these skills are difficult to teach because design requires freedom and open-ended thinking, but new designers require a structured…

Computers and Society · Computer Science 2024-10-17 Christopher William Schankula , Habib Ghaffari Hadigheh , Spencer Smith , Christopher Kumar Anand

Reinforcement learning defines the problem facing agents that learn to make good decisions through action and observation alone. To be effective problem solvers, such agents must efficiently explore vast worlds, assign credit from delayed…

Machine Learning · Computer Science 2022-03-02 David Abel

Background: Software project management activities help to introduce software process models in Software Engineering courses. However, these activities should be adequately aligned with the learning outcomes and support student's…

Software Engineering · Computer Science 2021-01-21 Javier Gonzalez-Huerta , Jefferson Seide Molleri , Aivars Šablis , Ehsan Zabardast

Computer science's increased recognition as a prominent field of study has attracted students with diverse academic backgrounds. This has significantly increased the already high failure rates in introductory courses. To address this…

Computers and Society · Computer Science 2025-10-28 Eric Hics , Vinhthuy Phan , Kriangsiri Malasri

Humans flexibly solve new problems that differ qualitatively from those they were trained on. This ability to generalize is supported by learned concepts that capture structure common across different problems. Here we develop a…

Artificial Intelligence · Computer Science 2020-08-11 Lucas Y. Tian , Kevin Ellis , Marta Kryven , Joshua B. Tenenbaum

Reward design is a fundamental problem in reinforcement learning (RL). A misspecified or poorly designed reward can result in low sample efficiency and undesired behaviors. In this paper, we propose the idea of programmatic reward design,…

Machine Learning · Computer Science 2022-01-10 Weichao Zhou , Wenchao Li

Learning functional programming requires learning a substitution-based computational model. While substitution should be a familiar concept from high-school algebra, students often have difficulty applying it to new settings, such as…

Programming Languages · Computer Science 2025-08-06 Pedro Vasconcelos

This paper introduces a collection of board games specifically chosen to serve as a basis for programming exercises. We examine the attractiveness of board games in this context as well as features that make a particular game a good…

Human-Computer Interaction · Computer Science 2022-08-02 Maxim Mozgovoy , Marina Purgina

Creating functions is at the center of writing computer programs. But there has been little empirical research on how this is done and what are the considerations that developers use. We design an experiment in which we can compare the…

Software Engineering · Computer Science 2022-09-05 Alexey Braver , Dror G. Feitelson

Incorporating computer programming exercises in introductory physics is a delicate task that involves a number of choices that may have a strong affect on student learning. We present an approach that speaks to a number of common concerns…

Software Architecture, from definition to maintenance and evolution, is a complex aspect of software development and, consequently, a challenging subject when it comes to teaching it, and learning it. Many research efforts have been devoted…

Software Engineering · Computer Science 2023-03-01 Laura M. Castro

Solving algebraic word problems requires executing a series of arithmetic operations---a program---to obtain a final answer. However, since programs can be arbitrarily complicated, inducing them directly from question-answer pairs is a…

Artificial Intelligence · Computer Science 2017-10-24 Wang Ling , Dani Yogatama , Chris Dyer , Phil Blunsom

Introductory programming courses often emphasize mastering syntax and basic constructs before progressing to more complex and interesting programs. This bottom-up approach can be frustrating for novices, shifting the focus away from problem…

Computers and Society · Computer Science 2024-10-07 Chris Kerslake , Paul Denny , David H Smith , James Prather , Juho Leinonen , Andrew Luxton-Reilly , Stephen MacNeil

We demonstrate how students' use of modeling can be examined and assessed using student notebooks collected from an upper-division electronics lab course. The use of models is a ubiquitous practice in undergraduate physics education, but…

Physics Education · Physics 2017-02-15 Jacob T. Stanley , Weifeng Su , H. J. Lewandowski

Educational researchers have increasingly drawn attention to how students develop computational thinking (CT) skills, including in science, math, and literacy contexts. A key component of CT is the process of abstraction, a particularly…

Computers and Society · Computer Science 2019-01-08 Kevin Lin , David DeLiema

The authors describe their approach to teaching a course on finite fields and combinatorial applications, including block designs and error-correcting codes, using a hybrid of lectures and active learning. Under the discussed classroom…

History and Overview · Mathematics 2020-02-07 Christopher O'Neill , Lily Silverstein