Abstract. Tabled evaluations can incorporate a number of features, including tabled negation, reduction with respect to the well-founded model, tabled constraints and answer subsumption. Many of these features are most efficiently evaluated using the Local evaluation strategy, which fully evaluates each mutually dependent set of tabled subgoals before returning answers to other subgoals outside of that set. In this paper, we introduce a formalism, Concurrent Local SLG by which multiple threads of computation concurrently perform Local evaluation of the well-founded semantics, and which is a framework for multi-threaded tabling in the XSB system. We prove several properties of Local evaluation within single-threaded tabled computation. We then extend SLG to a model of concurrency and show that the completeness and complexity of SLG are retained when computed by multiple threads. Finally, we extend Local evaluation to concurrent SLG, and show that the properties of Local evaluation continue to hold under concurrency.This paper provides an operational semantics for a type of concurrent TLP that relies on a scheduling strategy called Local evaluation [4]. The model of concurrency adopted is one in which threads of computation execute separate subgoals while sharing completed tables. The main idea behind Local evaluation is that it fully evaluates a single mutually dependent set of tabled subgoals before performing operations (such as returning answers) to subgoals outside of that set. Experiments in several implementations have shown that Local evaluation utilizes space efficiently (see e.g. [4,10]) and as a result it has been implemented for several Prologs.Another feature of Local evaluation is shown in an example in [4] in which tabling was used to compute the shortest path between two nodes. When Local evaluation was used the shortest path could be computed in a time proportional to the number of nodes in the graph, while if a non-Local scheduling strategy was used the time was proportional to the number of paths in the graph -i.e. the time was exponential in the number of nodes. Comparing path lengths to compute a shortest path can be considered as an instance of answer subsumption in which answers are retained and propagated only if they are maximal over a partial order or are a monotonic function of answers so far produced.Using SLG resolution [1] as a basis, this paper presents the following results about concurrent and Local evaluations.-As analysis of Local evaluation in the literature has been mostly empirical, Local SLG evaluation is formally defined in Section 2 and shown complete
Programming is one of the basic skills that students must acquire. However, learning to program is not an easy task. Also teaching programming is an arduous but challenging task, requiring close follow-up and constant and meaningful feedback.So the main question is: how can we help teachers and students to achieve these goals? We identified a tool that can be useful to this purpose. That is Virtual Programming Lab (VPL), a Moodle plugin that allows students to submit their code and get prompt feedback without the teacher's intervention. In order to test this concept, an experiment was performed with several classes of beginner programming students, in two editions of Algorithms and Programming course unit of the degree in Informatics Engineering lectured at the Informatics Engineering Department at the School of Engineering, Polytechnic Institute of Porto. The students were challenged to test their assignments in VPL with a set of test values previously defined by the teachers. After the experiments, we used surveys to gather the involved students' and teachers' opinion, and more than 70% of the students answered that they considered the VPL an added value for the teaching-learning process. The dynamics verified in the classes, the general opinion of the teachers, and the acceptance and participation of the students allow to classify the experience as positive. K E Y W O R D Sautomatic assessment, Java, teaching programming, virtual programming lab (VPL), eduScrum | INTRODUCTIONNowadays information technology is everywhere. However, only 50 years ago was its use limited to scientists and some strong sectors like banking. By the end of the last century, with the generalized use of personal computers and, later, with the decrease of prices and overall performance improvement in laptops, the use of computers was extended to all areas of activity and for a myriad of uses. Nonetheless, for computers to be useful, software is needed. Thus software development is a crucial activity for technological development in the era of information and knowledge. Therefore, also teaching programming has become essential for the development of computer applications and technology at large.Computer-related jobs have huge employability and, usually, good salaries (Mehta & Uhlig, 2017). There is a great demand for professionals in this area, and they all must have programming skills. As mentioned by Mehta and Uhlig (2016), there are not enough students enrolling in computer science degrees to narrow the gap between candidates and job openings. These professionals, mainly, graduated in higher education institutions linked to engineering areas and, in particular, in the field of computer engineering (Elliott, 2017).
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
hi@scite.ai
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.