OOPS: An S5 n Prover for Educational Settings
|
|
|
- Ashlyn Howard
- 10 years ago
- Views:
Transcription
1 M4M 2009 OOPS: An S5 n Prover for Educational Settings Gert van Valkenhoef 1,2 Department of Business and ICT, University of Groningen, P.O. Box 800, 9700 AV, Groningen, The Netherlands Elske van der Vaart 3 Department of Artificial Intelligence, University of Groningen, P.O. Box 407, 9700 AK, Groningen, The Netherlands Theoretical Biology Group, University of Groningen, P.O. Box 14, 9750 AA, Haren, The Netherlands Rineke Verbrugge 4 Department of Artificial Intelligence, University of Groningen, P.O. Box 407, 9700 AK, Groningen, The Netherlands Abstract We present OOPS, an open source, cross-platform, easy-to-run tableau prover for S5 n. OOPS is aimed at education in modal logics. Thus, it has several features that enable insight into its internal workings. Specifically, OOPS allows tableaux to be visualized and can generate counter-models for formulas that are not provable. Moreover, the OOPS Graphical User Interface (GUI) increases ease of use and an integrated general purpose scripting language (Lua) is used to provide convenient and powerful interactions with the OOPS tableau generator. Keywords: System Description, Modal Logic, Epistemic Logic, S5 n, Tableau Methods, Education, Visualization 1 Introduction In this paper, we describe OOPS 5, an Object Oriented Prover for S5 n. It is a tableau-based theorem prover, aimed at satisfiability checking, that is specifically designed for use in a classroom setting. Although not as efficient as highly optimized provers like MSPASS [12] and FaCT [11], or as flexible as highly extensible provers 1 Corresponding author. 2 [email protected] 3 [email protected] 4 [email protected] 5 This paper is electronically published in Electronic Notes in Theoretical Computer Science URL:
2 like LoTReC [7] and the Tableau Workbench [1], we believe OOPS offers a unique combination of features that make it particularly suitable for educational purposes. First, OOPS offers support for S5 n, the logic typically used to model human reasoning processes. As far as we are aware, there are currently no other theorem provers which do this. Furthermore, OOPS is capable of visualizing its tableau proofs, and of generating counter-models to formulas that are false. These two properties are very useful for educational proof tools, and they are shared by at least two other systems: LoTReC can display its tableau trees, and the Logics Workbench [10] can print its derivations in sequent calculi. Another feature OOPS has in common with LoTReC, as well as MSPASS, but with few other theorem provers, is its free and convenient distribution. OOPS is packaged as a ZIP file that includes all dependencies, and once extracted, can be run simply by double-clicking the resulting oops.jar file. This is true for any operating system, provided the Java VM is available. In contrast, the Tableau Workbench must be built from source, FaCT offers binaries only for Linux and Windows, and requires Lisp otherwise, and the Logics Workbench is not open source, and can be difficult to install, due to outdated dependencies. A fifth property that makes OOPS particularly attractive for educational use is its Graphical User Interface (GUI). Although simple, its GUI allows students to input formulas in an easy and intuitive format, or to save and load files. LoTReC, MSPASS and the the Logics Workbench also offer GUI-based access. OOPS final educational attribute is its integrated scripting facility. In our experience, most student projects involving theorem provers are efforts to model riddles, or game situations. This requires that students be able to build and extend theories, using loops and conditionals where necessary. Many proof tools, like the Logics Workbench, offer custom scripting languages for this purpose. OOPS, by contrast, integrates the existing Lua 6 scripting language. Lua can be used to call most of OOPS functions, and offers a rich input language. To summarize, our contribution is a proof system, OOPS, designed to support education in logics, specifically in multi-agent reasoning. For this purpose, OOPS features a tableau prover for S5 n that is capable of visualizing its tableau proofs and counter-models for formulas that are false. Furthermore, OOPS is platform independent and easy to install. Finally, OOPS offers a Graphical User Interface (GUI) and an integrated scripting language (Lua) that enables easy but powerful interactions with the prover. In the rest of this paper, we first offer a technical description of OOPS, including its proof system, its formal properties, its implementation in Java, and the details of its input language (Section 2). This is followed by a more detailed description of OOPS educational properties (Section 3), as well as a worked-out example (Section 4). We conclude with a discussion of current limitations and future work (Section 5). 6
3 2 Technical description In this section, we will first give a brief description of the tableau method used in OOPS and summarize the formal properties (soundness, completeness, complexity) of the system. Then, we explain how the tableau system is implemented in Java. Finally, we describe the input language for modal formulas that is provided by OOPS. 2.1 OOPS tableaux The OOPS tableau system for S5 n is a Java [8] implementation of the proof system ELtap [4,3]. ELtap, in turn, draws on [5] and [2]. [9] provides a good review of tableau methods for modal logics. Here, we summarize how tableaux are formalized in OOPS. For a complete description, see [14]. When we construct a tableau, we do so with the aim of creating a Kripke model in which a formula ϕ is satisfied. This is done by assuming ϕ is true and then systematically working out the implications of this assumption. Specifically, OOPS generates a collection of branches that each represent alternative ways of working out these implications. A branch B consists of a number of nodes. A node γ is a combination of a formula ψ and a label σ. A label is a systematically chosen name for a world in the Kripke model that is being constructed. Branches are created and expanded by the application of rules to existing nodes on a branch. A rule R consists of: A precondition pre(r), written above a horizontal bar, which is a node containing variables; A postcondition post(r), written below the horizontal bar, which is a list of nodes containing variables. There are two types of postconditions: Linear: add nodes to the current branch, written top-to-bottom; Branching: create a number of new branches, written left-to-right, separated by a vertical bar. Zero or more constraints, which restrict the values variables may take. The rules employed by OOPS are given in Table 1. A rule R is applicable to a branch B, if there is a node γ B that matches pre(r), such that no constraints are violated and R has not previously been applied to γ. In the case of modal rules, after the precondition pre(r) has matched, we may either need to create a new world (add a label part) or to match existing worlds (labels). In the first case, we create a label part that is uniquely identified, through a function that encodes formulas as valid label parts. In the latter case, the postcondition will contain a variable as a placeholder for one of the label parts. Such a postcondition must be applied to all labels that its label matches to. A branch B is closed if there is a label σ and a formula ψ, such that both (σ, ψ) B and (σ, ψ) B. A branch B is open if it is not closed and no more rules can be applied to it. Thus, an open branch corresponds to a successful attempt to satisfy ϕ, whereas a closed branch corresponds to a failed attempt to satisfy ϕ. Specifically, for an open branch B, the labels determine the set of worlds and the accessibility relations in the corresponding Kripke model. For each label, the set of formulas given for that label determines the valuation in the corresponding world
4 Double Negation Rule σ σ ϕ ϕ Conjunctive Rules Disjunctive Rules σ σ σ ϕ ψ ϕ ψ σ (ϕ ψ) σ ϕ σ ψ σ (ϕ ψ) σ ϕ σ ψ σ ϕ ψ σ ϕ σ ψ Possibility Rules (where i j) M σ.k i j ϕ σ.k i. ϕ j ϕ M σ.k i σ.k i. ϕ j j ϕ ϕ Possibility Rules Basic Necessity Rules (where i j) Basic Necessity Rules Special Necessity Rules (where i j) Special Necessity Rules M σ.k i i ϕ σ. ϕ i ϕ K σ.k i σ.k i.h j j ϕ ϕ K σ.k i i ϕ σ.h i ϕ σ.k i σ.k i T j ϕ ϕ R σ.k i i ϕ σ ϕ M σ.k i i ϕ σ. ϕ i ϕ K σ.k i j ϕ σ.k i.h j ϕ K σ.k i i ϕ σ.h i ϕ T σ.k i j ϕ σ.k i ϕ R σ.k i i ϕ σ ϕ Table 1 Tableau Extension Rules (see Section 2.2 for an explanation of how OOPS applies these rules.) in the Kripke model. A tableau for ϕ is closed if all branches are closed, otherwise it is open. Now, for any proof system, it is important that its proofs correspond exactly to the semantics of the logic. The proof system used by OOPS has been shown to be both sound and complete for S5 n [14]. Furthermore, in the same work, the implementation (Section 2.2) was shown to correspond to the formal description of the proof method. Unfortunately, this work also shows that the algorithm used by OOPS needs exponential time in the worst case, whereas satisfiability for S5 n is known
5 Connective i i OOPS Symbol & > = # i % i Precedence Table 2 OOPS Connectives. to be pspace-complete [9]. However, we believe that for educational purposes the functionality offered by OOPS (see Section 3) easily makes up for this shortcoming. Moreover, the implementation of these features does not depend on the specific proof algorithm used. Thus, as future work, the current algorithm may be replaced by one that is in pspace. 2.2 Implementation In order to ensure the exhaustive, but non-redundant application of Table 1 s rules, OOPS employs two data structures: the match queue and the necessities list. Whenever a node is added to the current branch, we attempt to match every possible rule to that node. The resulting matches are placed on the match queue. Now, the Basic Necessity rules (Table 1) pose a specific problem: the postcondition may apply to labels that have not been generated yet. To address this, partially matched postconditions of these rules are stored in the necessities list. Whenever a new label is generated, any matches from this list to the new label are added to the match queue. These data structures are specific to a branch, i.e., when a new branch is created, it receives a copy of the current match queue and necessities list. For reasons of efficiency, the match queue is a priority queue and rules can be given a numeric priority value, which specifies the order in which matches are applied to the tableau. In this way, we may define a strategy to close branches as soon as possible. For example, it is preferable to execute all possible non-branching propositional rules before attempting to execute any other rules. The rules are implemented in such a way that they are easily replaceable by a different ruleset. Moreover, the tableau generator allows the generation process to be monitored. This enables the decoupled implementation of such features as tableau visualization and counter-model construction (see Section 3). 2.3 Input language OOPS employs an input language for formulas implemented using the SableCC [6] compiler generator for Java. Propositions are input as strings of characters and digits, starting with a lowercase character. Agent identities are represented by natural numbers. OOPS uses the widely understood infix notation for logical formulas. Table 2 shows OOPS ascii equivalents for different logical operators, as well as their precedences; lower numbers indicate stronger bindings. In addition to this, the language allows the input of variables as placeholders for either (sub-)formulas or agent identities. This is useful in the definition of rules and allows one to create template formulas that can be instantiated in different ways, by substitution. Variables are strings of characters and digits that start with an
6 uppercase character. 3 Functionality In this section, we highlight a number of features of OOPS that we believe are important in an educational setting. Even though other systems may share some of OOPS features, there is no other system that possesses all of them. 3.1 Integrated Scripting In order for a theorem prover to be truly useful, it is not sufficient to be able to answer true or false given an input formula. Rather, our experience has shown that students will need to formulate and extend theories. Doing this by hand by editing a single large formula quickly becomes unmanageable. Moreover, we want to have a powerful toolbox to assist us in the formulation of larger theories. This toolbox should include general programming constructs such as loops and conditionals. Some other tools, such as the Logics Workbench, provide custom scripting languages for this purpose. The advantage of this approach is that the language can be tailored specifically to common usage of the prover. The disadvantage, however, is that developing a custom language is costly. Therefore, that the resulting language is likely to be lacking in expressive power. Furthermore, the user has to learn a language that has no application outside of the prover and for which support (i.e., documentation, user community and bug fixes) may be limited. To address these concerns, OOPS integrates the general-purpose scripting language Lua. Lua has been designed specifically to be an embeddable language and is widely used both as an extension language and as a front-end for libraries written in other languages. Thus, Lua enables us to define an environment that is tailored to the needs of theorem proving, while avoiding the concerns associated with implementing a custom language. See [13] for a good introduction to programming in Lua. Currently, most of OOPS functionality is available from Lua and more extensive support is being worked on. The above outlines our reasons for integrating OOPS with Lua. Now we briefly describe how OOPS can be used through its Lua interface. All OOPS methods are encapsulated in the oops namespace. The basis for interaction with OOPS through Lua is the theory concept. A theory is, simply put, a collection of formulas. The following example code creates a theory and adds a formula to it: th = oops. Theory ( ) th : add ( "#_1 p" ) We define a number of operations on theories: checking of consistency, provability of a formula within a theory and satisfiability of a formula within a theory: print ( th : c o n s i s t e n t ( ) ) t r u e print ( th : provable ( "#_2 #_1 p" ) ) f a l s e print ( th : s a t i s f i a b l e ( "~# _2 p" ) ) t r u e where starts a comment, here used to indicate the output produced by the print statement. Now, to aid in the construction of theories, we allow the explicit creation of formulas, on which we have defined the operation of substitution. For example:
7 Figure 1. The OOPS Graphical User Interface. th = oops. Theory ( ) f = oops. Formula ( "#_A V" ) for i =1,4,1 do th : add ( f : s u b s t i t u t e ({V = "p q" }, {A = i } ) ) end print ( th ) which expresses that each of the agents 1, 2, 3 and 4 knows (p q). The resulting output is: [# 4 ( p q ), # 3 ( p q ), # 1 ( p q ), # 2 ( p q ) ] This completes our description of how OOPS is called from Lua. It must be noted that Lua is a very powerful and complete language and that much more can be achieved than is suggested by the above examples. For example, command-line interaction with the user is readily available through Lua. 3.2 Graphical User Interface As is discussed above, Lua provides a convenient scripting interface to OOPS. However, modern computer users do not expect to run applications from the commandline. Even if they are used to this concept, it is not always the most convenient method of interaction. Therefore, OOPS includes a very simple Graphical User Interface (GUI), in which scripts can be displayed, edited and executed (Figure 1). In addition, scripts can be loaded from and saved to a file. For those who prefer to use an external editor (e.g., there are many editors that offer syntax highlighting for Lua), a single key combination reloads a modified file from the file system. The application consists of two panels: the top panel shows the current script and the bottom panel shows the output. Though minimal, the GUI greatly enhances the convenience with which OOPS can be used. Firstly, script and output are shown in one place, allowing for easy cross-referencing. Second, scripts are run through a single key combination (or invocation from the menu). Finally, the load, save and refresh functionalities give the user the freedom to use the integrated editor or an external editor of choice with equal convenience.
8 Figure 2. Visualization of the tableau that checks provability of ϕ, by attempting to satisfy ϕ, where ϕ = (( 1 p 1 p) 1 (p p)). In this case, the tableau is closed (i.e. ϕ is provable), as indicated by the = (m, n) under each branch, where m and n indicate the line numbers at which two contradicting formulas are found. 3.3 Free and Convenient Distribution As we noted in Section 1, most current proof tools have problems related to either platform dependence, aging dependencies, lack of maintenance or difficult installation procedures. OOPS addresses these problems in several ways. First, OOPS is implemented in pure Java, which means that OOPS will run on any operating system for which a Java virtual machine is available. This is true for most operating systems available today. Second, OOPS is distributed as a ZIP file that includes all dependencies. No installation is needed, one simply extracts the ZIP file and double-clicks the resulting oops.jar file. Hence, OOPS is platform independent and easy to run, having no dependencies apart from the Java VM and what is provided in the OOPS distribution. The concern of continued maintenance is harder to address. To ensure that OOPS can be used and extended in the future by anyone who wishes to do so, we provide the full source code 7 under the GNU General Public License (GPL). It is our hope that others will contribute extensions to OOPS. 3.4 Visualization of Tableaux When a student is learning to work with modal logics, a prover can often give surprising results. He or she may encounter undesirable outcomes when constructing a theory and would like to be able to debug the theory by inspecting the proof process. Moreover, inspecting generated tableaux may enhance understanding of tableau methods and the semantics of modal logics in general. To support this, OOPS includes a visualization module for labeled tableaux. Figure 2 shows an example of such a visualization. The tableau is drawn as a tree. In the tree, nodes are numbered in the order in which they are added (left-most on each line). After the node number, the label is shown, followed by the formula. Finally, the rule that resulted in the creation of the specific node and the node number to which the rule matched are given. The visualization is implemented as an observer on the tableau generator (see Section 2.2). The Lua code to generate Figure 2 is as follows (note that the command-line output will be true): oops. a t t a c h T a b l e a u V i s u a l i z e r ( ) 7
9 print ( oops. Theory ( ) : provable ( "(# _1 p #_1 ~p) > #_1(p ~p)" ) ) 3.5 Visualization of Counter-Models In addition to being able to view the tableau, it may be helpful to be able to inspect a model that the tableau corresponds to. In case the tableau is open, the generated model will generally be more insightful, as it does not contain any redundant information. As is the case for tableau visualization, visualization of (counter-)models may enhance understanding of the semantics of modal logics. Figure 3 is generated by the following Lua code (note that the command-line output will be false): oops. attachmodelconstructor ( ) print ( oops. Theory ( ) : provable ( "#_1 p #_1 ~p" ) ) oops. showmodel ( ) As the reader will notice, the invocation of the model visualization is done differently from the tableau visualization. This is because we treat models as entities in their own right. In fact, the call oops.getmodel() can be used to retrieve the most recently constructed model, if the last invocation of the tableau generator resulted in an open tableau. The Lua print function will output a textual representation of the model. However, further programmatic manipulation and inspection of models is future work. 4 Example To illustrate the educational potential of OOPS, we present a worked-out example that models an exercise we have assigned to students of multi-agent systems in the past, at the Department of Artificial Intelligence at the University of Groningen. We show how OOPS scripting can facilitate model construction and how its ability to visualize Kripke models can facilitate understanding of S5 n. Our example concerns a simplified version of the Wise Persons puzzle: There are two wise persons, Abelard (1) and Heloise (2). It is known to everyone that there are three hats: two red ones and one white one. The king puts a hat on the head of each of the two wise persons, who cannot see their own hat but can see the other person s hat (and they both know this). The king asks them Figure 3. Visualization of a counter-model for ϕ = ( 1 p 1 p). The main world is indicated in blue.
10 sequentially if they know the color of the hat on their own head. The first person, Abelard, says that he does not know; the second person, Heloise, says that she knows. Exercise: find out what must be the color of Heloise s hat. To model this problem, let us define the propositions r1 for Abelard wears a red hat, w1 for Abelard wears the white hat, r2 for Heloise wears a red hat and w2 for Heloise wears the white hat. In the full implementation of this example, available online, 8 a number of utility functions are given. conj(f1, f2) safely gives the conjunction of two formulas, knows(a1, f) gives the formula a1 f and knows2(a1, a2, f) for a1 a2 f. Finally, printabelard(th) and printheloise(th) give informative output on the knowledge states of Abelard and Heloise, given the theory th. The initial situation can be modelled by simply defining the basic facts given in the puzzle and stating that both Abelard and Heloise are aware of these facts to sufficient depth. Of course, the background information should be common knowledge, but this is not possible in pure S5 n. So we give knowledge to depth 2, the minimum level required to solve this puzzle. The Lua code is as follows: each person has only one hat onehat = "(r1 = ~w1) & (r2 = ~w2)" t h e r e i s only one w hite hat onewhite = "(w1 > r2) & (w2 > r1)" Abelard can see Heloise s hat a b e l a r d S e e s = "#_1 w2 #_1 r2" H e l o i s e can see Abelard s hat h e l o i s e S e e s = "#_2 w1 #_2 r1" background knowledge : background = c o n j ( c o n j ( onehat, onewhite ), c o n j ( a b e l a r d S e e s, h e l o i s e S e e s ) ) add t h e background and t h e wise persons knowledge about i t ( to depth 2) th = oops. Theory ( ) th : add ( background ) th : add ( knows ( "1", background ) ) th : add ( knows ( "2", background ) ) th : add ( knows2 ( "2", "1", background ) ) th : add ( knows2 ( "1", "2", background ) ) We can evaluate the agents knowledge in the initial situation using the following statements: make sure we can show t h e counter model oops. attachmodelconstructor ( ) print ( " Initial Situation : " ) p r i n t A b e l a r d ( th ) p r i n t H e l o i s e ( th ) oops. showmodel ( ) The counter-model to Heloise knowing the color of her hat is shown in Figure 4. The console output is as follows: I n i t i a l S i t u a t i o n : Abelard doesn t know H e l o i s e doesn t know 8
11 Figure 4. Counter-model to Heloise knowing the color of her own hat in the initial situation of the wise persons puzzle. The counter-model to Abelard knowing the color of his hat is almost identical, except that the relations between the worlds are for agent 1 (Abelard), not agent 2 (Heloise). In the puzzle, Abelard is asked if he knows the color of his hat and responds that he doesn t. Heloise can now derive the color of her hat. We model this announcement by giving Heloise the knowledge that Abelard doesn t know the color of his hat. A f t e r Abelard announces he doesn t know : abelardknows = "#_1 w1 #_1 r1" th : add ( oops. Formula ( "#_2 ~ F" ) : s u b s t i t u t e ( {F = abelardknows }, { } ) ) print ( " After Abelard s announcement : " ) p r i n t A b e l a r d ( th ) oops. showmodel ( ) p r i n t H e l o i s e ( th ) print ( " Consistent : ".. tostring ( th : c o n s i s t e n t ( ) ) ) The output is as follows: A f t e r Abelard s announcement : Abelard doesn t know H e l o i s e knows h i s / her hat i s red C o n s i s t e n t : t r u e Clearly, Abelard still doesn t know the color of his own hat (his own announcement doesn t help him), but Heloise is now aware that her hat is red, which is the correct solution to the puzzle. The counter-model generated by the above code is nearly the same as the one shown in Figure 4, so it is not shown separately. This example demonstrates the kind of assignment that can be designed with OOPS. It gives students the experience of using a theorem prover, and lets them experiment with different assumptions, providing insight into the formal logic that underlies a familiar riddle. This can all be done quickly and easily due to OOPS s integrated scripting facility and GUI. 5 Conclusions and Further Work In this paper, we have presented OOPS, a cross-platform, easy to install and open source tableau prover for S5 n. OOPS provides users with a graphical user interface, an integrated scripting language, tableau visualization and counter-model generation. We believe these features make OOPS more suited for educational use than other similar systems. Given this, we now identify several directions for further work on OOPS. First of all, although the implementation currently allows new rule sets to be implemented
12 relatively easily, this requires extending the Java source code and recompiling OOPS. To remedy this, we would like to implement rule sets as Lua modules and provide such modules for several logics. Lua is specifically designed to make it easy to implement domain specific languages. This facility can be used to provide a more direct integration of the formula input syntax with Lua, making formula input seem like native language support. The Lua bindings in general should be improved, but this will require further input from actual use as an educational tool. We would also like to implement an algorithm that allows the S5 n tableau to be generated in pspace, as our current implementation may require an exponential amount of space. Furthermore, we would like to have a more complete set of tools to interact with theories, formulas and Kripke models. For example, it should be possible to simplify formulas and theories. In the case of Kripke models, we would like to be able to construct and alter models ourselves and to perform operations such as model checking and bisimulation. Finally, the GUI should allow users to provide keyboard input to Lua scripts (through standard in ) so that one can develop interactive OOPS scripts. References [1] Abate, P. and R. Goré, The Tableau Workbench, Electronic Notes in Theoretical Computer Science 231 (2009), pp [2] Beckert, B. and R. Gore, Free variable tableaux for propositional modal logics, Automated Reasoning With Analytic Tableaux Related Methods 1227 (1997), pp [3] de Boer, M., Praktische Bewijzen in Public Announcement Logica, Master s thesis, University of Groningen, Groningen, the Netherlands (2006). [4] de Boer, M., KE tableaux for Public Announcement Logic, in: B. Dunin-Kepliçz and R. Verbrugge, editors, FAMAS 007, 2007, pp [5] Fitting, M. and R. Mendelsohn, First-Order Modal Logic, Synthese Library 277, Kluwer Academic Publishers, [6] Gagnon, É., SableCC, an Object-Oriented Compiler Framework, Master s thesis, McGill University, Montreal, Quebec, Canada (1998). [7] Gasguet, O., A. Herzig, D. Longin and M. Sahade, LoTReC: Logical Tableaux Research Engineering Companion, in: B. Beckert, editor, TABLEAUX 2005 (2005), pp [8] Gosling, J., B. Joy, G. L. Steele and G. Bracha, The Java Language Specification, The Java Series, Prentice Hall PTR, 2005, third edition. [9] Halpern, J. Y. and Y. Moses, A guide to completeness and complexity for modal logics of knowledge and belief, Artificial Intelligence 54 (1992), pp [10] Heuerding, A., G. Jäger, S. Schwendimann and M. Seyfried, The Logics Workbench LWB: A snapshot, Euromath Bulletin 2 (1996), pp [11] Horrocks, I., The FaCT system, in: H. de Swart, editor, TABLEAUX 1998 (1998), pp [12] Hustadt, U. and R. Schmidt, MSPASS: Modal reasoning by translation and first-order resolution, in: R. Dyckhoff, editor, TABLEAUX 2000 (2000), pp [13] Ierusalimschy, R., Programming in Lua, Lua.org, 2006, 2nd edition. [14] van Valkenhoef, G., Elaborations on OOPS project report (2008), ~valkenhoef/oops/elaborations.pdf.
CHAPTER 7 GENERAL PROOF SYSTEMS
CHAPTER 7 GENERAL PROOF SYSTEMS 1 Introduction Proof systems are built to prove statements. They can be thought as an inference machine with special statements, called provable statements, or sometimes
Part 1 Foundations of object orientation
OFWJ_C01.QXD 2/3/06 2:14 pm Page 1 Part 1 Foundations of object orientation OFWJ_C01.QXD 2/3/06 2:14 pm Page 2 1 OFWJ_C01.QXD 2/3/06 2:14 pm Page 3 CHAPTER 1 Objects and classes Main concepts discussed
Optimizing Description Logic Subsumption
Topics in Knowledge Representation and Reasoning Optimizing Description Logic Subsumption Maryam Fazel-Zarandi Company Department of Computer Science University of Toronto Outline Introduction Optimization
Foundational Proof Certificates
An application of proof theory to computer science INRIA-Saclay & LIX, École Polytechnique CUSO Winter School, Proof and Computation 30 January 2013 Can we standardize, communicate, and trust formal proofs?
Algorithm & Flowchart & Pseudo code. Staff Incharge: S.Sasirekha
Algorithm & Flowchart & Pseudo code Staff Incharge: S.Sasirekha Computer Programming and Languages Computers work on a set of instructions called computer program, which clearly specify the ways to carry
Course MS10975A Introduction to Programming. Length: 5 Days
3 Riverchase Office Plaza Hoover, Alabama 35244 Phone: 205.989.4944 Fax: 855.317.2187 E-Mail: [email protected] Web: www.discoveritt.com Course MS10975A Introduction to Programming Length: 5 Days
Model Checking: An Introduction
Announcements Model Checking: An Introduction Meeting 2 Office hours M 1:30pm-2:30pm W 5:30pm-6:30pm (after class) and by appointment ECOT 621 Moodle problems? Fundamentals of Programming Languages CSCI
KITES TECHNOLOGY COURSE MODULE (C, C++, DS)
KITES TECHNOLOGY 360 Degree Solution www.kitestechnology.com/academy.php [email protected] [email protected] Contact: - 8961334776 9433759247 9830639522.NET JAVA WEB DESIGN PHP SQL, PL/SQL
Formal Engineering for Industrial Software Development
Shaoying Liu Formal Engineering for Industrial Software Development Using the SOFL Method With 90 Figures and 30 Tables Springer Contents Introduction 1 1.1 Software Life Cycle... 2 1.2 The Problem 4 1.3
Parsing Technology and its role in Legacy Modernization. A Metaware White Paper
Parsing Technology and its role in Legacy Modernization A Metaware White Paper 1 INTRODUCTION In the two last decades there has been an explosion of interest in software tools that can automate key tasks
Chapter 12 Programming Concepts and Languages
Chapter 12 Programming Concepts and Languages Chapter 12 Programming Concepts and Languages Paradigm Publishing, Inc. 12-1 Presentation Overview Programming Concepts Problem-Solving Techniques The Evolution
Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science. Unit of Study / Textbook Correlation
Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science updated 03/08/2012 Unit 1: JKarel 8 weeks http://www.fcps.edu/is/pos/documents/hs/compsci.htm
Likewise, we have contradictions: formulas that can only be false, e.g. (p p).
CHAPTER 4. STATEMENT LOGIC 59 The rightmost column of this truth table contains instances of T and instances of F. Notice that there are no degrees of contingency. If both values are possible, the formula
A Mind Map Based Framework for Automated Software Log File Analysis
2011 International Conference on Software and Computer Applications IPCSIT vol.9 (2011) (2011) IACSIT Press, Singapore A Mind Map Based Framework for Automated Software Log File Analysis Dileepa Jayathilake
02-201: Programming for Scientists
1. Course Information 1.1 Course description 02-201: Programming for Scientists Carl Kingsford Fall 2015 Provides a practical introduction to programming for students with little or no prior programming
CS510 Software Engineering
CS510 Software Engineering Propositional Logic Asst. Prof. Mathias Payer Department of Computer Science Purdue University TA: Scott A. Carr Slides inspired by Xiangyu Zhang http://nebelwelt.net/teaching/15-cs510-se
Component visualization methods for large legacy software in C/C++
Annales Mathematicae et Informaticae 44 (2015) pp. 23 33 http://ami.ektf.hu Component visualization methods for large legacy software in C/C++ Máté Cserép a, Dániel Krupp b a Eötvös Loránd University [email protected]
Programming in Access VBA
PART I Programming in Access VBA In this part, you will learn all about how Visual Basic for Applications (VBA) works for Access 2010. A number of new VBA features have been incorporated into the 2010
Name: Class: Date: 9. The compiler ignores all comments they are there strictly for the convenience of anyone reading the program.
Name: Class: Date: Exam #1 - Prep True/False Indicate whether the statement is true or false. 1. Programming is the process of writing a computer program in a language that the computer can respond to
WESTMORELAND COUNTY PUBLIC SCHOOLS 2011 2012 Integrated Instructional Pacing Guide and Checklist Computer Math
Textbook Correlation WESTMORELAND COUNTY PUBLIC SCHOOLS 2011 2012 Integrated Instructional Pacing Guide and Checklist Computer Math Following Directions Unit FIRST QUARTER AND SECOND QUARTER Logic Unit
ABET General Outcomes. Student Learning Outcomes for BS in Computing
ABET General a. An ability to apply knowledge of computing and mathematics appropriate to the program s student outcomes and to the discipline b. An ability to analyze a problem, and identify and define
White Paper: 5GL RAD Development
White Paper: 5GL RAD Development After 2.5 hours of training, subjects reduced their development time by 60-90% A Study By: 326 Market Street Harrisburg, PA 17101 Luis Paris, Ph.D. Associate Professor
Glossary of Object Oriented Terms
Appendix E Glossary of Object Oriented Terms abstract class: A class primarily intended to define an instance, but can not be instantiated without additional methods. abstract data type: An abstraction
DIABLO VALLEY COLLEGE CATALOG 2014-2015
COMPUTER SCIENCE COMSC The computer science department offers courses in three general areas, each targeted to serve students with specific needs: 1. General education students seeking a computer literacy
ML for the Working Programmer
ML for the Working Programmer 2nd edition Lawrence C. Paulson University of Cambridge CAMBRIDGE UNIVERSITY PRESS CONTENTS Preface to the Second Edition Preface xiii xv 1 Standard ML 1 Functional Programming
Artificial Intelligence
Artificial Intelligence ICS461 Fall 2010 1 Lecture #12B More Representations Outline Logics Rules Frames Nancy E. Reed [email protected] 2 Representation Agents deal with knowledge (data) Facts (believe
High Integrity Software Conference, Albuquerque, New Mexico, October 1997.
Meta-Amphion: Scaling up High-Assurance Deductive Program Synthesis Steve Roach Recom Technologies NASA Ames Research Center Code IC, MS 269-2 Moffett Field, CA 94035 [email protected] Jeff Van
Object-Oriented Software Specification in Programming Language Design and Implementation
Object-Oriented Software Specification in Programming Language Design and Implementation Barrett R. Bryant and Viswanathan Vaidyanathan Department of Computer and Information Sciences University of Alabama
Software Modeling and Verification
Software Modeling and Verification Alessandro Aldini DiSBeF - Sezione STI University of Urbino Carlo Bo Italy 3-4 February 2015 Algorithmic verification Correctness problem Is the software/hardware system
KLMLean 2.0: A Theorem Prover for KLM Logics of Nonmonotonic Reasoning
KLMLean 2.0: A Theorem Prover for KLM Logics of Nonmonotonic Reasoning Laura Giordano 1, Valentina Gliozzi 2, and Gian Luca Pozzato 2 1 Dipartimento di Informatica - Università del Piemonte Orientale A.
Chapter 1. Dr. Chris Irwin Davis Email: [email protected] Phone: (972) 883-3574 Office: ECSS 4.705. CS-4337 Organization of Programming Languages
Chapter 1 CS-4337 Organization of Programming Languages Dr. Chris Irwin Davis Email: [email protected] Phone: (972) 883-3574 Office: ECSS 4.705 Chapter 1 Topics Reasons for Studying Concepts of Programming
LONG BEACH CITY COLLEGE MEMORANDUM
LONG BEACH CITY COLLEGE MEMORANDUM DATE: May 5, 2000 TO: Academic Senate Equivalency Committee FROM: John Hugunin Department Head for CBIS SUBJECT: Equivalency statement for Computer Science Instructor
Business Insight Report Authoring Getting Started Guide
Business Insight Report Authoring Getting Started Guide Version: 6.6 Written by: Product Documentation, R&D Date: February 2011 ImageNow and CaptureNow are registered trademarks of Perceptive Software,
Bachelor of Games and Virtual Worlds (Programming) Subject and Course Summaries
First Semester Development 1A On completion of this subject students will be able to apply basic programming and problem solving skills in a 3 rd generation object-oriented programming language (such as
MEng, BSc Applied Computer Science
School of Computing FACULTY OF ENGINEERING MEng, BSc Applied Computer Science Year 1 COMP1212 Computer Processor Effective programming depends on understanding not only how to give a machine instructions
CHAPTER 1 INTRODUCTION
CHAPTER 1 INTRODUCTION 1.1 Research Motivation In today s modern digital environment with or without our notice we are leaving our digital footprints in various data repositories through our daily activities,
2 AIMS: an Agent-based Intelligent Tool for Informational Support
Aroyo, L. & Dicheva, D. (2000). Domain and user knowledge in a web-based courseware engineering course, knowledge-based software engineering. In T. Hruska, M. Hashimoto (Eds.) Joint Conference knowledge-based
Evaluating OO-CASE tools: OO research meets practice
Evaluating OO-CASE tools: OO research meets practice Danny Greefhorst, Matthijs Maat, Rob Maijers {greefhorst, maat, maijers}@serc.nl Software Engineering Research Centre - SERC PO Box 424 3500 AK Utrecht
Introduction to Logic in Computer Science: Autumn 2006
Introduction to Logic in Computer Science: Autumn 2006 Ulle Endriss Institute for Logic, Language and Computation University of Amsterdam Ulle Endriss 1 Plan for Today Now that we have a basic understanding
CS Master Level Courses and Areas COURSE DESCRIPTIONS. CSCI 521 Real-Time Systems. CSCI 522 High Performance Computing
CS Master Level Courses and Areas The graduate courses offered may change over time, in response to new developments in computer science and the interests of faculty and students; the list of graduate
DATA MINING TOOL FOR INTEGRATED COMPLAINT MANAGEMENT SYSTEM WEKA 3.6.7
DATA MINING TOOL FOR INTEGRATED COMPLAINT MANAGEMENT SYSTEM WEKA 3.6.7 UNDER THE GUIDANCE Dr. N.P. DHAVALE, DGM, INFINET Department SUBMITTED TO INSTITUTE FOR DEVELOPMENT AND RESEARCH IN BANKING TECHNOLOGY
Moving from CS 61A Scheme to CS 61B Java
Moving from CS 61A Scheme to CS 61B Java Introduction Java is an object-oriented language. This document describes some of the differences between object-oriented programming in Scheme (which we hope you
Hypercosm. Studio. www.hypercosm.com
Hypercosm Studio www.hypercosm.com Hypercosm Studio Guide 3 Revision: November 2005 Copyright 2005 Hypercosm LLC All rights reserved. Hypercosm, OMAR, Hypercosm 3D Player, and Hypercosm Studio are trademarks
Axiomatic design of software systems
Axiomatic design of software systems N.P. Suh (1), S.H. Do Abstract Software is playing an increasingly important role in manufacturing. Many manufacturing firms have problems with software development.
Oracle Service Bus Examples and Tutorials
March 2011 Contents 1 Oracle Service Bus Examples... 2 2 Introduction to the Oracle Service Bus Tutorials... 5 3 Getting Started with the Oracle Service Bus Tutorials... 12 4 Tutorial 1. Routing a Loan
Xcode Project Management Guide. (Legacy)
Xcode Project Management Guide (Legacy) Contents Introduction 10 Organization of This Document 10 See Also 11 Part I: Project Organization 12 Overview of an Xcode Project 13 Components of an Xcode Project
COMPUTER SCIENCE TRIPOS
CST.98.5.1 COMPUTER SCIENCE TRIPOS Part IB Wednesday 3 June 1998 1.30 to 4.30 Paper 5 Answer five questions. No more than two questions from any one section are to be answered. Submit the answers in five
Automated Performance Testing of Desktop Applications
By Ostap Elyashevskyy Automated Performance Testing of Desktop Applications Introduction For the most part, performance testing is associated with Web applications. This area is more or less covered by
Chapter 13: Program Development and Programming Languages
Understanding Computers Today and Tomorrow 12 th Edition Chapter 13: Program Development and Programming Languages Learning Objectives Understand the differences between structured programming, object-oriented
Computer Programming I
Computer Programming I COP 2210 Syllabus Spring Semester 2012 Instructor: Greg Shaw Office: ECS 313 (Engineering and Computer Science Bldg) Office Hours: Tuesday: 2:50 4:50, 7:45 8:30 Thursday: 2:50 4:50,
Information and Communications Technology Courses at a Glance
Information and Communications Technology Courses at a Glance Level 1 Courses ICT121 Introduction to Computer Systems Architecture This is an introductory course on the architecture of modern computer
(Refer Slide Time 00:56)
Software Engineering Prof.N. L. Sarda Computer Science & Engineering Indian Institute of Technology, Bombay Lecture-12 Data Modelling- ER diagrams, Mapping to relational model (Part -II) We will continue
Release 2.1 of SAS Add-In for Microsoft Office Bringing Microsoft PowerPoint into the Mix ABSTRACT INTRODUCTION Data Access
Release 2.1 of SAS Add-In for Microsoft Office Bringing Microsoft PowerPoint into the Mix Jennifer Clegg, SAS Institute Inc., Cary, NC Eric Hill, SAS Institute Inc., Cary, NC ABSTRACT Release 2.1 of SAS
MEng, BSc Computer Science with Artificial Intelligence
School of Computing FACULTY OF ENGINEERING MEng, BSc Computer Science with Artificial Intelligence Year 1 COMP1212 Computer Processor Effective programming depends on understanding not only how to give
Classroom Tips and Techniques: The Student Precalculus Package - Commands and Tutors. Content of the Precalculus Subpackage
Classroom Tips and Techniques: The Student Precalculus Package - Commands and Tutors Robert J. Lopez Emeritus Professor of Mathematics and Maple Fellow Maplesoft This article provides a systematic exposition
AUTOMATED TEST GENERATION FOR SOFTWARE COMPONENTS
TKK Reports in Information and Computer Science Espoo 2009 TKK-ICS-R26 AUTOMATED TEST GENERATION FOR SOFTWARE COMPONENTS Kari Kähkönen ABTEKNILLINEN KORKEAKOULU TEKNISKA HÖGSKOLAN HELSINKI UNIVERSITY OF
Experiences with Online Programming Examinations
Experiences with Online Programming Examinations Monica Farrow and Peter King School of Mathematical and Computer Sciences, Heriot-Watt University, Edinburgh EH14 4AS Abstract An online programming examination
Programming with the Dev C++ IDE
Programming with the Dev C++ IDE 1 Introduction to the IDE Dev-C++ is a full-featured Integrated Development Environment (IDE) for the C/C++ programming language. As similar IDEs, it offers to the programmer
Table of contents. 1. About the platform 3. 2. MetaTrader 4 platform Installation 4. 3. Logging in 5 - Common log in problems 5
Table of contents 1. About the platform 3 2. MetaTrader 4 platform Installation 4 3. Logging in 5 - Common log in problems 5 4. How to change your password 6 5. User Interface and Customization 7 - Toolbars
Course Title: Software Development
Course Title: Software Development Unit: Customer Service Content Standard(s) and Depth of 1. Analyze customer software needs and system requirements to design an information technology-based project plan.
Chapter II. Controlling Cars on a Bridge
Chapter II. Controlling Cars on a Bridge 1 Introduction The intent of this chapter is to introduce a complete example of a small system development. During this development, you will be made aware of the
The University of Jordan
The University of Jordan Master in Web Intelligence Non Thesis Department of Business Information Technology King Abdullah II School for Information Technology The University of Jordan 1 STUDY PLAN MASTER'S
WHITE PAPER. Peter Drucker. intentsoft.com 2014, Intentional Software Corporation
We know now that the source of wealth is something specifically human: knowledge. If we apply knowledge to tasks we already know how to do, we call it productivity. If we apply knowledge to tasks that
Checking Access to Protected Members in the Java Virtual Machine
Checking Access to Protected Members in the Java Virtual Machine Alessandro Coglio Kestrel Institute 3260 Hillview Avenue, Palo Alto, CA 94304, USA Ph. +1-650-493-6871 Fax +1-650-424-1807 http://www.kestrel.edu/
Sitecore InDesign Connector 1.1
Sitecore Adaptive Print Studio Sitecore InDesign Connector 1.1 - User Manual, October 2, 2012 Sitecore InDesign Connector 1.1 User Manual Creating InDesign Documents with Sitecore CMS User Manual Page
Using Database Metadata and its Semantics to Generate Automatic and Dynamic Web Entry Forms
Using Database Metadata and its Semantics to Generate Automatic and Dynamic Web Entry Forms Mohammed M. Elsheh and Mick J. Ridley Abstract Automatic and dynamic generation of Web applications is the future
THE OPEN UNIVERSITY OF TANZANIA
THE OPEN UNIVERSITY OF TANZANIA FACULTY OF SCIENCE, TECHNOLOGY AND ENVIRONMENTAL STUDIES ODM 103: INTRODUCTION TO COMPUTER PROGRAMMING LANGUAGES Said Ally i ODM 103 INTRODUCTION TO COMPUTER PROGRAMMING
From Workflow Design Patterns to Logical Specifications
AUTOMATYKA/ AUTOMATICS 2013 Vol. 17 No. 1 http://dx.doi.org/10.7494/automat.2013.17.1.59 Rados³aw Klimek* From Workflow Design Patterns to Logical Specifications 1. Introduction Formal methods in software
Configuring Firewalls An XML-based Approach to Modelling and Implementing Firewall Configurations
Configuring Firewalls An XML-based Approach to Modelling and Implementing Firewall Configurations Simon R. Chudley and Ulrich Ultes-Nitsche Department of Electronics and Computer Science, University of
6.080/6.089 GITCS Feb 12, 2008. Lecture 3
6.8/6.89 GITCS Feb 2, 28 Lecturer: Scott Aaronson Lecture 3 Scribe: Adam Rogal Administrivia. Scribe notes The purpose of scribe notes is to transcribe our lectures. Although I have formal notes of my
Programming Languages CIS 443
Course Objectives Programming Languages CIS 443 0.1 Lexical analysis Syntax Semantics Functional programming Variable lifetime and scoping Parameter passing Object-oriented programming Continuations Exception
A Visual Language Based System for the Efficient Management of the Software Development Process.
A Visual Language Based System for the Efficient Management of the Software Development Process. G. COSTAGLIOLA, G. POLESE, G. TORTORA and P. D AMBROSIO * Dipartimento di Informatica ed Applicazioni, Università
GSPIM: Graphical Visualization Tool for MIPS Assembly
GSPIM: Graphical Visualization Tool for MIPS Assembly Programming and Simulation Patrick Borunda Science University of Arizona [email protected] Chris Brewer Science University of Arizona [email protected]
AP Computer Science A - Syllabus Overview of AP Computer Science A Computer Facilities
AP Computer Science A - Syllabus Overview of AP Computer Science A Computer Facilities The classroom is set up like a traditional classroom on the left side of the room. This is where I will conduct my
EVALUATING METRICS AT CLASS AND METHOD LEVEL FOR JAVA PROGRAMS USING KNOWLEDGE BASED SYSTEMS
EVALUATING METRICS AT CLASS AND METHOD LEVEL FOR JAVA PROGRAMS USING KNOWLEDGE BASED SYSTEMS Umamaheswari E. 1, N. Bhalaji 2 and D. K. Ghosh 3 1 SCSE, VIT Chennai Campus, Chennai, India 2 SSN College of
Determination of the normalization level of database schemas through equivalence classes of attributes
Computer Science Journal of Moldova, vol.17, no.2(50), 2009 Determination of the normalization level of database schemas through equivalence classes of attributes Cotelea Vitalie Abstract In this paper,
High School Algebra Reasoning with Equations and Inequalities Solve equations and inequalities in one variable.
Performance Assessment Task Quadratic (2009) Grade 9 The task challenges a student to demonstrate an understanding of quadratic functions in various forms. A student must make sense of the meaning of relations
POINT OF SALES SYSTEM (POSS) USER MANUAL
Page 1 of 24 POINT OF SALES SYSTEM (POSS) USER MANUAL System Name : POSI-RAD System Release Version No. : V4.0 Total pages including this covering : 23 Page 2 of 24 Table of Contents 1 INTRODUCTION...
Automated Theorem Proving - summary of lecture 1
Automated Theorem Proving - summary of lecture 1 1 Introduction Automated Theorem Proving (ATP) deals with the development of computer programs that show that some statement is a logical consequence of
Technical paper review. Program visualization and explanation for novice C programmers by Matthew Heinsen Egan and Chris McDonald.
Technical paper review Program visualization and explanation for novice C programmers by Matthew Heinsen Egan and Chris McDonald Garvit Pahal Indian Institute of Technology, Kanpur October 28, 2014 Garvit
FACULTY OF COMPUTER SCIENCE AND INFORMATION TECHNOLOGY AUTUMN 2016 BACHELOR COURSES
FACULTY OF COMPUTER SCIENCE AND INFORMATION TECHNOLOGY Please note! This is a preliminary list of courses for the study year 2016/2017. Changes may occur! AUTUMN 2016 BACHELOR COURSES DIP217 Applied Software
CATIA V5 Tutorials. Mechanism Design & Animation. Release 18. Nader G. Zamani. University of Windsor. Jonathan M. Weaver. University of Detroit Mercy
CATIA V5 Tutorials Mechanism Design & Animation Release 18 Nader G. Zamani University of Windsor Jonathan M. Weaver University of Detroit Mercy SDC PUBLICATIONS Schroff Development Corporation www.schroff.com
A View Integration Approach to Dynamic Composition of Web Services
A View Integration Approach to Dynamic Composition of Web Services Snehal Thakkar, Craig A. Knoblock, and José Luis Ambite University of Southern California/ Information Sciences Institute 4676 Admiralty
13 Managing Devices. Your computer is an assembly of many components from different manufacturers. LESSON OBJECTIVES
LESSON 13 Managing Devices OBJECTIVES After completing this lesson, you will be able to: 1. Open System Properties. 2. Use Device Manager. 3. Understand hardware profiles. 4. Set performance options. Estimated
Co-Creation of Models and Metamodels for Enterprise. Architecture Projects.
Co-Creation of Models and Metamodels for Enterprise Architecture Projects Paola Gómez [email protected] Hector Florez [email protected] ABSTRACT The linguistic conformance and the ontological
OHJ-2306 Introduction to Theoretical Computer Science, Fall 2012 8.11.2012
276 The P vs. NP problem is a major unsolved problem in computer science It is one of the seven Millennium Prize Problems selected by the Clay Mathematics Institute to carry a $ 1,000,000 prize for the
Algorithmic Software Verification
Algorithmic Software Verification (LTL Model Checking) Azadeh Farzan What is Verification Anyway? Proving (in a formal way) that program satisfies a specification written in a logical language. Formal
Discover the best keywords for your online marketing campaign
Discover the best keywords for your online marketing campaign Index n... 3 Keyword discovery using manual methodology... 5 Step 1: Keyword analysis and search... 6 Step 2... 10 Additional tools... 11 Competitors...
Additional Information: A link to the conference website is available at: http://www.curtin.edu.my/cutse2008/index.html
Citation: Veeramani, S. and Gopal, Lenin. 2008. Network monitoring tool, in Curtin University of Technology (ed), Curtin University of Technology Science and Engineering International Conference CUTSE
Jonathan Worthington Scarborough Linux User Group
Jonathan Worthington Scarborough Linux User Group Introduction What does a Virtual Machine do? Hides away the details of the hardware platform and operating system. Defines a common set of instructions.
Verifying Semantic of System Composition for an Aspect-Oriented Approach
2012 International Conference on System Engineering and Modeling (ICSEM 2012) IPCSIT vol. 34 (2012) (2012) IACSIT Press, Singapore Verifying Semantic of System Composition for an Aspect-Oriented Approach
PRODUCING AN EDUCATIONALLY EFFECTIVE AND USABLE TOOL FOR LEARNING, THE CASE OF JELIOT FAMILY
PRODUCING AN EDUCATIONALLY EFFECTIVE AND USABLE TOOL FOR LEARNING, THE CASE OF JELIOT FAMILY Andrés Moreno and Niko Myller, University of Joensuu Introduction Jeliot Family is a group of program visualization
ARIZONA CTE CAREER PREPARATION STANDARDS & MEASUREMENT CRITERIA SOFTWARE DEVELOPMENT, 15.1200.40
SOFTWARE DEVELOPMENT, 15.1200.40 1.0 APPLY PROBLEM-SOLVING AND CRITICAL THINKING SKILLS TO INFORMATION TECHNOLOGY 1.1 Describe methods and considerations for prioritizing and scheduling software development
Programming Languages
Programming Languages Programming languages bridge the gap between people and machines; for that matter, they also bridge the gap among people who would like to share algorithms in a way that immediately
ON FUNCTIONAL SYMBOL-FREE LOGIC PROGRAMS
PROCEEDINGS OF THE YEREVAN STATE UNIVERSITY Physical and Mathematical Sciences 2012 1 p. 43 48 ON FUNCTIONAL SYMBOL-FREE LOGIC PROGRAMS I nf or m at i cs L. A. HAYKAZYAN * Chair of Programming and Information
