Best practices in programming need to be emphasized in a CS1 course as bad student habits persist if not reinforced well. The C++ programming language, although a relatively old language, has been regularly updated wi...
详细信息
Universal probabilistic programming languages (PPLs) make it relatively easy to encode and automatically solve statistical inference problems. To solve inference problems, PPL implementations often apply Monte Carlo i...
详细信息
ISBN:
(纸本)9783031572661;9783031572678
Universal probabilistic programming languages (PPLs) make it relatively easy to encode and automatically solve statistical inference problems. To solve inference problems, PPL implementations often apply Monte Carlo inference algorithms that rely on execution suspension. State-of-the-art solutions enable execution suspension either through (i) continuation-passing style (CPS) transformations or (ii) efficient, but comparatively complex, low-level solutions that are often not available in high-level languages. CPS transformations introduce overhead due to unnecessary closure allocations-a problem the PPL community has generally overlooked. To reduce overhead, we develop a new efficient selective CPS approach for PPLs. Specifically, we design a novel static suspension analysis technique that determines parts of programs that require suspension, given a particular inference algorithm. The analysis allows selectively CPS transforming the program only where necessary. We formally prove the correctness of the analysis and implement the analysis and transformation in the Miking CorePPL compiler. We evaluate the implementation for a large number of Monte Carlo inference algorithms on real-world models from phylogenetics, epidemiology, and topic modeling. The evaluation results demonstrate significant improvements across all models and inference algorithms.
This paper explores using large language models (LLM) for automatic and source-to-source programming across various cross-platform languages and libraries, including generating CUDA code for high performance computing...
详细信息
In Aotearoa New Zealand, assessment of programming for the national NCEA standards is carried out manually by teachers, many of whom are not experienced programmers. In an attempt to decrease teacher workload, we have...
详细信息
ISBN:
(纸本)9798400710056
In Aotearoa New Zealand, assessment of programming for the national NCEA standards is carried out manually by teachers, many of whom are not experienced programmers. In an attempt to decrease teacher workload, we have adapted Moodle CodeRunner [23] to assess a widely used recently released high school programming standard. This paper explores in detail how we have automated each criterion of the new standard, including dealing with judgement calls for the more subjective criteria. We then report on interviews with experienced programming teachers who were shown example tasks from our system, as well as model answers for each example. We found that teachers were enthusiastic about using automated assessment to assess the standard, and while there wasn't one agreed upon interpretation of the standard, teachers were happy with how the system supported marking. We also found no universal agreement among the level of context desired in programming questions to assess the standard, despite the small sample size. These interviews have given us confidence to both release these examples to teachers across New Zealand, many of whom are struggling with how to teach the standard, and to move forward with the pilot of our automated assessment system.
Given an optimization problem, combining knowledge from both (i) structural or algorithmic known results and (ii) new solving techniques, helps gain insight and knowledge on the aforementioned problem by tightening th...
详细信息
ISBN:
(纸本)9783031637742;9783031637759
Given an optimization problem, combining knowledge from both (i) structural or algorithmic known results and (ii) new solving techniques, helps gain insight and knowledge on the aforementioned problem by tightening the gap between lower and upper bounds on the sought optimal value. Additionally, this gain may be further improved by iterating (i) and (ii) until a fixed point is reached. In this paper, we illustrate the above through the classical Cyclic Bandwidth problem, an optimization problem which takes as input an undirected graph G = (V, E) with |V| = n, and asks for a labeling. of V in which every vertex v takes a unique value phi(v) is an element of [1;n], in such a way that B-c(G, phi) = max{min(uv)is an element of E(G){|phi(u)-phi(v)|, n-|phi(u)-phi(v)|}}, called the cyclic bandwidth of G, is minimized. Using the classic benchmark from the Harwell-Boeing sparse matrix collection introduced in [16], we show how to combine (i) previous results from the Cyclic Bandwidth literature, and (ii) new solving techniques, which we first present, and then implement, starting from the best results obtained in step (i). We show that this process allows us to determine the optimal cyclic bandwidth value for half of the instances of our benchmark, and improves the best known bounds for a large number of the remaining instances.
In this paper, we explore the impact of problem statement readability and lexical richness on cognitive load during programming exercises. Cognitive load theory suggests that the complexity of instructions can si...
详细信息
In recent years, the rapid advances in neural networks for Natural Language Processing (NLP) have led to the development of Large Language Models (LLMs), able to substantially improve the state-of-the-art in many NLP ...
详细信息
ISBN:
(纸本)9783031569562;9783031569579
In recent years, the rapid advances in neural networks for Natural Language Processing (NLP) have led to the development of Large Language Models (LLMs), able to substantially improve the state-of-the-art in many NLP tasks, such as question answering and text summarization. Among them, one particularly interesting application is automatic code generation based only on the problem description. However, it has been shown that even the most effective LLMs available often fail to produce correct code. To address this issue, we propose an evolutionary-based approach using Genetic Improvement (GI) to improve the code generated by an LLM using a collection of user-provided test cases. Specifically, we employ Grammatical Evolution (GE) using a grammar that we automatically specialize-starting from a general one-for the output of the LLM. We test 25 different problems and 5 different LLMs, showing that the proposed method is able to improve in a statistically significant way the code generated by LLMs. This is a first step in showing that the combination of LLMs and evolutionary techniques can be a fruitful avenue of research.
Prolog is a programming language that provides a high-level approach to software development. Python is a versatile programming language that has a vast range of libraries including support for data analysis and machi...
详细信息
With the growing proliferation of mobile devices, the interest in mobile learning environments increases. While many of them are provided as web apps, with limited effort they can be converted to Progressive Web Apps,...
详细信息
ISBN:
(纸本)9781450394338
With the growing proliferation of mobile devices, the interest in mobile learning environments increases. While many of them are provided as web apps, with limited effort they can be converted to Progressive Web Apps, providing user experience more resembling native mobile apps. In this work, we investigate, using the case of an open-source gamified programming learning environment FGPE PLE, how the user experience of its PWA version accessed on a mobile device compares to the user experience of the same learning environment yet accessed via a desktop browser.
This study examined the effectiveness of sketching flow diagrams in facilitating CS1 students' problem solving and performance on code writing tasks. Five students received training in design strategies and sketch...
详细信息
ISBN:
(纸本)9781450394338
This study examined the effectiveness of sketching flow diagrams in facilitating CS1 students' problem solving and performance on code writing tasks. Five students received training in design strategies and sketched flow diagrams prior to implementing their solution by writing code. Procedures in solving a sequence of four problems depicted in sketches and captured in keystroke log data were coded and scored for each student. The study results showed that specific and generative depictions of procedures predict the correctness of edits made to solutions.
暂无评论