Since linked lists serve as a bridge to understanding more advanced data structures, we believe that it is critical to identify students' misunderstandings early. We found that students had a good conceptual under...
详细信息
Since linked lists serve as a bridge to understanding more advanced data structures, we believe that it is critical to identify students' misunderstandings early. We found that students had a good conceptual understanding of how to insert and delete nodes in a singly linked list in c. However, many students continued to struggle with c syntax, pointer manipulation, and memory management needed to correctly implement singly linked lists. Students reported that the abstract nature of pointers, relating linked lists to the real world, and prior knowledge about dynamic arrays contributed the most to their difficulties with linked lists in c.
The cprogramminglanguagecourse is a basiccourse in colleges and universities, whose key teaching points differ slightly with the arrangement of the specialized courses. This paper proposed an integration teaching ...
详细信息
The cprogramminglanguagecourse is a basiccourse in colleges and universities, whose key teaching points differ slightly with the arrangement of the specialized courses. This paper proposed an integration teaching method based on the characteristics of the cprogramminglanguagecourse itself, combining theory instruction with practice teaching. The students are trained while learning. Thus, the students are able to get their ability in practice trained and improved when they acquire the theoretical knowledge.
This paper addresses the difficulties students face when learning and practicing pointers (i.e., variables storing the memory address of another variable as its value) in a computer programmingclass. To improve their...
详细信息
ISBN:
(纸本)9798400716195
This paper addresses the difficulties students face when learning and practicing pointers (i.e., variables storing the memory address of another variable as its value) in a computer programmingclass. To improve their understanding and practice, we have developed Tartare, an automaticc pointer statement and feedback generator. By creating statements with automatic feedback, students are given the opportunity to practice at will, each time on a different instance. In addition, if the statement must be done remotely and accounts in the final grade, Tartare discourages academic dishonesty since each student faces their own statement to solve. This paper describes the techniques implemented in Tartare, relying on a pattern template-based approach. The statement variety of Tartare is evaluated. Finally, current limitations and further improvements are discussed. We believe our approach for Tartare can be transposed for automatic exercises generation in various other fields.
This paper discusses a routing problem for planetary surface exploration with precedence constraints. In missions such as in-situ resource utilization (ISRU), exploration sites can be categorized into resource supply ...
详细信息
ISBN:
(数字)9781624107115
ISBN:
(纸本)9781624107115
This paper discusses a routing problem for planetary surface exploration with precedence constraints. In missions such as in-situ resource utilization (ISRU), exploration sites can be categorized into resource supply and consumption sites, and resource supply sites should be visited before consumption sites. The mathematical formulation of the proposed problem is defined as the vehicle routing problem with precedence constraints (VRPPc) and considers only pure precedence constraints without any complex constraints, such as time windows. Additionally, we employ a technique called feasible column generation to reduce the computation time of VRPPc and demonstrate its efficiency through numerical analysis in various cases.
The railway shunting operation sheet is the written plan of the shunting operation. In the current shunting operation preparation process, signalmen must input the plans manually for subsequent execution, which is ine...
详细信息
The railway shunting operation sheet is the written plan of the shunting operation. In the current shunting operation preparation process, signalmen must input the plans manually for subsequent execution, which is inefficient and at risk of misoperation. Here, an information extraction method is proposed to convert shunting operation sheet images to readable instructions for continuous Train control (cTc) systems. First, the shunting operation sheet images are preprocessed to facilitate subsequent text recognition based on the Paddle OcR model. Second, the table is located and reconstructed with the results of recognized contents and coordinates of texts. Then, the results of the table reconstruction were optimized based on the tabulation rules of shunting operation. Finally, tabular texts containing structural and attribute information are transcribed into eXtensible Markup language (XML) format, which can be read automatically by cTc systems based on the cprogramminglanguage. The proposed approach was evaluated on real-world samples, and the results showed that the comprehensive accuracy of information extraction was 0.85. Furthermore, a pre-processing combination strategy was established to improve the accuracy and generalizability of the proposed method.
constraint programming systems allow a diverse range of problems to be modelled and solved. Most systems require the user to learn a new constraint programminglanguage, which presents a barrier to novice and casual u...
详细信息
ISBN:
(纸本)9783031308192;9783031308208
constraint programming systems allow a diverse range of problems to be modelled and solved. Most systems require the user to learn a new constraint programminglanguage, which presents a barrier to novice and casual users. To address this problem, we present the coPTIcconstraint programming system, which allows the user to write a model in the well-known programminglanguagec, augmented with a simple API to support using a guess-and-check paradigm. The resulting model is at most as complex as an ordinary c program that uses naive brute force to solve the same problem. coPTIc uses the bounded model checker cBMc to translate the model into a SAT instance, which is solved using the SAT solver caDicaL. We show that, while this is less efficient than a direct translation from a dedicated constraint language into SAT, performance remains adequate for casual users. coPTIc supports constraint satisfaction and optimisation problems, as well as enumeration of multiple solutions. After a solution has been found, coPTIc allows the model to be run with the solution;this makes it easy to debug a model, or to print the solution in any desired format.
In order to improve innovation, promote the combination of theoretical teaching and experimental teaching, and give full play to the practical application of cloud computing and streaming media technology in course te...
详细信息
ISBN:
(纸本)9798350336115
In order to improve innovation, promote the combination of theoretical teaching and experimental teaching, and give full play to the practical application of cloud computing and streaming media technology in course teaching, a clanguageprogramming online teaching and experimental environment construction method based on cloud computing and streaming media technology was designed. Build Linux, FreeBSD, Windows and other operating systems on the basis of KVM virtual machine technology, extend the clanguage experimental environment from single-machine mode to the cloud with JupyterLab, and realize the data monitoring of teaching cloud platform experimental environment with Webservice and other technologies. RTMP protocol is used to transmit streaming media online video teaching data. This environment can meet the daily cloud learning needs of teachers and students, improve the teaching effect of clanguageprogramming, and realize the expansion of the experimental environment from single Pc to Android, iPad, iPhone and other mobile terminals, so as to facilitate students to practice in fragmented time in their spare time. This will help to achieve the goal of cultivating applied talents for computer majors.
Systems code often requires fine-grained control over memory layout and pointers, expressed using low-level (e.g., bitwise) operations on pointer values. Since these operations go beyond what basic pointer arithmetic ...
详细信息
Systems code often requires fine-grained control over memory layout and pointers, expressed using low-level (e.g., bitwise) operations on pointer values. Since these operations go beyond what basic pointer arithmetic in c allows, they are performed with the help of integer-pointer casts. Prior work has explored increasingly realistic memory object models for c that account for the desired semantics of integer-pointer casts while also being sound w.r.t. compiler optimisations, culminating in PNVI-ae-udi, the preferred memory object model in ongoing discussions within the ISO WG14 c standards committee. However, its complexity makes it an unappealing target for verification, and no tools currently exist to verify c programs under PNVI-ae-udi. In this paper, we introduce VIP, a newmemory object model aimed at supporting c verification. VIP sidesteps the complexities of PNVI-ae-udi with a simple but effective idea: a new construct that lets programmers express the intended provenances of integer-pointer casts explicitly. At the same time, we prove VIP compatible with PNVI-ae-udi, thus enabling verification on top of VIP to benefit from PNVI-ae-udi's validation with respect to practice. In particular, we build a verification tool, Refinedc-VIP, for verifying programs under VIP semantics. As the name suggests, Refinedc-VIP extends the recently developed Refinedc tool, which is automated yet also produces foundational proofs in coq. We evaluate Refinedc-VIP on a range of systems-code idioms, and validate VIP's expressiveness via an implementation in the cerberus c semantics.
Low-level systems code often needs to interact with data, such as page table entries or network packet headers, in which multiple pieces of information are packaged together as bitfield components of a single machine ...
详细信息
Low-level systems code often needs to interact with data, such as page table entries or network packet headers, in which multiple pieces of information are packaged together as bitfield components of a single machine integer and accessed via bitfield manipulations (e.g., shifts and masking). Most existing approaches to verifying such code employ SMT solvers, instantiated with theories for bit vector reasoning: these provide a powerful hammer, but also significantly increase the trusted computing base of the verification toolchain. In this work, we propose an alternative approach to the verification of bitfield-manipulating systems code, which we call BFF. Building on the Refinedc framework, BFF is not only highly automated (as SMT-based approaches are) but also foundationalDi.e., it produces a machine-checked proof of program correctness against a formal semantics for c programs, fully mechanized in coq. Unlike SMT-based approaches, we do not try to solve the general problem of arbitrary bit vector reasoning, but rather observe that real systems code typically accesses bitfields using simple, well-understood programming patterns: the layout of a bit vector is known up front, and its bitfields are accessed in predictable ways through a handful of bitwise operations involving bit masks. correspondingly, we center our approach around the concept of a structured bit vector-i.e., a bit vector with a known bitfield layout-which we use to drive simple and predictable automation. We validate the BFF approach by verifying a range of bitfield-manipulating c functions drawn from real systems code, including page table manipulation code from the Linux kernel and the pKVM hypervisor.
As computing evolves and libraries are produced for developers to create efficient software at a faster rate, the security of a modern program is an area of great concern because complex software breeds vulnerabilitie...
详细信息
As computing evolves and libraries are produced for developers to create efficient software at a faster rate, the security of a modern program is an area of great concern because complex software breeds vulnerabilities. Due to the criticality of computer systems security, cybersecurity education must maintain pace with the rapidly evolving technology industry. An example of growth in cybersecurity education can be seen in *** – a publicly available resource composed of modules that teach computer systems security. In reaction to the demand for the expansion of cybersecurity education, the *** developers designed a new set of modules for a course at Arizona State University and offered the same modules for public use. One of these modules, the “babyfile” module, was intended to focus on the exploitation of FILE structures in the cprogramminglanguage. FILE structures allow for fast and efficient file operations. Unfortunately, FILE structures have severe vulnerabilities which can be exploited to attain elevated privileges for reading data, writing data, and executing instructions. By researching the applications of FILE structure vulnerabilities, the babyfile module was designed with twenty challenges that teach *** users how to exploit programs by misusing FILE structures. These challenges are sorted by increasing difficulty and the intended solutions utilize all the vulnerabilities discussed in this paper. In addition to introducing users to exploits against FILE structures, babyfile also showcases a novel attack against the virtual function table, which is located at the end of a FILE structure.
暂无评论