
Jim Waldo- University of Northern Iowa
Jim Waldo
- University of Northern Iowa
About
97
Publications
7,887
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
3,893
Citations
Introduction
Current institution
Publications
Publications (97)
First formalized in 2006, differential privacy is an approach based on a mathematically rigorous definition of privacy that allows formalization and proof of the guarantees against re-identification offered by a system. While differential privacy has been accepted by theorists for some time, its implementation has turned out to be subtle and tricky...
Collaboration between humans and machines does not necessarily lead to better outcomes.
Based on the theoretical findings from the existing literature, some policymakers and software engineers contend that algorithmic risk assessments such as the COMPAS software can alleviate the incarceration epidemic and the occurrence of violent crimes by informing and improving decisions about policing, treatment, and sentencing. Considered in tan...
A Harvard-based pilot program integrates class sessions on ethical reasoning into courses throughout its computer science curriculum.
IT IS DIFFICULT these days to avoid hearing about blockchain. Blockchain is going to be the foundation of a new business world based on smart contracts. It is going to allow everyone to trace the provenance of their food, the parts in the items they buy, or the ideas they hear. It will change the way we work, the way the economy runs, and the way w...
Blockchain remains a mystery, despite its growing acceptance.
Computing technologies have become pervasive in daily life, sometimes bringing unintended but harmful consequences. For students to learn to think not only about what technology they could create, but also about what technology they should create, computer science curricula must expand to include ethical reasoning about the societal value and impac...
Can overtrust in robots compromise physical security? We conducted a series of experiments in which a robot positioned outside a secure-access student dormitory asked passersby to assist it to gain access. We found individual participants were as likely to assist the robot in exiting the dormitory (40% assistance rate, 4/10 individuals) as in enter...
De-identification techniques will continue to be important as long as the regulations around big datasets involving human subjects require a level of anonymity before those sets can be shared. The first step in de-identifying a dataset is determining the anonymization requirements for that set. Anonymizing a dataset with regard to quasi-identifiers...
Big data is all the rage; using large data sets promises to give us new insights into questions that have been difficult or impossible to answer in the past. This is especially true in fields such as medicine and the social sciences, where large amounts of data can be gathered and mined to find insightful relationships among variables. Data in such...
Open data has tremendous potential for science, but, in human subjects research, there is a tension between privacy and releasing high-quality open data. Federal law governing student privacy and the release of student records suggests that anonymizing student data protects student privacy. Guided by this standard, we de-identified and released a d...
Functions in an API are expected to work correctly, and sometimes, this expectation is called a contract between the caller and the implementation. Callers also have performance expectations about these functions, and often the success of a software system depends on the API meeting these expectations. The caller must meet certain initial requireme...
When you call functions in an API, you expect them to work correctly; sometimes this expectation is called a contract between the caller and the implementation. Callers also have performance expectations about these functions, and often the success of a software system depends on the API meeting these expectations. So there’s a performance contract...
This report describes 6.00x: Introduction to Computer Science and Programming, one of the first 11 courses offered by MITx on edX, a platform for delivering massive open online courses (MOOCs). Offered in the Fall of 2012, 6.00x is an introduction to using computation to solve real problems, aiming to instruct students with a variety of backgrounds...
This report describes 6.002x: Circuits and Electronics, one of the first 11 courses offered by MITx on edX, a platform for delivering massive open online courses (MOOCs). In the Spring of 2013, 6.002x was released as an open online course for the third time, with content largely mirroring previous offerings (Seaton et al, MITx Working Paper #4). 6....
This report describes 7.00x: Introduction to Biology - The Secret of Life, one of the first 11 courses offered by MITx on edX, a platform for delivering massive open online courses (MOOCs). Offered in the Spring of 2013, the content of 7.00x reflects the topics taught in introductory biology courses at MIT and many biology courses around the world....
This report describes 8.02x: Electricity and Magnetism, one of the first 11 courses offered by MITx on edX, a platform for delivering massive open online courses (MOOCs). Offered in the Spring of 2013, 8.02x covers concepts in electromagnetism, and follows the second course in the MIT on-campus introductory physics sequence. This report describes t...
This report describes 6.00x: Introduction to Computer Science and Programming, one of the first 11 courses offered by MITx on edX, a platform for delivering massive open online courses (MOOCs). In the Spring of 2013, 6.00x was rereleased as an MITx on edX course,with content largely mirroring the previous offering (Seaton et al, MITx Working Paper...
This report describes 8.MReV: Mechanics ReView, one of the first 11 courses offered by MITx on edX, a platform for delivering massive open online courses (MOOCs). Offered in the Summer of 2013, 8.MReV offers a second look at introductory Newtonian Mechanics, incorporating research pedagogy developed by the RELATE education group at MIT. This report...
This report describes 2.01x: Elements and Structures, one of the first 11 courses offered by MITx on edX, a platform for delivering massive open online courses (MOOCs). Offered in the Spring of 2013, 2.01x covers a first course on the mechanical behavior of deformable structural elements, following the curriculum of an MIT on-campus course in the D...
ER22x was offered as a HarvardX course in Spring 2013 on edX, a platform for massive open online courses (MOOCs). It was taught by Professor Michael Sandel. The report was prepared by researchers external to the course team, based on an examination of the courseware, analyses of data collected by the edX platform, and interviews with the course fac...
This report describes 3.091x: Introduction to Solid State Chemistry, one of the first 11 courses offered by MITx on edX, a platform for delivering massive open online courses (MOOCs). In the Spring of 2013, 3.091x was rereleased as an MITx on edX course, with content largely mirroring the previous offering (Seaton et al, MITx Working Paper #2). 3.0...
HarvardX and MITx are collaborative institutional efforts between Harvard University and MIT to enhance campus-based education, advance educational research, and increase access to online learning opportunities worldwide. Over the year from the fall of 2012 to the summer of 2013, HarvardX and MITx launched 17 courses on edX, a jointly founded platf...
This report describes 6.002x: Circuits and Electronics, one of the first 11 courses offered by MITx on edX, a platform for delivering massive open online courses (MOOCs). 6.002x is designed as a first course within an undergraduate electrical engineering or electrical engineering and computer science curriculum. This report describes the course str...
This report describes 3.091x: Introduction to Solid State Chemistry, one of the first 11 courses offered by MITx on edX, a platform for delivering massive open online courses (MOOCs). Offered in the Fall of 2012, 3.091x covers chemical principles explained by examination of the properties of materials, and follows the curriculum of a first-year cou...
CB22x: The Ancient Greek Hero, was offered as a HarvardX course in Spring 2013 on edX, a platform for massive open online courses (MOOCs). It was taught by Professor Greg Nagy. The report was prepared by researchers external to the course team, based on examination of the courseware, analyses of the data collected by the edX platform, and interview...
This report describes 14.73x: The Challenges of Global Poverty, one of the first 11 courses offered by MITx on edX, a platform for delivering massive open online courses (MOOCs). Offered in the Spring of 2013, 14.73x offers students a course for those who are interested in the challenge posed by massive and persistent world poverty, and are hopeful...
In the 2012-2013 academic year, the first two Harvard School of Public Health courses were offered through HarvardX on the edX platform: PH207x: Health in Numbers and PH278x: Human Health and Global Environmental Change. They were taught by Professors Earl Francis Cook and Marcello Pagano, and Aaron Bernstein and Jack Spengler, respectively. This r...
A number of potential threats to passport radio frequency identification (RFID) have been analyzed. An attack of this nature can happen when the passport of an individual is being checked by the security staff at an airport. The attack is launched when another individual decrypts the RFID and confidential information on the passport using a small a...
I used to be a systems programmer, working on infrastructure usedby banks, telecom companies, and other engineers. I worked onoperating systems. I worked on distributed middleware. I worked onprogramming languages. I wrote tools. I did all of the things thathard-core systems programmers do.
The computational environment for online games or virtual world is close to the exact inverse of that found in most markets serviced by the high-tech industry. The communication minimization is required to meet the prime directive of fun, since it is part of the way in which latency is minimized in the games. The communication protocol needs to be...
Privacy is a growing concern in the United States and around the world. The spread of the Internet and the seemingly boundaryless options for collecting, saving, sharing, and comparing information trigger consumer worries. Online practices of business and government agencies may present new ways to compromise privacy, and e-commerce and technologie...
Aspect-Oriented Programming (AOP) and Aspect-Oriented Software Development (AOSD) endeavor to aid programmers in the separation of concerns, specifically crosscutting concerns, as an advance in modularization. AOP does so using primarily language changes, while AOSD uses a combination of language, environment, and methodology. But the concepts of o...
In this essay, I consider some of the factors that are making it more and more difficult to expend the effort necessary to do system design. Because of changes in the economics of the field in both industry and research, we have become less able to take the time needed to do real system design, and to train the next generation of designers. Because...
In countries around the globe, the high end of auto racing is epitomized by Formula One. F1 cars are marvels of high technology. Connected to an experimental transmission and placed in a body designed for its aerodynamic properties, F1's equipment requires constant innovation. To enable data gathering to measure the effects of these innovations, F1...
While the slogan “the Network is the Computer” has been around for over a decade, few in the computer industry (including
those who used the slogan) actually believed it. At best, the slogan has been interpreted as meaning that the network is an
important way to connect computers.But there has been a hard and fast line in system design between the...
That the Internet is undergoing explosive growth is not news. However, how that growth is happening might come as a surprise to many. We are quickly reaching the point (if we have not already) when the majority of nodes on the Internet are not computers running browsers or web servers that are directly used by humans. Instead, the Internet is becom...
The author briefly describes some of the Jini networking system's features and attempts to show how this system's assumptions differ from those used to construct other distributed system frameworks. The author then characterizes mobile agent systems, showing such system's intrinsic differences from Jini and some of their basic problems. Finally, he...
Two major properties will characterize networks in the future. They will be ubiquitous, in which by default everything will be connected to a network of some form and work in coordination with other devices, services, and network-enabled entities. And they will be invisible, always there and always in use. Information transmission will occur whenev...
Ad hoc networking is often thought of as simply a mechanism by which participants in a network can find each other in some automated fashion. Our experience in building such networks, however, has convinced us that there is far more to ad hoc networks than simple discovery. In this paper, we will discuss the other requirements of the infrastructure...
We show a distributed object model for the Java^TM 1 System [1,6] (hereafter referred to simply as "Java") that retains as much of the semantics of the Java object model as possible, and only includes differences where they make sense for distributed objects. The distributed object system is simple, in that a) distributed objects are easy to use an...
The Jini community is an ongoing experiment in trying to mix open
source development techniques with industrial engineering development.
The Jini technology is an approach to distributed systems that uses
several Java properties. In particular, the Jini environment makes heavy
use of Java's ability to move objects, including each object's data and...
We argue that objects that interact in a distributed system need to be dealt with in ways that are intrinsically different from objects that interact in a single address space. These differences are required because distributed systems require that the programmer be aware of latency, have a different model of memory access, and take into account is...
This article focuses on Jini Architecture, a new approach to computing systems developed by software-based company Sun Microsystems Inc. This approach makes the network as central connecting issue. Jini technology assumes a changing network, in terms of both the components that make the network and the way these components interact. Jini architectu...
Object-oriented programming techniques have been used with great success for some time. But the techniques of object-oriented programming have been largely confined to the single address space, and have not been applicable to distributed systems. Recent advances in language technology have allowed a change in the way distributed systems are constru...
Remote procedure call systems have been around since around 1984
when they were first proposed (A.D. Birrell and B.J. Nelson, 1984).
During the intervening 15 years, numerous evolutionary improvements have
occurred in the basic RPC system, leading to improved systems-such as
NCS (T.H. Dineen et al., 1987)-that offer programmers more functionality
o...
Code reuse and distributed systems seem to have little in common,
except for the obvious similarity that both are just about to become
dominant forms of software. Further, both have been about to become the
dominant form of software for as long as most of us can remember. The
great success of these technologies seems always to be tantalizingly in
t...
How will the problem of software reuse be solved? I attempt to
make some predictions concerning some of the subjects that, while they
may not currently be important to the area of reuse, will become central
in the not too distant future. Let me begin by pointing out that the
question itself is somewhat ill-formed. There is no single problem of
reus...
The Java language and platform provide a base for distributed
computing that changes several conventional assumptions. In particular,
the Java Virtual Machine allows a group of Java-enabled machines to be
treated as a homogeneous group rather than a heterogeneous group,
despite possible differences in the machine architectures and underlying
operat...
Interfaces implementation provides a way to create objects that are polymorphic, that is, of more that one type. Such objects are important because they allow flexibility in the face of the strong type checking that makes Java less prone to programming errors and more secure from unsafe practices. Interfaces in Java let programmers construct polymo...
Java is a general-purpose, object-oriented programming language that tries to use the best aspects of other languages while remaining as simple as possible to get the job done. Specifically, Java is more than just a language for Web programming. This paper discusses some features that make Java an interesting and promising general-purpose programmi...
The JavaTM system (hereafter referred to simply as "Java") inherently supports the transmission of stateless computation in the form of object classes. In this paper we address the related task of capturing the state of a Java object in a serialized form for the purposes of transmission or storage, to be used later in reconstituting an equivalent o...
Goals and content: The morning session will focus on the Java language, Java safety and security, and the Java object model. The afternoon session will focus on doing collabroative applications in the Java environment, emphasizing such class libraries as those for remote method invocation, object serialization, and multi-media presentation and coll...
The Java™ 1 system (hereafter referred to simply as "Java") inherently supports the transmission of stateless computation in the form of object classes. In this paper we address the related task of capturing the state of a Java object in a serialized form for the purposes of transmission or storage, to be used later in reconstituting an equivalent...
In order to support long-lived distributed objects, object activation is required. Activation allows an object to alternate between periods of activity, where the object implementation executes in a process; and periods of dormancy, where the object is on disk and utilizes no system resources. We describe an activation protocol for distributed obje...
In this report, we show how to build a distributed system allowing objects to register interest in and receive notifications of events in other objects. The system is built on top of a pair of interfaces that are interesting only in their extreme simplicity. We then present a simple and efficient implementation of these interfaces. Next, we show ho...
An abstract is not available.
Multiple inheritance is a difficult and complex feature added to C++ at release 2.0. Cargill argues that the addition was a step backward in that the feature adds complexity to the language without adding functionality. His basis for the latter half of this claim is that no example of multiple inheritance has been given which cannot be rewritten in...
We argue that objects that interact in a distributed system need to be dealt with in ways that are intrinsically different from objects that interact in a single address space. These differences are required because distributed systems require that the programmer be aware of latency, have a different model of memory access, and take into account is...
From the Publisher:This book contains the formal specification for the Jini technology. It offers a review of distributed computing fundamentals, an overview of the Jini architecture, and an introduction to the key concepts that are the source of the technology's simplicity and powerremote objects, leasing, distributed events, and a two-phase comm...
From the Publisher:Built on top of the Java software infrastructure, Jini technology enables all types of services and devices to work together in a communityorganized without extensive planning, installation, or human intervention. Jini technology allows the lines to blur between what is hardware and what is software by representing all hardwar...
The article Authentication in Distributed Systems: Theory and Practice[1] has become a standard work in security, offering a formal theory that can be used to think about systems that claim to authenticate principals in a distributed system. However, the formal parts of the paper are presented entirely axiomatically. This presentation allows easy t...