Debugging is an important aspect of programming. Most programming languages have some features and tools to facilitate debugging. As the debugging process is also frustrating, it requires good scaffolding, in which a ...
详细信息
ISBN:
(纸本)9798400701399
Debugging is an important aspect of programming. Most programming languages have some features and tools to facilitate debugging. As the debugging process is also frustrating, it requires good scaffolding, in which a debugger can be a useful tool [3]. Scratch is a visual block-based programming language that is commonly used to teach programming to children, aged 10-14 [4]. It comes with its own integrated development environment (IDE), where children can edit and run their code. This IDE misses some of the tools that are available in traditional IDEs, such as a debugger. In response to this challenge, we developed Blink. Blink is a debugger for Scratch with the aim of being usable to the young audience that typically uses Scratch. We present the currently implemented features of the debugger, and the challenges we faced while implementing those, both from a user-experience standpoint and a technical standpoint.
I present my thoughts on programming, software development, and computerscience (CS), and their inevitable relationship. Originally this was intended to help prepare some CS courses aimed (also) at non-CS university ...
详细信息
In this article, we present the first rigorous theoretical analysis of the generalisation performance of a Geometric Semantic Genetic programming (GSGP) system. More specifically, we consider a hill-climber using the ...
详细信息
Each "Communication Corner"essay is self-contained;however, they build on each other. For best results, before reading this essay and doing the exercise, go to the first essay "How an Ugly Duckling Beca...
详细信息
System programming expects programmers to have fine control over available resources to ensure both the correctness and efficiency of the system. programming languages designed for this type of task provide little abs...
详细信息
System programming expects programmers to have fine control over available resources to ensure both the correctness and efficiency of the system. programming languages designed for this type of task provide little abstraction of the underlying hardware. With greater power to interact directly with the machine comes greater responsibility for programmers to manage the hardware themselves to avoid any undefined behavior. C and C ++ have been the long-standing de facto languages in this field as they offer both the programming experience of a modern language and the ability to manipulate low-level resources with the abstraction of pointers. However, this responsibility is demanding for programmers, leading to numerous bugs caused by improper resource management. Rust is a rising system programming language aiming to combine both low-level resource manipulation and high-level resource management. The design philosophy of Rust is to make the compiler play a vital role in resource management. A set of static analysis unique to Rust are performed at compile time to ensure resources are handled correctly without runtime cost. Nevertheless, static analysis is inherently conservative and Rust addresses this by providing a feature called unsafe Rust, which is exempt from its strict static checks. Various unsafe operations, such as raw pointer dereferencing and foreign function calls, are only permitted within an unsafe code block. This is essential to make the language sufficiently expressive. Nonetheless, Rust's unsafe block only matters statically for type checking, without any runtime assurance. As a consequence, the effects of unsafe operations within an unsafe block can spread to the outside safe code and jeopardize its safety. We present Safety Block Division (SBD), a completely automatic solution to isolate safe Rust from unsafe Rust. The fundamental design of SBD is its safety data-flow analysis performed on Rust intermediate representation (IR) to fully incorporate la
In this paper,a stable two-sided matching(TSM)method considering the matching intention of agents under a hesitant fuzzy environment is *** method uses a hesitant fuzzy element(HFE)as its ***,the HFE preference matrix...
详细信息
In this paper,a stable two-sided matching(TSM)method considering the matching intention of agents under a hesitant fuzzy environment is *** method uses a hesitant fuzzy element(HFE)as its ***,the HFE preference matrix is transformed into the normalized HFE preference *** this basis,the distance and the projection of the normalized HFEs on positive and negative ideal solutions are ***,the normalized HFEs are transformed into agent *** the stable matching constraints,a multiobjective programming model with the objective of maximizing the satisfactions of two-sided agents is *** on the agent satisfaction matrix,the matching intention matrix of two-sided agents is *** to the agent satisfaction matrix and matching intention matrix,the comprehensive satisfaction matrix is set ***,the multiobjective programming model based on satisfactions is transformed into a multiobjective programming model based on comprehensive *** the G-S algorithm,the multiobjective programming model based on comprehensive satisfactions is solved,and then the best TSM scheme is ***,a terminal distribution example is used to verify the feasibility and effectiveness of the proposed method.
Introductory courses usually only teach a small subset of a programming language and its library, in order to focus on the general concepts rather than overwhelm students with the syntactic, semantic and API minutiae ...
详细信息
ISBN:
(纸本)9798400701399
Introductory courses usually only teach a small subset of a programming language and its library, in order to focus on the general concepts rather than overwhelm students with the syntactic, semantic and API minutiae of a particular language. This paper presents courseware that checks if a program only uses the subset of the Python language and library defined by the instructor. This allows to automatically check that programming examples, exercises and assessments only use the taught constructs. It also helps detect student code with advanced constructs, possibly copied from Q&A sites or generated by large language models. The tool is easy to install, configure and use. It also checks Python code in Jupyter notebooks, a popular format for interactive textbooks and assessment handouts.
programming contests are events whose history goes back 50 years, soon after the appearance of computers in universities, and are traditionally associated with undergraduate computerscience students. However, contest...
详细信息
Reinforcement learning(RL) has roots in dynamic programming and it is called adaptive/approximate dynamic programming(ADP) within the control community. This paper reviews recent developments in ADP along with RL and ...
详细信息
Reinforcement learning(RL) has roots in dynamic programming and it is called adaptive/approximate dynamic programming(ADP) within the control community. This paper reviews recent developments in ADP along with RL and its applications to various advanced control fields. First, the background of the development of ADP is described, emphasizing the significance of regulation and tracking control problems. Some effective offline and online algorithms for ADP/adaptive critic control are displayed, where the main results towards discrete-time systems and continuous-time systems are surveyed, ***, the research progress on adaptive critic control based on the event-triggered framework and under uncertain environment is discussed, respectively, where event-based design, robust stabilization, and game design are reviewed. Moreover, the extensions of ADP for addressing control problems under complex environment attract enormous attention. The ADP architecture is revisited under the perspective of data-driven and RL frameworks,showing how they promote ADP formulation ***, several typical control applications with respect to RL and ADP are summarized, particularly in the fields of wastewater treatment processes and power systems, followed by some general prospects for future research. Overall, the comprehensive survey on ADP and RL for advanced control applications has d emonstrated its remarkable potential within the artificial intelligence era. In addition, it also plays a vital role in promoting environmental protection and industrial intelligence.
In the rapidly evolving Generative AI (GenAI) landscape, source code and natural language are being mixed and used in new ways. This presents opportunities for rethinking teaching practice in Introductory programming ...
详细信息
ISBN:
(纸本)9798400706004
In the rapidly evolving Generative AI (GenAI) landscape, source code and natural language are being mixed and used in new ways. This presents opportunities for rethinking teaching practice in Introductory programming (CS1) courses that includes, but goes beyond, assessment. In this paper we examine the reasons why and how instructors who are early adopters of GenAI are using it in their teaching, and why others are not. We also explore the changes and adaptations that are currently being made to practice. This is achieved by synthesizing insights from several recent studies that have collected primary data from introductory programming instructors who are teaching with, considering teaching with, or actively not teaching with GenAI. Due to the fast pace of GenAI development and adoption, the fixed-pace and cyclical nature of education, and the relatively slow pace of research (including ethical approvals) and publication cycles, research with primary data from instructors is only being published relatively recently. In computing education, there is not yet enough published research with primary data from CS1 instructors to warrant a systematic literature review, although in the next year this will likely be possible. Based on an analysis of the nascent research that has been published, we propose emerging and flexible guidelines on how CS1 instructors could adapt their practice based on what others have done so far. These guidelines highlight important factors to consider when integrating GenAI in CS1 courses, which for many is only beginning.
暂无评论