English
Related papers

Related papers: Investigating Compilation Errors of Students Learn…

200 papers

Background: Programming skills are advantageous to navigate today's society, so it is important to teach them to students. However, failure rates for programming courses are high, and especially students who fall behind early in…

Computers and Society · Computer Science 2024-02-06 Belinda Schantong , Dominik Gorgosch , Janet Siegmund

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

In Compiler Design courses, students learn how a program written in high level programming language and designed for humans understanding is systematically converted into low level assembly language understood by machines, through different…

Programming Languages · Computer Science 2022-04-14 Eduardo Adam Navas-López

The study of polarity in computation has revealed that an "ideal" programming language combines both call-by-value and call-by-name evaluation; the two calling conventions are each ideal for half the types in a programming language. But…

Logic in Computer Science · Computer Science 2023-06-22 Paul Downen , Zena M. Ariola

Increased demands in the field of scientific computation require that algorithms be more efficiently implemented. Maintaining correctness in addition to efficiency is a challenge that software engineers in the field have to face. In this…

Software Engineering · Computer Science 2018-02-15 Bernhard Beckert , Britta Nestler , Moritz Kiefer , Michael Selzer , Mattias Ulbrich

Compiler design is a course that discusses ideas used in construction of programming language compilers. Students learn how a program written in high level programming language and designed for humans understanding is systematically…

Programming Languages · Computer Science 2016-11-02 Divya Kundra , Ashish Sureka

Developing efficient hardware accelerators for mathematical kernels used in scientific applications and machine learning has traditionally been a labor-intensive task. These accelerators typically require low-level programming in Verilog or…

Hardware Architecture · Computer Science 2025-09-15 Doru Thom Popovici , Mario Vega , Angelos Ioannou , Fabien Chaix , Dania Mosuli , Blair Reasoner , Tan Nguyen , Xiaokun Yang , John Shalf

Functional languages have provided major benefits to the verification community. Although features such as purity, a strong type system, and computational abstractions can help guide programmers away from costly errors, these can present…

Programming Languages · Computer Science 2018-03-29 Bernd Finkbeiner , Felix Klein , Ruzica Piskac , Mark Santolucito

Formal methods for software correctness are critical to the future of software engineering - and so must be an essential part of software engineering education. Unfortunately, formal methods are often resisted by students due to perceived…

Software Engineering · Computer Science 2022-05-03 James Noble , David Streader , Isaac Oscar Gariano , Miniruwani Samarakoon

One of the important scaffolding tasks in programming learning is writing a line of code performing the necessary action. This allows students to practice skills in a playground with instant feedback before writing more complex programs and…

Computers and Society · Computer Science 2022-08-11 Oleg Sychev

Equational reasoning is one of the key features of pure functional languages such as Haskell. To date, however, such reasoning always took place externally to Haskell, either manually on paper, or mechanised in a theorem prover. This…

Programming Languages · Computer Science 2018-06-12 Niki Vazou , Joachim Breitner , Will Kunkel , David Van Horn , Graham Hutton

The costly human effort required to prepare the training data of machine learning (ML) models hinders their practical development and usage in software engineering (ML4Code), especially for those with limited budgets. Therefore, efficiently…

Software Engineering · Computer Science 2023-06-05 Qiang Hu , Yuejun Guo , Xiaofei Xie , Maxime Cordy , Lei Ma , Mike Papadakis , Yves Le Traon

Reasoning about code and explaining its purpose are fundamental skills for computer scientists. There has been extensive research in the field of computing education on the relationship between a student's ability to explain code and other…

Computers and Society · Computer Science 2024-04-03 Juho Leinonen , Paul Denny , Stephen MacNeil , Sami Sarsa , Seth Bernstein , Joanne Kim , Andrew Tran , Arto Hellas

While high-level languages come with significant readability and maintainability benefits, their performance remains difficult to predict. For example, programmers may unknowingly use language features inappropriately, which cause their…

Programming Languages · Computer Science 2018-09-13 Leif Andersen , Vincent St-Amour , Jan Vitek , Matthias Felleisen

Programming with versions is a paradigm that allows a program to use multiple versions of a module so that the programmer can selectively use functions from both older and newer versions of a single module. Previous work formalized…

Programming Languages · Computer Science 2024-03-19 Yudai Tanabe , Luthfan Anshar Lubis , Tomoyuki Aotani , Hidehiko Masuhara

This work introduces (1) a technique that allows large language models (LLMs) to leverage user-provided code when solving programming tasks and (2) a method to iteratively generate modular sub-functions that can aid future code generation…

Machine Learning · Computer Science 2023-12-05 Patrick Hajali , Ignas Budvytis

Producing code of good quality is an essential skill in software development. Code quality is an aspect of software quality that concerns the directly observable properties of code, such as decomposition, modularization, and code flow. Code…

Software Engineering · Computer Science 2024-11-06 Eduardo Carneiro Oliveira , Hieke Keuning , Johan Jeuring

This introduction to Haskell is written to optimize learning by programmers who already know OCaml.

Programming Languages · Computer Science 2014-07-22 Raphael Poss

Qualitative data analysis provides insight into the underlying perceptions and experiences within unstructured data. However, the time-consuming nature of the coding process, especially for larger datasets, calls for innovative approaches,…

Human-Computer Interaction · Computer Science 2024-03-12 Elisabeth Kirsten , Annalina Buckmann , Abraham Mhaidli , Steffen Becker

We present a novel approach for teaching logic and the metatheory of logic to students who have some experience with functional programming. We define concepts in logic as a series of functional programs in the language of the proof…

Programming Languages · Computer Science 2022-07-27 Frederik Krogsdal Jacobsen , Jørgen Villadsen