This paper presents a simple equation solver, The solver finds solutions for sets of linear equations extended with several nonlinear operators, including integer division and modulus, sign extension, and bit slicing....
详细信息
This paper presents a simple equation solver, The solver finds solutions for sets of linear equations extended with several nonlinear operators, including integer division and modulus, sign extension, and bit slicing. The solver uses a new technique called balancing, which can eliminate some nonlinear operators from a set of equations before applying Gaussian elimination. The solver's principal advantages are its simplicity and its ability to handle some nonlinear operators, including nonlinear functions of more than one variable. The solver is part of an application generator that provides encoding and decoding of machine instructions based on equational specifications. The solver is presented not as pseudo code but as a literate program, which guarantees that the code shown in the paper is the same code that is actually used. Using real code exposes more detail than using pseudocode, but literate-programming techniques help manage the detail, The detail should benefit readers who want to implement their own solvers based on the techniques presented here.
Data science is the business of learning from data, which is traditionally the business of statistics. Data science, however, is often understood as a broader, task-driven and computationally-oriented version of stati...
详细信息
Data science is the business of learning from data, which is traditionally the business of statistics. Data science, however, is often understood as a broader, task-driven and computationally-oriented version of statistics. Both the term data science and the broader idea it conveys have origins in statistics and are a reaction to a narrower view of data analysis. Expanding upon the views of a number of statisticians, this paper encourages a big-tent view of data analysis. We examine how evolving approaches to modern data analysis relate to the existing discipline of statistics (e.g. exploratory analysis, machine learning, reproducibility, computation, communication and the role of theory). Finally, we discuss what these trends mean for the future of statistics by highlighting promising directions for communication, education and research.
Class material for computer science courses often contains algorithms and code snippets, as well as the results of their execution. Usually, these are written and tested outside the source document then included via c...
详细信息
Class material for computer science courses often contains algorithms and code snippets, as well as the results of their execution. Usually, these are written and tested outside the source document then included via copy-and-paste. Making sure that the code compiles and that the results really correspond to the included code is the teacher's responsibility. Using techniques and ideas from literate programming, we propose to include source code and executable instruc-tions inside the source document. To support this, we have implemented Lepton which is a tool for extracting source code, compiling, executing, and including the results of the documented programs. Consequently, copy-and-paste is eliminated and code output is guaranteed to be up-to-date with source code. This manuscript was written with Lepton.
Most conventional design processes produce documentation as a by-product: design is done within an environment or collection of tools and the design outputs, models, diagrams, results, etc are gathered together along ...
详细信息
Most conventional design processes produce documentation as a by-product: design is done within an environment or collection of tools and the design outputs, models, diagrams, results, etc are gathered together along with commentary (usually with hindsight) into some kind of document at the end of the process. Inspired by ideas taken from literate programming and notebook interfaces to design tools, a prototype document centred design document has been developed. In such an environment, the document is the main product and the design is a by-product of documenting the design. By implementing the framework components of the system in Java and by using the extended markup language (XML) to encode the contents of the documents, the system is made platform neutral and therefore portable. An example document centred environment for computer-aided control system design (CACSD), that integrates Matlab and Simulink with the document-based framework, is briefly described and indications for future possibilities for this technology are given.
Difficulties in reproducing results from scientific studies have lately been referred to as a reproducibility crisis. Scientific practice depends heavily on scientific training. What gets taught in the classroom is of...
详细信息
Difficulties in reproducing results from scientific studies have lately been referred to as a reproducibility crisis. Scientific practice depends heavily on scientific training. What gets taught in the classroom is often practiced in labs, fieldwork, and data analysis. The importance of reproducibility in the classroom has gained momentum in statistics education in recent years. In this article, we review the existing literature on reproducibility education. We delve into the relationship between computing tools and reproducibility through visiting historical developments in this area. We share examples for teaching reproducibility and reproducible teaching while discussing the pedagogical opportunities created by these examples as well as challenges that the instructors should be aware of. We detail the use of teaching reproducibility and reproducible teaching practices in an introductory data science course. Lastly, we provide recommendations on reproducibility education for instructors, administrators, and other members of the scientific community.
Lepton is an automaton for literate executable papers. It enables researchers to publish their work in the form of a script or program that can generate the research paper along with the corresponding source code, inp...
详细信息
Lepton is an automaton for literate executable papers. It enables researchers to publish their work in the form of a script or program that can generate the research paper along with the corresponding source code, input data and output results. Lepton files do not contain pre-computed results, but the full set of instructions for reproducing the results presented in the manuscript. Taking inspiration from literate programming for code review and code re-use, we have written Lepton to facilitate the review and re-use of computational methods. Lepton is designed to provide strong guarantees for the reproducibil-ity of the results, many features for easily applying the methods to new data while remaining unobtrusive and easy to deploy in any environment. Lepton is designed for writing reproducible technical reports during method development, and journal manuscripts when the research is polished. Developped independently from the Elsevier Executable Paper Grand Challenge, it addresses similar issues and objectives. This manuscript was written with Lepton.
When throwing a solid object like a hexahedron, an octahedron or a tetrakis-hexahedron on a flat surface, we expect it to roll onto any of the faces with probabilities of exactly 1/6, 1/8, or 1/24, respectively. Infor...
详细信息
When throwing a solid object like a hexahedron, an octahedron or a tetrakis-hexahedron on a flat surface, we expect it to roll onto any of the faces with probabilities of exactly 1/6, 1/8, or 1/24, respectively. Informally, we view such objects as instances from the n-dimensional dice family;formally, they are instances from a hyperhedron family H(Theta,b,n). Each of the faces is assigned a label {(xi) under bar;Theta((xi) under bar)};(xi) under bar represents a unique n-dimensional coordinate string (xi) under bar, Theta( (xi) under bar ) represents the value of the function Theta for (xi) under bar . The number of coordinates is defined as vertical bar H((xi) under bar ,b,n)vertical bar = b(n) (n!);each coordinate string is an oriented permutation with parameter b denoting the number of symbols that encode the unique orientation of each permutation. Special cases include the combinational family C(Theta,b,n) with vertical bar C(Theta,b,n)vertical bar = b(n) (each coordinate string is a unique n-tuple) and the (single orientation) permutation family P(Theta,b,n) with vertical bar P(Theta,b,n)vertical bar = n! (each coordinate string is a unique permutation). The paper introduces the hyperhedron not only as a model for instances that arise in the context of combinatorial optimization but also as a metaphor to illustrate a number of combinatorial search algorithms whose meta-structures do not change when instance coordinates change from an n-tuple to a simple or an oriented permutation of length n. The dice metaphor is applied to statistical performance experiments with instances whose dimension increases monotonically while the number of "best faces" remains constant. All results are archived as an integral part of reproducible research environment, controlled by components encapsulated in tcl, R, and (LTEX)-T-A.
The main motivation behind the MaxSAT solver MiFuMax is twofold. It provides a baseline implementation of core-based algorithms for both weighted and unweighted MaxSAT. Such baseline implementation may serve for evalu...
详细信息
The main motivation behind the MaxSAT solver MiFuMax is twofold. It provides a baseline implementation of core-based algorithms for both weighted and unweighted MaxSAT. Such baseline implementation may serve for evaluation of evolving solvers. MiFuMax is written in literate programming and as such is instructive for anyone interested in learning about the implementation of modern core-based MaxSAT solvers. Despite its educative background, the solver has placed 1st in the Unweighted Max-SAT-Industrial track of the 2013 MaxSAT Evaluation and it has been successfully applied in other research.
The article discusses various case studies of problems faced by programming languages. The case studies include, a statement of the programming problem, a narrative description of the process used by an expert to solv...
详细信息
The article discusses various case studies of problems faced by programming languages. The case studies include, a statement of the programming problem, a narrative description of the process used by an expert to solve the problem, written so that a student can understand the expert's approach, a listing of the expert's code, study questions to provide practice in program design, problem solving, and analysis and test questions to assess students' understanding of the program solution. These case studies explain and defend decisions made by experts to produce a solution to the problem at hand. Researchers who solve various problems refer to programming specific versions of more general problem-solving approaches as design skills. They include generating alternative solutions to a problem, comparing the alternatives, implementing solutions one piece at a time, testing the solution to a computer problem, debugging the solution when the tests reveal deficiencies, and understanding existing code.
In this paper we present an integration of tool support for internal documentation in the modern IDE Together J. The specific kind of internal documentation stems from the Elucidative programming tradition where docum...
详细信息
ISBN:
(纸本)9780954414511
In this paper we present an integration of tool support for internal documentation in the modern IDE Together J. The specific kind of internal documentation stems from the Elucidative programming tradition where documentation and source code are separate entities tied together using hyperlinks. The tool supports the programmer in creating and managing internal documentation of Java source code. The hypertext-based documentation is presented in the IDE where a range of navigational features helps the programmer with finding relevant documentation for a given part of the source code. It is concluded that integration of such a tool is indeed possible as well as easy to do in an open IDE like TogetherJ. We expect that we can obtain similar results using other open IDEs.
暂无评论