Teaching and Learning Programming

153 papers on this topic

Automatic Differentiation via Effects and Handlers: An Implementation in Frank

Automatic differentiation (AD) is an important family of algorithms which enables derivative based optimization. We show that AD can be simply implemented with effects and handlers by doing so in...

3 citations 2021-01 arXiv (Cornell University)

Specifying Concurrent Programs in Separation Logic: Morphisms and Simulations

In addition to pre- and postconditions, program specifications in recent separation logics for concurrency have employed an algebraic structure of resources---a form of state transition...

A Visual Language for Composable Inductive Programming

We present Zoea Visual which is a visual programming language based on the Zoea composable inductive programming language. Zoea Visual allows users to create software directly from a specification...

4 citations 2020-09 arXiv (Cornell University)

Obsidian: Typestate and Assets for Safer Blockchain Programming

Blockchain platforms are coming into broad use for processing critical transactions among participants who have not established mutual trust. Many blockchains are programmable, supporting smart...

11 citations 2019-09 arXiv (Cornell University)

An Empirical Assessment on Affective Reactions of Novice Developers when Applying Test-Driven Development

We study whether and in which phase Test-Driven Development (TDD) influences affective states of novice developers in terms of pleasure, arousal, dominance, and liking. We performed a controlled...

12 citations 2019-07 Lecture notes in computer science

TreeCaps: Tree-Structured Capsule Networks for Program Source Code Processing

Program comprehension is a fundamental task in software development and maintenance processes. Software developers often need to understand a large amount of existing code before they can develop...

9 citations 2019-10 arXiv (Cornell University)

Neural Programmer-Interpreters

We propose the neural programmer-interpreter (NPI): a recurrent and compositional neural network that learns to represent and execute programs. NPI has three learnable components: a task-agnostic...

438 citations 2015-11 arXiv (Cornell University)

Stepping Stones to Inductive Synthesis of Low-Level Looping Programs

Inductive program synthesis, from input/output examples, can provide an opportunity to automatically create programs from scratch without presupposing the algorithmic form of the solution. For...

Predicting Algorithm Classes for Programming Word Problems

We introduce the task of algorithm class prediction for programming word problems. A programming word problem is a problem written in natural language, which can be solved using an algorithm or a...

Generating Concurrent Programs From Sequential Data Structure Knowledge Using Answer Set Programming

We tackle the problem of automatically designing concurrent data structure operations given a sequential data structure specification and knowledge about concurrent behavior. Designing concurrent...

1 citations 2021-09 EPTCS 345, 2021, pp. 219-233

A Grammar-Based Structural CNN Decoder for Code Generation

Code generation maps a program description to executable source code in a programming language. Existing approaches mainly rely on a recurrent neural network (RNN) as the decoder. However, we find...

17 citations 2018-11 arXiv (Cornell University)

Program Classification Using Gated Graph Attention Neural Network for Online Programming Service

The online programing services, such as Github,TopCoder, and EduCoder, have promoted a lot of social interactions among the service users. However, the existing social interactions is rather...

12 citations 2019-03 arXiv (Cornell University)

A Guide to Teaching Data Science

Demand for data science education is surging and traditional courses offered by statistics departments are not meeting the needs of those seeking training. This has led to a number of opinion...

109 citations 2016-12 American Statistician

Neural Guided Constraint Logic Programming for Program Synthesis

Synthesizing programs using example input/outputs is a classic problem in artificial intelligence. We present a method for solving Programming By Example (PBE) problems by using a neural model to...

19 citations 2018-09 arXiv (Cornell University)

The CodRep Machine Learning on Source Code Competition

CodRep is a machine learning competition on source code data. It is carefully designed so that anybody can enter the competition, whether professional researchers, students or independent...

22 citations 2018-07 arXiv (Cornell University)

Declarative Programming for Microcontrollers -- Datalog on Arduino

In this paper we describe an approach to programming microcontrollers based on the Arduino platform using Datalog as a clear and concise description language for system behaviors. The application...

6 citations 2019-08 Lecture notes in computer science

"Computer Science for all": Concepts to engage teenagers and non-CS students in technology

Knowledge in Computer Science (CS) is essential, and companies have increased their demands for CS professionals. Despite this, many jobs remain unfilled. Furthermore, employees with computational...

6 citations 2019-08 arXiv (Cornell University)

Embedded EthiCS: Integrating Ethics Broadly Across Computer Science Education

Computing technologies have become pervasive in daily life, sometimes bringing unintended but harmful consequences. For students to learn to think not only about what technology they could create,...

15 citations 2018-08 arXiv (Cornell University)