Teaching and Learning Programming

153 papers on this topic

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)

Ain't Nobody Got Time For Coding: Structure-Aware Program Synthesis From Natural Language

Program synthesis from natural language (NL) is practical for humans and, once technically feasible, would significantly facilitate software development and revolutionize end-user programming. We...

12 citations 2018-10 arXiv (Cornell University)

A Proposal for an Interactive Shell Based on a Typed Lambda Calculus

This paper presents Favalon, a functional programming language built on the premise of a lambda calculus for use as an interactive shell replacement. Favalon seamlessly integrates with typed...

1 citations 2021-04 arXiv (Cornell University)

Learning to Execute

Recurrent Neural Networks (RNNs) with Long Short-Term Memory units (LSTM) are widely used because they are expressive and are easy to train. Our interest lies in empirically evaluating the...

599 citations 2014-10 arXiv (Cornell University)

Effect Handling for Composable Program Transformations in Edward2

Algebraic effects and handlers have emerged in the programming languages community as a convenient, modular abstraction for controlling computational effects. They have found several applications...

9 citations 2018-11 arXiv (Cornell University)

Proceedings of the 2020 Scheme and Functional Programming Workshop

This report aggregates the papers presented at the twenty-first annual Scheme and Functional Programming Workshop, hosted on August 28th, 2020, online and co-located with the twenty-fifth...

1 citations 2021-01 arXiv (Cornell University)

The Coq Proof Script Visualiser (coq-psv)

In this work, we present a visualisation tool that is able to process Coq proof scripts and generate a table representation of the contained proofs as $\LaTeX$ or PDF files. This tool has the aim...

1 citations 2021-01 arXiv (Cornell University)

Towards meta-interpretive learning of programming language semantics

We introduce a new application for inductive logic programming: learning the semantics of programming languages from example evaluations. In this short paper, we explored a simplified task in this...

4 citations 2019-07 Lecture notes in computer science

Learning Abstractions for Program Synthesis

Many example-guided program synthesis techniques use abstractions to prune the search space. While abstraction-based synthesis has proven to be very powerful, a domain expert needs to provide a...

14 citations 2018-04 Lecture notes in computer science