Andrew Richard Koenig (IPA: [ˈkøːnɪç]; born June 1952) is a former AT&T and Bell Labs researcher and programmer. He is the author of C Traps and Pitfalls and co-author (with Barbara Moo) of Accelerated C++ and Ruminations on C++, and his name is associated with argument-dependent name lookup, also known as "Koenig lookup", though he is not its inventor. He served as the Project Editor of the ISO/ANSI standards committee for C++, and has authored over 150 papers on C++.
Contents
Early life and career
Koenig graduated from The Bronx High School of Science in 1968 and went on to receive a Bachelor of Science degree and a Master of Science degree from Columbia University in New York. He was a prominent member of the Columbia University Center for Computing Activities (CUCCA) in the late 1960s and 1970s. He wrote the first e-mail program used at the university.
In 1977, he joined the technical staff of Bell Labs in Murray Hill, New Jersey, from which he later retired.
The first book he authored, in 1987, C Traps and Pitfalls, had been motivated by his prior paper and work, mostly as a staff member at Columbia University, on a different computer language, PL/I. In 1977, as a recently hired staff member at Bell Labs, he presented a paper called "PL/I Traps and Pitfalls" at a SHARE meeting in Washington, D.C.
Selected bibliography
Books
Koenig, Andrew, C Traps and Pitfalls, Reading, Mass.: Addison-Wesley, 1988, c1989. ISBN 0-201-17928-8
Koenig, Andrew; Moo, Barbara, Ruminations on C++, Addison-Wesley, 1997. ISBN 0-201-42339-1
Koenig, Andrew; Moo, Barbara, Accelerated C++, Addison-Wesley, 2000.ISBN 0-201-70353-X
Papers
Andrew Koenig, Barbara Moo: Teaching Standard C++, Part 2. Journal of Object Oriented Programming (JOOP) 11(8): 64-67 (1999)
Andrew Koenig, Barbara Moo: Teaching Standard C++, Part 3. JOOP 11(9): 59-63 (1999)
A Quiet Revolution. JOOP 10(8): 10–13, 16 (1998)
Report from Morristown. JOOP 10(9): 5-8 (1998)
A Programming Revolution in Languages Founded on Object Logic. JOOP 11(1): 13-16 (1998)
Is Abstraction Good? JOOP 11(2): 66-69 (1998)
Simulating Dynamic Types in C++, Part 1. JOOP 11(3): 76–78, 80 (1998)
Simulating Dynamic Types in C++, Part 2. JOOP 11(4): 63-67 (1998)
Why Are Vectors Efficient? JOOP 11(5): 71-75 (1998)
A Standard C++ Appetizer. JOOP 11(6): 85-87 (1998)
Andrew Koenig, Barbara Moo: Teaching Standard C++. JOOP 11(7): 11-17 (1998)
C++ in the Classroom: A Look Forward. JOOP 10(1): 59-61 (1997)
Turning an Interface Inside out. JOOP 10(2): 56-58 (1997)
Which Container Should we Teach First? JOOP 10(3): 10-12 (1997)
A ++decade of C++. JOOP 10(4): 20–23, 34 (1997)
Inheritance and Abbreviations. JOOP 10(5): 6–9, 21 (1997)