India has 1.2 billion individuals, of which about 400 million are in the 1–15 age group and another about 400 million in the 15–35 age group. India, therefore, has the …
Nir Shavit's article "Data Structures in the Multicore Age" (Mar. 2011) was a thrill to read. I was especially intrigued by his exposition on concurrent objects. Also important …
To ensure the timely publication of articles, Communications created the Virtual Extension (VE) to expand the page limitations of the print edition by bringing readers the same high-quality articles in an online-only format. …
Daniel Reed writes about design and disruptive technologies. Mark Guzdial discusses the tension between teaching and research at U.S. universities. Judy Robertson argues in favor of educational video games in the classroom.
If you're one of the more than 1,000,000 scientists, practitioners, educators, or students who regularly read Communications of the ACM in print orvideo. …
Researchers have developed a new networking algorithm, modeled after the neurological development of the fruit fly, to help distributed networks self-organize more efficiently.
Leslie Valiant talks about machine learning; parallel computing, and his quest for simplicity.
New screen materials could lead to portable devices that are anything but rectangular, flat, and unbendable.
M. Frans Kaashoek discusses systems work, "undo computing," and what he learned from Andrew S. Tanenbaum.
Personalized news promises to make daily journalism profitable again, but technical and cultural obstacles have slowed the industry's adoption of automated personalization.
The National Strategy for Trusted Identities in Cyberspace represents a shift in the way the U.S. government is approaching identity management, privacy, and the Internet.
Considerable progress has been made toward the formation of a computing profession since we started tracking it in this column a decade ago.
One of the most popular and successful approaches to estimating software projects is the Putnam model. Developed in the 1970s by Larry Putnam, Sr., this model shares with …
Good software design is never easy, but stopping too soon makes the job more difficult.
Kode Vicious's thoughts on forking, config files, and using internal wikis.
Software developers should use empirical methods to analyze their designs to predict how working systems will behave.
In today's humongous database systems, clarity may be relaxed, but business needs can still be met.
Methods for evaluating and effectively managing the security behavior of employees.
Before building the network or its components, first understand the home and the behavior of its human inhabitants.
Partition data and operations, keep administration simple, do not assume one size fits all.
Can a programming language really help programmers write better programs?
Decision-making procedures in online social networks should reflect participants' political influence within the network.
Business continuity plans for the wireless world must address solar activity.
The roots of Google's PageRank can be traced back to several early, and equally remarkable, ranking techniques.
The interaction between computation and logic goes back to the beginnings of computer science with the development of computability theory in the 1930s. In recent decades, the interaction between computation …
We give a logical characterization of the polynomial-time properties of graphs with excluded minors.
The importance of data analysis has never been clearer. Globe-spanning scientific collaborations are exploring data-intensive questions at a scale …
Dremel is a scalable, interactive ad hoc query system for analysis of read-only nested data. By combining multilevel execution trees and columnar data layout, it is capable of running aggregation queries over trillion-row tables …
Last month (May 2011, p. 120) we posted a trio of brainteasers, including one as yet unsolved, concerning games and their roles and turns, with randomness either removed or inserted. Here, we offer solutions to two of them. How …
Leslie Valiant discusses machine learning, parallel computing, and computational neuroscience.