DDJ, April 2000 -- Algorithms


FEATURES

DR. DOBB'S EXCELLENCE IN PROGRAMMING AWARD

by Jonathan Erickson

Through his research and writings, Jon Bentley has made significant contributions to the art and science of computer programming. And he's the recipient of this year's Dr. Dobb's Excellence in Programming Award.

A NEW ROAD MAP OF ALGORITHM DESIGN TECHNIQUES

by Anany Levitin

Before outlining a new taxonomy, Anany reviews the four most general algorithm design techniques: brute force, divide-and-conquer, decrease-and-conquer, and transform-and-conquer.

MONTE CARLO METHODS

by Matthew Ginsberg

Bridge is one of a handful of classic games that have thus far eluded competent computer play. However, GIB, the Bridge program Matthew wrote and discusses here, proves to be a worthy competitor.

THE FASTEST SORTING ALGORITHM?

by Stefan Nilsson

Which sorting algorithm is the fastest? Stefan presents his answer to this age-old question.

GARBAGE COLLECTION ON THE RUN

by Joshua W. Burton

Joshua examines several incremental memory-management algorithms, including simple user-defined reference counts, before turning to analyzing the global connectedness of pointer structures.

AN EFFICIENT ALGORITHM FOR MAGNITUDE OPERATION

by S. Manivannan

Magnitude operation is widely used in signal and data processing for signal detection and power estimation in systems such as real-time displays for sensors, radars, sonars, and scanners for medical-imaging systems.

THE BLUETOOTH SPEC: PART II

by James Y. Wilson and Jason A. Kronz

Bluetooth technology is an open specification for wireless communication. In Part I, Jim and Jason examined the voluminous specification. This month, they focus on the features of the Baseband specification.

EMBEDDED SYSTEMS

DIGITAL FILTERING AND OVERSAMPLING

by Jim Ledin

Compared to analog filtering, digital filtering can provide higher overall system performance and reduce circuit complexity. Jim examines the technique of oversampling, which can be used to gain these seemingly contradictory benefits.

INTERNET PROGRAMMING

LORE: A DATABASE MANAGEMENT SYSTEM FOR XML

by Roy Goldman, Jason McHugh, and Jennifer Widom

Lore is a DBMS designed specifically for XML. In the same way that SQL queries relational DBMSs, Lore provides the query language Lorel for issuing expressive queries over XML data.

PROGRAMMER'S TOOLCHEST

EXAMINING THE PYGTK TOOLKIT

by Mitch Chapman and Brian Kelley

PyGtk brings the benefits of a high-level programming language to Gtk+ developers, and gives Python programmers access to a modern, high-performance GUI toolkit.

SOFTWARE CAREERS

THE IT LABOR SHORTAGE: FACT OR FICTION?

by Richard Ellis

Current reports present conflicting views of the job market for information technology workers. Richard goes below the surface to uncover the real story.

WHAT ARE YOU WORTH?

by Susan Simcox

A recent dice.com career and salary survey on the IT industry gave some surprising (and some not so surprising) results. Susan reports on this study.

ACE YOUR JOB INTERVIEW

by Alex Bykov

If you're in the market for a job, be prepared to answer a lot of technical questions during the job interview. Alex shares some of the questions you'll face and gives you answers you'll need.

COLUMNS

PROGRAMMING PARADIGMS

by Michael Swaine

Michael ain't misbehavin' as much as he's misinformin'. Of course, that's not his fault.

C PROGRAMMING

by Al Stevens

Ramblin' Jack Elliot has nothing on Al this month, as our man in C rambles from one topic to another.

JAVA Q&A

by David Epstein, Joseph Kiniry, and John Motil

JJ is a Java implementation originally designed as an educational programming language and environment. Although it's a subset of Java, JJ includes advanced programming features such as support for Design by Contract.

ALGORITHM ALLEY

by Jon Bentley

Caching often works well, but sometimes fails utterly. In this column, Jon examines why that happens and what you can do about it.

DR. ECCO'S OMNIHEURIST CORNER

by Dennis E. Shasha

There's bad blood around Ecco's flat, as the good doctor and his sidekick Liane lend a hand to medical science.

PROGRAMMER'S BOOKSHELF

by Jeffrey L. Taylor

Jeffrey examines the second editions of Radia Perlman's Interconnections: Bridges, Routers, Switches, and Internetworking Protocols, and Bruce Powel-Douglass' Real-Time UML: Developing Efficient Objects for Embedded Systems.

FORUM

EDITORIAL

by Jonathan Erickson

LETTERS

by you

NEWS & VIEWS

edited by Nicholas Baran

OF INTEREST

by Nicholas Baran and Amy Lincicum

SWAINE'S FLAMES

by Michael Swaine