Introduction
Five years ago, as a plucky sophomore at Muhlenberg College and having just recently joined the ACM, I applied to become an associate editor for the journal ACM Crossroads. One year later, I found myself as Editor in Chief, tasked with overseeing the gathering, selection, editing, and typesetting of journal articles written by and for students throughout the world. In the time since, we've published nearly one hundred articles, changed our layout both of the print journal and the web site, and became one of the most widely-read ACM journals. It is time now, however, for me to turn the editorial reins over to Jerry Guo, a freshman at Yale University, such that he can continue our tradition of excellence (and so that I can focus on my dissertation!).
In this issue of Crossroads, we look back on some of the best articles that we have published, chosen by the editors based on feedback from readers like you. In the first article, "Introduction to Programming Shared-Memory and Distributed-Memory Parallel Computers," Cory Quammen sheds light on the differences between these two architectures and discusses OpenMP and MPI, two standards for programming for these different varieties of multiprocessing systems.
The second article, "Game-state Fidelity Across Distributed Interactive Games," by Aaron McCoy, Declan Delaney, and Tomas Ward introduces the reader to the technologies behind network-based multiplayer games. In their article, the authors explore one of the key challenges in creating a multiplayer network game, that is, maintaining the correct state of game data across all of the participants in the simulation. The networking architectures used in developing distributed interactive games and the problems encountered in their development are illustrated by a description of how the popular gaming title Unreal Tournament works.
Next, Mark Cohen discusses an instructional tool used to teach students to program to an interface, rather than an explicit implementation in his article "The Development of a Game Playing Framework Using Interface-based Programming." An interface is a model or contract that a programmer can code to when implementing a class, which allows for a great degree of implementation independence. Due to its object-oriented features, Java is a good tool for constructing interface-based frameworks, and Cohen's use of a game playing application framework is one that students should be easily able to relate with.
Finally, Ching Kang Cheng and Xiaoshan Pan's article, "Using Perception in Managing Unstructured Documents," shows how new and old approaches from cognitive science such as natural language processing systems, document clustering, and neural networks can be used to create information categorization systems and search engines. The authors envision future research that focuses on integrating the context of the user in the information retrieval, for example, the semantic web.
Please stop by our web site, http://www.acm.org/crossroads, to see our entire library of articles published in the twelve year history of Crossroads. Also, if you have any suggestions for the editorial board going forward, please do not hesitate to write a letter to the editors at crossroads@acm.org.
William Stevenson (billstevenson@acm.org) is a Ph.D. student in the Applied Cognitive Science Laboratory in the School of Information Sciences and Technology at the Pennsylvania State University. His main research interests are in cognitive modeling and operating systems. In his spare time, Bill enjoys cooking, the outdoors, and working on his Mac. He served as Editor in Chief of Crossroads from July 2001 to August 2005, and will now hold a seat on the Crossroads Editorial Advisory Board, along with serving on the ACM Membership Services Board.