53 research outputs found
Recommended from our members
Creatures of Habit A Computational System to Enhance and Illuminate the Development of Scientific Thinking
Creatures of Habit is a computer-based microworld designed to engage middle-to-high school students in the process of scientific inquiry. The system depicts a universe of interacting programmable "creatures" whose individual behavior is guided by simple rules that may model naive psychology, physical laws, chemical affinities, and other domains. Students can create or revise creature rules and explore the resulting (and often surprising) emergent behaviors within "artificial ecosystems"; or they may employ predesigned ecosyetems in undertaking more structured problem-solving activities. Our objective is for students to use these ecosystem simulations as an enjoyable introduction to a variety of scientific domains, especially the area of dynamic systems, a field of science where experiments with such simulations often leads theory. The system encourages a wide range of reasoning and learning central to scientific methodology - pattern observation, hypothesis formation, experimentation, data collection and analysis, and deduction. We describe the rationale behind the system, discuss some sample activities, and outline the system's potential both as a learning environment and as a research laboratory for empiricial studies of scientific thought. Finally, we briefly describe the present state of our prototype Creatures of Habit system
Slivers, computational modularity via synchronized lazy aggregates
Thesis (Ph. D.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 1994.Includes bibliographical references (p. 435-442).by Farnklyn Albin Turbak.Ph.D
Program representation size in an intermediate language with intersection and union types
The CIL compiler for core Standard ML compiles whole programs using a novel typed intermediate language (TIL) with intersection and union types and flow labels on both terms and types. The CIL term representation duplicates portions of the program where intersection types are introduced and union types are eliminated. This duplication makes it easier to represent type information and to introduce customized data representations. However, duplication incurs compile-time space costs that are potentially much greater than are incurred in TILs employing type-level abstraction or quantification. In this paper, we present empirical data on the compile-time space costs of using CIL as an intermediate language. The data shows that these costs can be made tractable by using sufficiently fine-grained flow analyses together with standard hash-consing techniques. The data also suggests that non-duplicating formulations of intersection (and union) types would not achieve significantly better space complexity.National Science Foundation (CCR-9417382, CISE/CCR ESS 9806747); Sun grant (EDUD-7826-990410-US); Faculty Fellowship of the Carroll School of Management, Boston College; U.K. Engineering and Physical Sciences Research Council (GR/L 36963, GR/L 15685
Finding the Balance Between Guidance and Independence in Cybersecurity Exercises
Abstract In order to accomplish cyber security tasks, one needs to know how to analyze complex data and when and how to use tools. Many hands-on exercises for cybersecurity courses have been developed to teach these skills. There is a spectrum of ways that these exercises can be taught. On one end of the spectrum are prescriptive exercises, in which students follow step-by-step instructions to run scripted exploits, perform penetration testing, do security audits, etc. On the other end of the spectrum are open-ended exercises and capture-the-flag activities, where little guidance is given on how to proceed. This paper reports on our experience with trying to find a balance between these extremes in the context of one of the suite of cybersecurity exercises that we have developed in the EDURange framework 1 . The particular exercise that we present teaches students about dynamic analysis of binaries using strace. We have found that students are most successful in these exercises when they are given the right amount of prerequisite knowledge and guidance as well as some opportunity to find creative solutions. Our scenarios are specifically designed to develop analysis skills and the security mindset in students and to complement the theoretical aspects of the discipline and develop practical skills
Usability of Programming Languages
Programming languages form the interface between
programmers (the users) and the computation that
they desire the computer to execute. Although studies
exist for some aspects of programming language design
(such as conditionals), other aspects have received
little or no human factors evaluations. Designers thus
have little they can rely on if they want to make new
languages highly usable, and users cannot easily chose
a language based on usability criteria. This SIG will
bring together researchers and practitioners interested
in increasing the depth and breadth of studies on the
usability of programming languages, and ultimately in
improving the usability of future languages.nonPeerReviewe
First-Class Synchronization Barriers
Our purpose is to promote a second-class mechanism --- the synchronization barrier --- to a first-class value. We introduce the synchron, a novel synchronization mechanism that enables the coordination of a dynamically varying set of concurrent threads that share access to a first-class synchronization token. We demonstrate how synchrons can be used to modularly manage resources in cases where existing techniques are either inapplicable or non-modular. In particular, synchronized lazy aggregates enable the first spacee #cient aggregate data decomposition of a wide range of algorithms. We also introduce explicit-demand graph reduction, a new semantic framework that we have developed to describe concurrency and explain the meaning of a synchron rendezvous. 1 Overview Significant expressive power can be harnessed by capturing programming language idioms in the form of first-class values. A value is said to be first-class when it can be (1) named (2) passed as an argument to a procedure..
- …