Icon is a new programming language that includes a goal-directed expression evaluation mechanism. This mechanism is based on generators-expressions that are capable of producing more than one value. If the value produced by a generator does not lead to a successful result, the generator is automatically activated for an alternate value. Generators form an… (More)
This paper describes the development and initial evaluation of a new course ``Introduction to Computational Thinking'' taken by science majors to fulfill a college computing requirement. The course was developed by computer science faculty in collaboration with science faculty and it focuses on the role of computing and computational principles in… (More)
There are many practical situations in which, by policy, software is supposed to run on a specific hardware instance. This is not only useful to combat piracy, but also in national security situations, such as a battlefield loss of critical technology, where it is paramount that an enemy be unable to rehost the system on a different set of (possibly… (More)
As computational thinking becomes a fundamental skill for the 21st century, K-12 teachers should be exposed to computing principles. This paper describes the implementation and evaluation of a computational thinking module in a required course for elementary and secondary education majors. We summarize the results from open-ended and multiple-choice… (More)
A multipronged approach to preparing computer science teachers is critical to success.
The TILDE project investigates general-purpose computing systems that run on a multi·machine computing engine. A multi-machine computing engine is a cluster of heterogeneous processors loosely coupled with a high-speed local area network. The goal of the project is to explore computing systems in which the user interlace hides details of the underlying… (More)
As a user's computing environment grows from a single time-shared host to a network of specialized and general-purpose machines, the capability for the user to access all of these resources in a consistent and transparent manner becomes desirable. Instead of viewing commands as binary files, we expect the user to view commands as services provided by… (More)
Computational thinking (CT) is broadly defined as the mental activity for abstracting problems and formulating solutions that can be automated. In an increasingly information-based society, CT is becoming an essential skill for everyone. To ensure that students develop this ability at the K-12 level, it is important to provide teachers with an adequate… (More)
This report describes the technical aspects of the project Computing about Physical Objects. This project has received equipment and infrastructure support for five years from the National Science Foundation.