Teaching and Learning Programming

153 papers on this topic

Giving Feedback on Interactive Student Programs with Meta-Exploration

Developing interactive software, such as websites or games, is a particularly engaging way to learn computer science. However, teaching and giving feedback on such software is time-consuming --...

Improving Socratic Question Generation using Data Augmentation and Preference Optimization

The Socratic method is a way of guiding students toward solving a problem independently without directly revealing the solution to the problem. Although this method has been shown to significantly...

2 citations 2024-03 arXiv (Cornell University)

Guiding Genetic Programming with Graph Neural Networks

In evolutionary computation, it is commonly assumed that a search algorithm acquires knowledge about a problem instance by sampling solutions from the search space and evaluating them with a...

1 citations 2024-11 GECCO Companion

Learning Program Synthesis for Integer Sequences from Scratch

We present a self-learning approach for synthesizing programs from integer sequences. Our method relies on a tree search guided by a learned policy. Our system is tested on the On-Line...

Measuring The Impact Of Programming Language Distribution

Current benchmarks for evaluating neural code models focus on only a small subset of programming languages, excluding many popular languages such as Go or Rust. To ameliorate this issue, we...

5 citations 2023-02 arXiv (Cornell University)

PortfolioMentor: Multimodal Generative AI Companion for Learning and Crafting Interactive Digital Art Portfolios

Digital art portfolios serve as impactful mediums for artists to convey their visions, weaving together visuals, audio, interactions, and narratives. However, without technical backgrounds, design...

2 citations 2023-11 arXiv (Cornell University)

Multi-Representation Genetic Programming: A Case Study on Tree-based and Linear Representations

Existing genetic programming (GP) methods are typically designed based on a certain representation, such as tree-based or linear representations. These representations show various pros and cons...

1 citations 2024-05 Evolutionary Computation

When elephants nodded and dolls spoke: Bringing together robotics and storytelling for environmental literacy

Inculcating principles of environmental stewardship among the children and youth is needed urgently today for creating a sustainable future. This paper presents a model for promoting environment...

4 citations 2022-12 arXiv (Cornell University)

Efficient Feedback and Partial Credit Grading for Proof Blocks Problems

Proof Blocks is a software tool that allows students to practice writing mathematical proofs by dragging and dropping lines instead of writing proofs from scratch. Proof Blocks offers the...

8 citations 2022-04 Lecture notes in computer science

Using Scratch to Teach Undergraduate Students' Skills on Artificial Intelligence

This paper presents a educational workshop in Scratch that is proposed for the active participation of undergraduate students in contexts of Artificial Intelligence. The main objective of the...

165 citations 2019-03 IEEE Access

Embedding API Dependency Graph for Neural Code Generation

The problem of code generation from textual program descriptions has long been viewed as a grand challenge in software engineering. In recent years, many deep learning based approaches have been...

22 citations 2021-03 Empir Software Eng 26, 61 (2021)

Introducing Systems Thinking as a Framework for Teaching and Assessing Threat Modeling Competency

Computing systems face diverse and substantial cybersecurity threats. To mitigate these cybersecurity threats, software engineers need to be competent in the skill of threat modeling. In industry...

Automatic Assessment of the Design Quality of Python Programs with Personalized Feedback

The assessment of program functionality can generally be accomplished with straight-forward unit tests. However, assessing the design quality of a program is a much more difficult and nuanced...

18 citations 2021-06 arXiv (Cornell University)

Latent Programmer: Discrete Latent Codes for Program Synthesis

In many sequence learning tasks, such as program synthesis and document summarization, a key problem is searching over a large space of possible output sequences. We propose to learn...

27 citations 2020-12 arXiv (Cornell University)

Representing Partial Programs with Blended Abstract Semantics

Synthesizing programs from examples requires searching over a vast, combinatorial space of possible programs. In this search process, a key challenge is representing the behavior of a partially...

25 citations 2020-12 arXiv (Cornell University)

Multi Expression Programming -- an in-depth description

Multi Expression Programming (MEP) is a Genetic Programming variant that uses a linear representation of chromosomes. MEP individuals are strings of genes encoding complex computer programs. When...

11 citations 2021-09 Research Square

SPoC: Search-based Pseudocode to Code

We consider the task of mapping pseudocode to long programs that are functionally correct. Given test cases as a mechanism to validate programs, we search over the space of possible translations...

103 citations 2019-06 arXiv (Cornell University)

ImageLab: Simplifying Image Processing Exploration for Novices and Experts Alike

Image processing holds immense potential for societal benefit, yet its full potential is often accessible only to tech-savvy experts. Bridging this knowledge gap and providing accessible tools for...

1 citations 2024-01 arXiv (Cornell University)