Classics
- ACM
  collected algorithms.
Available online http://calgo.acm.org/. Current December 2011.
 
- Alfred V.
  Aho, Brian W. Kernighan, and Peter J.
  Weinberger.
The AWK
  Programming Language.
Addison-Wesley, Reading, MA, 1988.
 
- Christopher Alexander, Sara
  Ishikawa, Murray Silverstein, Max Jacobson,
  Ingrid Fiksdahl-King, and Shlomo Angel.
A Pattern
  Language.
Oxford University Press, Oxford, 1977.
 
- Ross Anderson.
Why information security is hard—an economic perspective.
In 17th Annual Computer Security Applications Conference
  (ACSAC'01), page 0358, Los Alamitos, CA, USA, 2001. IEEE Computer
  Society.
(doi:10.1109/ACSAC.2001.991552)
 
- American National
  Standard for Information Systems — programming language — C:
  ANSI X3.159–1989, December 1989.
(Also ISO/IEC 9899:1990).
 
- Phillip G.
  Armour.
The case for a new business model: Is software a product or a medium?
Communications of the ACM, 43(8):19–22, August 2000.
 
- Association for Computing Machinery.
The ACM computing
  classification system (1998).
Online. http://www.acm.org/class/1998/ccs98.html, January 1999, 1998.
 
- Matthew H.
  Austern.
Generic
  Programming and the STL: Using and Extending the C++ Standard Template
  Library.
Addison-Wesley, Reading, MA, 1998.
 
- J.W.
  Backus, F.L. Bauer, J.Green,
  C. Katz, J.McCarthy, P. Naur,
  A.J.Perlis, H. Rutishauser,
  K. Samuelson, B. Vauquois, J.H.
  Wegstein, A. van Vinjgaarden, and M. Woodger.
Revised report on the algorthmic language ALGOL 60.
IFIP, 1960.
 
- Janet
  Barnes, Rod Chapman, Randy Johnson,
  James Widmaier, Bill Everett, and
  David Cooper.
Engineering the
  Tokeneer enclave protection system.
In IEEE International Symposium on Secure Software Engineering,
  Los Alamitos, California, March 2006.
 
- V. Basili,
  C. Caldiera, and D. H. Rombach.
Goal
  question metric paradigm.
In Encyclopedia of Software Engineering, volume 2, pages 528–532.
  John Wiley and Sons, New York, 1994.
 
- L. Bass,
  P. Clements, and R. Kazman.
Software Architecture in Practice.
Addison-Wesley, Reading, MA, 1998.
 
- Kent Beck
  and Cynthia Andres.
Extreme
  Programming Explained: Embrace Change.
Addison-Wesley, Boston, MA, second edition, 2004.
 
- Jon Louis
  Bentley.
Programming pearls: Little languages.
Communications of the ACM, 29(8):711–721, August 1986.
 
- Jon Louis
  Bentley.
Programming
  Pearls.
Addison-Wesley, Reading, MA, second edition, 1999.
 
- Stephen P. Berczuk and Brad
  Appleton.
Software
  Configuration Management Patterns: Effective Teamwork, Practical
  Integration.
Addison-Wesley, Boston, MA, 2002.
 
- Hal
  Berenson, Phil Bernstein, Jim Gray,
  Jim Melton, Elizabeth O'Neil, and
  Patrick O'Neil.
A critique of ANSI
  SQL isolation levels.
In SIGMOD '95: Proceedings of the 1995 ACM SIGMOD international
  conference on Management of data, pages 1–10, New York, NY, USA,
  1995. ACM.
(doi:10.1145/223784.223785)
 
- Joshua T. Bloch.
Effective
  Java.
Addison-Wesley, Boston, MA, 2001.
 
- Joshua Bloch.
How to design a good
  api and why it matters.
In OOPSLA '06: Companion to the 21st ACM SIGPLAN conference on
  Object-oriented programming languages, systems, and applications,
  pages 506–507, New York, NY, USA, 2006. ACM Press.
(doi:10.1145/1176617.1176622)
 
- Barry W.
  Boehm, Bradford Clark, Ellis Horowitz,
  Ray Madachy, Richard Shelby, and
  Chris Westland.
Cost
  models for future life cycle processes: COCOMO 2.
Annals of Software Engineering, 1:57–94, 1995.
 
- Barry W. Boehm.
Software Engineering Economics.
Prentice Hall, Englewood Cliffs, NJ, 1981.
 
- Barry W. Boehm.
The economics of software maintenance.
In Software Maintenance Workshop, pages 9–37, 1983.
 
- Barry W. Boehm.
Industrial software metrics top 10 list.
IEEE Software, 4(9):84–85, September 1987.
 
- Barry W. Boehm.
Software risk management: Principles and practices.
IEEE Software, 9(1):32–39, January/February 1991.
 
- R. S.
  Boyer and J. S. Moore.
A fast string searching algorithm.
Communications of the ACM, 20(10):262–272, October 1977.
 
- Sergey Brin
  and Lawrence Page.
The
  anatomy of a large-scale hypertextual web search engine.
Computer Networks, 30(1–7):107–117, April 1998.
Seventh International World Wide Web Conference Proceedings (WWW7).
 
- Mark Burgess.
Principles of
  Network and System Administration.
John Wiley and Sons, New York, 2001.
 
- Frank
  Buschmann, Regine Meunier, Hans Rohnert,
  Peter Sommerlad, and Michael Stal.
Pattern-Oriented
  Software Architecture, volume 1: A System of Patterns.
John Wiley and Sons, New York, 1996.
 
- David Candevoorde and
  Nicolai M. Josuttis.
C++ Templates:
  The Complete Guide.
Addison-Wesley, Boston, MA, 2003.
 
- Carnegie Mellon University,
  Software Engineering Institute.
Software
  technology review. quality measures taxonomy.
Online. http://www.sei.cmu.edu/str/taxonomies/view_qm.html, December 1998,
  1998.
 
- D. D.
  Chamberlin, M. M. Astrahan, K. P. Eswaran,
  P. P. Griffiths, R. A. Lorie,
  J. W. Mehl, P. Reisner, and B. W.
  Wade.
SEQUEL 2: A unified approach to data definition manipulation and control.
IBM Journal of Research and Development, 20(6):560–575, November
  1976.
 
- Fay Chang,
  Jeffrey Dean, Sanjay Ghemawat,
  Wilson C. Hsieh, Deborah A. Wallach,
  Mike Burrows, Tushar Chandra,
  Andrew Fikes, and Robert E. Gruber.
Bigtable: A distributed storage system for structured data.
In OSDI '06: 8th Symposium on Operating Systems Design and
  Implementation. USENIX Association, 2006.
 
- Peter
  Checkland.
Soft systems methodology.
In J. Rosenhead, editor, Rational Analysis for a
  Problematic World, chapter 4, pages 71–100. John Wiley and Sons, New
  York, 1989.
 
- Peter Pin-Shan
  Chen.
The entity-relationship model — toward a unified view of data.
ACM Transactions on Database Systems, 1(1):9–36, March
  1976.
 
- Clayton M.
  Christensen.
The Innovator's Dilemma: When New Technologies Cause Great Firms to
  Fail.
Harvard Business School Press, Cambridge, 1997.
 
- William F. Clocksin and
  Christopher S. Mellish.
Programming in Prolog.
Springer Verlag, second edition, 1984.
 
- Alistair
  Cockburn.
Agile Software
  Development.
Addison-Wesley, Boston, MA, 2001.
 
- Larry L. Constantine and
  Edward Yourdon.
Structured Design.
Prentice Hall, Englewood Cliffs, NJ, 1979.
 
- S. A. Cook.
The complexity of theorem prooving procedures.
In Proceeding of the 3rd ACM Symposium on Theory of Computing,
  pages 151–158. ACM, 1971.
 
- Alan Cooper.
The Inmates are Running the Asylum.
Sams, Indianapolis, IN, 1999.
 
- Flavin
  Cristian.
Understanding fault-tolerant distributed systems.
Communications of the ACM, 34(2):56–78, 1991.
(doi:10.1145/102792.102801)
 
- Desmond Francis D' Souza and
  Alan Cameron Wills.
Objects,
  Components, and Frameworks With UML : The Catalysis Approach.
Addison-Wesley, 1998.
 
- O-J. Dahl,
  B. Myrhaug, and K. Nygaard.
SIMULA common base language.
Technical Report S-22, Norwegian Computing Center, Oslo, Norway, 1970.
 
- Markus Dahm.
Byte code
  engineering.
In Clemens H. Cap, editor, JIT '99,
  Java-Informations-Tage 1999, pages 267–277. Springer-Verlag,
  September 1999.
 
- John Daniels.
Modeling with a sense of purpose.
IEEE Software, 19(1):8–10, January/February 2002.
 
- Fred D.
  Davis, Richard P. Bagozzi, and Paul R.
  Warshaw.
User acceptance of computer technology: a comparison of two theoretical models.
Manage. Sci., 35(8):982–1003, 1989.
 
- Fred D. Davis.
Perceived usefulness, perceived ease of use, and user acceptance of information
  technology.
MIS Quarterly, 13(3):319–340, September 1989.
 
- J. D.
  Day and H. Zimmermann.
The OSI reference model.
Proceedings of the IEEE, 71:1334–1340, 1983.
 
- Robert A. Day.
How to write a scientific paper.
IEEE Transactions on Professional Communication, PC-20(1):32–37,
  June 1977.
 
- Mark
  de Berg, Marc van Kreveld, Mark Overmars, and
  Otfried Schwarzkopf.
Computational
  Geometry: Algorithms and Applications.
Springer-Verlag, second edition, 2000.
 
- Jeffrey
  Dean and Sanjay Ghemawat.
MapReduce:
  Simplified data processing on large clusters.
In OSDI '04: 6th Symposium on Operating Systems Design and
  Implementation, pages 137–149, Berkeley, CA, 2004. USENIX
  Association.
 
- H. M.
  Deitel and M. S. Kogan.
The Design of OS/2.
Addison-Wesley, 1992.
 
- R. DeMillo, R. Lipton, and
  A. Perlis.
Social processes and proofs of theorems and programs.
Communications of the ACM, 22(5):271–280, 1979.
(doi:10.1145/360363.360369)
 
- Peter J.
  Denning.
Working sets past and present.
IEEE Transactions on Software Engineering, 6(1):64–84, January
  1980.
 
- Edsger Wybe
  Dijkstra.
Go to statement considered harmful.
Communications of the ACM, 11(3):147–148, March 1968.
 
- Edsger Wybe
  Dijkstra.
The structure of THE multiprogramming system.
Communications of the ACM, 11(5):341–346, May 1968.
 
- Edsger W.
  Dijkstra.
Co-operating sequential processes.
In F. Genuys, editor, Programming Languages: NATO
  Advanced Study Institute, pages 43–112. Academic Press, London,
  1968.
 
- Edsger W.
  Dijkstra.
Notes on
  structured programming.
T.H.-Report 70-WSK-03, Technological University Eindhoven, Department of
  Mathematics, Eindhoven, NL, April 1970.
Available online http://www.cs.utexas.edu/users/EWD/ewd02xx/EWD249.PDF.
  Current December 2011.
 
- Edsger W.
  Dijkstra.
The humble programmer — 1972 turing award lecture.
Communications of the ACM, 15(10):859–866, October 1972.
 
- In Proc. Fourth ACM
  Symposium on Principles of Programming Languages, pages 206–214, New
  York, January 1977. ACM Press.
 
- Ken Arnold (editor), Jim
  Waldo, and the Jini Technology Team.
The Jini
  Specifications.
Addison-Wesley, second edition, 2000.
 
- K. P.
  Eswaran, J. N. Gray, R. A. Lorie, and
  I. L. Traiger.
The notions of consistency and predicate locks in a database system.
Communications of the ACM, 19(11):624–633, 1976.
(doi:10.1145/360363.360369)
 
- Jean D. Ichbiah
  et al.
Reference Manual for the Ada Programming Language, ANSI/MIL-STD-1815
  A-1983.
Castle House Publication Ltd., 1983.
 
- Michael E. Fagan.
Advances in software inspections.
IEEE Transactions on Software Engineering, SE-12(7):744–751,
  July 1986.
 
- Roy T.
  Fielding and Richard N. Taylor.
Principled design of the modern Web architecture.
ACM Transactions on Internet Technology, 2(2):115–150, 2002.
(doi:10.1145/514183.514185)
 
- Martin
  Fowler and Kendall Scott.
UML Distilled: Applying the Standard Object Modeling Language.
Addison-Wesley, Reading, MA, 1997.
 
- Martin Fowler.
UML
  Distilled: A Brief Guide to the Standard Object Modeling Language.
Addison-Wesley, Boston, MA, third edition, 2003.
 
- Richard P. Gabriel and Ron
  Goldman.
Mob software: The
  erotic life of code.
Presented at the ACM Conference on Object-Oriented Programming, Systems,
  Languages, and Applications on October 19, 2000, in Minneapolis, Minnesota.,
  October 2000.
Online http://oopsla.acm.org/oopsla2k/postconf/Gabriel.pdf. Current October
  2004.
 
- Emden R.
  Gansner and Stephen C. North.
An open graph visualization system and its applications to software
  engineering.
Software: Practice & Experience, 30(11):1203–1233, 2000.
(doi:10.1002/1097-024X(200009)30:11<1203::AID-SPE338>3.3.CO;2-E)
 
- M. R.
  Garey and D. S. Johnson.
Computers and Intractability: A Guide to the Theory of
  NP-Completeness.
W. H. Freeman and Company, 1979.
 
- Emden R.
  Gasner, Eleftherios Koutsofios, Stephen C.
  North, and Kiem-Phong Vo.
A technique for drawing directed graphs.
IEEE Transactions on Software Engineering, 19(3):124–230, May
  1993.
 
- Joshua Gay, editor.
Free software free society : selected essays of Richard M.
  Stallman.
Free Software Foundation Inc., Boston, 2002.
 
- Rishab Aiyer
  Ghosh.
Study
  on the: Economic impact of open source software on innovation and the
  competitiveness of the information and communication technologies (ICT)
  sector in the EU.
Available online
  http://ec.europa.eu/enterprise/ict/policy/doc/2006-11-20-flossimpact.pdf.,
  November 2006.
Prepared by MERIT for the European Commission under the contract
  ENTR/04/112.
 
- Robert L. Glass.
Software Runaways: Lessons Learned from Massive Software Project
  Failures.
Prentice Hall, Englewood Cliffs, NJ, 1998.
 
- Adele Goldberg.
Smalltalk 80:
  The Language and its Implementation.
Addison Wesley, Reading, MA, 1980.
 
- David
  Goldberg.
What every computer scientist should know about floating-point arithmetic.
ACM Comput. Surv., 23(1):5–48, 1991.
(doi:10.1145/103162.103163)
 
- James
  Gosling, Bill Joy, Guy Steele, and
  Gilad Bracha.
The Java
  Language Specification.
Addison-Wesley, third edition, 2005.
 
- Don
  Gotterbarn, Keith Miller, and Simon Rogerson.
Software engineering code of ethics is approved.
Communications of the ACM, 42(10):102–107, October 1999.
 
- Jim Gray.
The
  transaction concept: Virtues and limitations.
In VLDB '1981: Proceedings of the seventh international conference on
  Very Large Data Bases, pages 144–154. VLDB Endowment, 1981.
 
- John Grimond.
The Economist style
  guide.
Also available online http://www.economist.com/research/StyleGuide/.,
  2005.
 
- Theo
  Haerder and Andreas Reuter.
Principles of transaction-oriented database recovery.
ACM Computing Surveys, 15(4):287–317, 1983.
(doi:10.1145/289.291)
 
- M. H. Halstead.
Elements of Software Science.
Elsevier New Holland, New York, 1977.
 
- Ahmed E.
  Hassan, Richard C. Holt, and Audris Mockus,
  editors.
2004.
Available online
  http://msr.uwaterloo.ca/msr2004/MSR2004ProceedingsFINAL_IEE_Acrobat4.pdf.
 
- Pat Helland.
If you have too much data, then 'good enough' is good enough.
Communications of the ACM, 54:40–47, June 2011.
(doi:10.1145/1953122.1953140)
 
- Elisabeth Hendrickson and
  Martin Fowler (editors).
The software engineering of internet software.
IEEE Software, 19(2), March/April 2002.
Special issue.
 
- John L. Hennessy and David A.
  Patterson.
Computer Architecture: A Quantitative Approach.
Morgan Kaufmann, San Mateo, CA, second edition, 1996.
 
- S. M.
  Henry and D. Kafura.
Software structure metrics based on information flow.
IEEE Transactions on Software Engineering, SE-7(5):510–518,
  1981.
 
- Val Henson.
An
  analysis of compare-by-hash.
In Proceedings of HotOS IX: The 9th Workshop on Hot Topics in Operating
  Systems, pages 13–18, Berkeley, CA, May 2003. USENIX
  Association.
 
- Maurice
  Herlihy and J. Eliot B. Moss.
Transactional memory:
  Architectural support for lock-free data structures.
In ISCA '93: Proceedings of the 20th Annual International Symposium on
  Computer Architecture, pages 289–300, New York, NY, USA, 1993. ACM.
(doi:10.1145/165123.165164)
 
- A. R.
  Hevner, S. T. March, J. Park, and
  S. Ram.
Design science in information systems research.
MIS Quarterly, 28(1):75–105, 2004.
 
- C. A. R. Hoare.
Proof of a program: Find.
Communications of the ACM, 14(1):39–45, January 1971.
 
- C. A. R. Hoare.
Communicating sequential processes.
Communications of the ACM, 21(8):666–677, August 1978.
 
- Charles
  Antony Richard Hoare.
The emperor's old clothes.
Communications of the ACM, 24(2):75–83, 1981.
(doi:10.1145/358549.358561)
 
- Richard C.
  Holt, Andy Schürr, Susan Elliott Sim, and
  Andreas Winter.
GXL: a graph-based standard exchange format for reengineering.
Science of Computer Programming, 60(2):149–170, 2006.
(doi:10.1016/j.scico.2005.10.003)
 
- R. C. Houghton.
Software development tools: a profile.
Computer, pages 63–70, May 1983.
 
- Roger
  Hunt and John Shelley.
Computers and
  Common Sense.
Prentice Hall, Englewood Cliffs, NJ, fourth edition, 1988.
 
- IBM.
IBM System/360 Principles of Operation, 1964.
 
- Roberto Ierusalimschy,
  Luiz Henrique de Figueiredo, and Waldemar Celes
  Filho.
Lua—an extensible extension language.
Software: Practice & Experience, 26(6):635–652, 1996.
(doi:10.1002/(SICI)1097-024X(199606)26:6<635::AID-SPE26>3.0.CO;2-P)
 
- Roberto
  Ierusalimschy.
Programming in
  Lua.
Lua.org, Rio de Janeiro, second edition, 2006.
 
- Ross
  Ihaka and Robert Gentleman.
R: A language for data analysis
  and graphics.
Journal of Computational and Graphical Statistics, 5(3):299–314,
  September 1996.
 
- Motorola Inc.
M68000 16/32-bit microprocessor: Programmer's reference manual.
Ref. No. B050, 1984.
 
- Kathleen
  Jensen and Niklaus Wirth.
PASCAL User Manual and Report.
Springer Verlag, second edition, 1975.
 
- Richard
  Jones and Rafael Lins.
Garbage
  Collection: Algorithms for Automatic Dynamic Memory Management.
Wiley, New York, 1996.
 
- Cliff Jones.
Systematic Software
  Development using VDM.
Prentice Hall, Englewood Cliffs, NJ, 1990.
 
- Guy L. Steele Jr.
Growing a language.
Higher-Order and Symbolic Computation, 12:221–236, 1999.
 
- Dennis Kafura.
Object-Oriented
  Software Design and Construction with C++.
Prentice Hall, Englewood Cliffs, NJ, 1998.
 
- David A. King.
The scientific impact of nations.
Nature, 430:311–316, July 2004.
 
- Donald E. Knuth.
Computer
  science and its relation to mathematics.
The American Mathematical Monthly, 81(4):323–343, April
  1947.
 
- Donald E. Knuth.
An empirical study of FORTRAN programs.
Software: Practice & Experience, 1:105–133, 1971.
 
- Donald E. Knuth.
Computer programming
  as an art.
In Robert L. Ashenhurst, editor, ACM Turing Award
  Lectures, pages 33–46. Addison-Wesley, Reading, MA, 1987.
 
- Donald E. Knuth.
Literate
  Programming.
University of Chicago Press, Stanford, CA, 1992.
 
- Donald E. Knuth.
The Art of
  Computer Programming, volume 3: Sorting and Searching.
Addison-Wesley, Reading, MA, second edition, 1998.
 
- Andrew
  Koenig and Barbara Moo.
Ruminations on
  C++: A Decade of Programming Insight and Experience.
Addison-Wesley, 1996.
 
- Robert
  Kowalski.
Predicate logic as programming language.
In Jack L. Rosenfeld, editor, Information Processing 74,
  Proceedings of IFIP congress 74, pages 569–574. International
  Federation of Information Processing, North-Holland, August 1974.
 
- Glenn
  Krasner.
Smalltalk 80: Bits of History, Words of Advice.
Addison Wesley, 1980.
 
- Butler W.
  Lampson.
Hints
  for computer system design.
Operating Systems Review, 15(5):33–48, October 1983.
 
- Chris
  Lattner and Vikram Adve.
LLVM: A compilation framework for lifelong program analysis &
  transformation.
In CGO '04: Proceedings of the 2004 International Symposium on Code
  Generation and Optimization, March 2004.
(doi:10.1109/CGO.2004.1281665)
 
- James Lavin.
Proving almost anything: a beginner's guide to a world with infinite solutions.
IEEE Potentials, pages 6–7, February/March 1996.
 
- Karl Lieberherr and Ian
  Holland.
Assuring
  good style for object-oriented programs.
IEEE Software, 6(5):38–48, September 1989.
 
- Thomas A. Limoncelli and
  Christine Hogan.
The Practice of
  System and Network Administration.
Addison-Wesley, 2001.
 
- Peter Van Der
  Linden.
Expert C Programming.
Prentice Hall, Englewood Cliffs, NJ, 1994.
 
- Joan Magretta.
What Management
  Is.
The Free Press, New York, 2002.
 
- T. J. McCabe.
A complexity measure.
IEEE Transactions on Software Engineering, 2(4):308–320,
  1976.
 
- Robert M. Metcalfe and
  David R. Boggs.
Ethernet: Distributed packet switchig for local computer networks.
Communications of the ACM, 19(7):395–403, July 1976.
 
- George A. Miller.
The magical number seven, plus
  or minus two: Some limits on our capacity for processing information.
Psychological Review, 63:81–97, 1956.
Also available online http://psychclassics.yorku.ca/Miller/ (December
  2005).
 
- R. Milo,
  S. Shen-Orr, S. Itzkovitz,
  N. Kashtan, D. Chklovskii, and
  U. Alon.
Network motifs: Simple building blocks of complex networks.
Science, 298(5594):824–827, October 2002.
(doi:10.1126/science.298.5594.824)
 
- Gordon E. Moore.
Cramming
  more components onto integrated circuits.
Electronics, 38(8):114–117, April 1965.
 
- P. Naur.
Programming languages, natural languages, and mathematics.
In Proc. Second ACM Symposium on Principles of Programming
  Languages, pages 137–148, January 1975.
 
- Jakob Nielsen.
Usability
  Engineering.
Morgan Kaufmann, San Francisco, 1994.
 
- Object Management Group.
The
  common object request broker architecture (CORBA/IIOP), December 2002.
Also available online
  http://www.omg.org/technology/documents/formal/corba_iiop.htm. May
  2003.
 
- Elliot I.
  Organick.
The Multics System: An Examination of its Structure.
MIT Press, Cambridge, 1972.
 
- Ian Parberry.
A guide for new referees in theoretical computer science.
Information and Computation, 112(1):96–116, July 1994.
(doi:10.1006/inco.1994.1053)
 
- C. Northcote
  Parkinson.
Parkinson's Law: The Pursuit of Progress.
John Murray, London, 1958.
 
- David Lorge
  Parnas.
On the criteria to be used for decomposing systems into modules.
Communications of the ACM, 15(12):1053–1058, December 1972.
Also in [HW01] pp. 145–155.
 
- David L. Parnas.
On the design and development of program families.
IEEE Transactions on Software Engineering, SE-2(1):1–9, March
  1976.
 
- David A.
  Patterson.
Latency lags bandwidth.
Communications of the ACM, 47(10):71–75, 2004.
 
- Charles Petzold.
Code: The
  Hidden Language of Computer Hardware and Software.
Microsoft Press, Redmond, WA, 1999.
 
- Estelle M. Phillips and
  Derek S. Pugh.
How to Get a
  PhD.
Open University Press, Buckingham, UK, third edition, 2000.
 
- Roger Pressman.
Software
  Engineering: A Practitioner's Approach.
McGraw-Hill, New York, sixth edition, 2004.
 
- Henry Rabinowitz and Chaim
  Schaap.
Portable C.
Prentice Hall, Englewood Cliffs, NJ, 1990.
 
- Eric S. Raymond.
The Cathedral
  and the Bazaar: Musings on Linux and Open Source by an Accidental
  Revolutionary.
O' Reilly and Associates, Sebastopol, CA, 2001.
 
- Martin Richards and Colin
  Whitby-Strevens.
BCPL — The Language and its Compiler.
Cambridge University Press, 1979.
 
- Don
  Roberts, John Brant, and Ralph E. Johnson.
A refactoring tool for Smalltalk.
Theory and Practice of Object Systems, 3(4):39–42, 1997.
 
- James
  Rumbaugh, Ivar Jacobson, and Grady Booch.
The Unified Modeling Language Reference Manual.
Addison-Wesley, Boston, MA, second edition, 2004.
 
- Scott D. Sagan.
The
  problem of redundancy problem: Why more nuclear security forces may produce
  less nuclear security.
Risk Analysis, 24(4):935–946, 2004.
 
- Yasushi
  Saito and Marc Shapiro.
Optimistic replication.
ACM Computing Surveys, 37(1):42–81, 2005.
(doi:10.1145/1057977.1057980)
 
- J. H.
  Saltzer, D. P. Reed, and D. D. Clark.
End-to-end arguments in system design.
ACM Transactions on Computer Systems, 2(4):277–288, November
  1984.
 
- Peter H. Salus.
A Quarter Century of UNIX.
Addison-Wesley, Boston, MA, 1994.
 
- Robert W. Scheifler and James
  Gettys.
X Window System: The Complete Reference to Xlib, X Protocol,
  ICCCM, XLFD.
Digital Press, third edition, 1992.
 
- Douglas C. Schmidt, Michael
  Stal, Hans Rohnert, and Frank Buschmann.
Pattern-Oriented
  Software Architecture, volume 2: Patterns for Concurrent and
  Networked Objects.
John Wiley and Sons, New York, 2000.
 
- Michael L. Scott.
Programming Language Pragmatics.
Morgan Kaufmann Publishers, San Francisco, 1999.
 
- Robert C.
  Seacord.
Secure Coding in C and C++.
Addison-Wesley, Boston, MA, 2006.
 
- Robert
  Sedgewick.
Algorithms in
  C++: Parts 1–4 Fundamentals Data Structures Sorting Searching.
Addison-Wesley, Boston, MA, third edition, 1998.
 
- Robert
  Sedgewick.
Algorithms in
  C++: Part 5 Graph Algorithms.
Addison-Wesley, Reading, MA, third edition, 2002.
 
- Claude E.
  Shannon.
A mathematical theory of communication.
Bell System Technical Journal, 27:379–423 and 623–656, July and
  October 1948.
 
- Mary Shaw
  and David Garlan.
Software
  Architecture: Perspectives on an Emerging Discipline.
Prentice Hall, Englewood Cliffs, NJ, 1996.
 
- Harold A. Small,
  editor.
Form and Function: Remarks on Art by Horatio Greenough.
University of California Press, Berkeley and Los Angeles, 1947.
 
- Alan Jay Smith.
The task
  of the referee.
Computer, 23(4):65–71, 1990.
(doi:10.1109/2.55470)
 
- Ian
  Sommerville.
Software
  Engineering.
Addison-Wesley, Boston, MA, seventh edition, 2004.
 
- Wayne
  Stevens, Glenford Myers, and Larry L.
  Constantine.
Structured design.
IBM Systems Journal, 13(2):115–139, May 1974.
 
- Bjarne
  Stroustrup.
The Design and
  Evolution of C++.
Addison-Wesley, Boston, MA, 1994.
 
- Clemens
  Szyperski.
Component
  Software: Behind Object-Oriented Programming.
Addison-Wesley, Reading, MA, 1998.
 
- Clemens
  Szyperski.
Component Software: Behind Object-Oriented Programming.
Addison-Wesley, Reading, MA, second edition, 2002.
 
- Frederick Winslow
  Taylor.
The Principles of Scientific Management.
Institute of Industrial Engineers, 1998.
1st edition 1911.
 
- Teitelman and Warren et al.
InterLISP Reference Manual.
Xerox Palo Alto Research Center, Palo Alto, California, third revision edition,
  1978.
 
- Alan M. Turing.
On computable numbers, with an application to the Entscheidungs Problem.
Proceedings of the London Mathematical Society, 2(42):230–265,
  1936.
Corrections in 2(43):544–546.
 
- Alan M. Turing.
Computability and λ-definability.
Journal of Symbolic Logic, 2:153–163, 1937.
 
- David A. Turner.
Miranda — a non-strict functional language with polymorphic types.
In Jean-Pierre Jouannaud, editor, Proceedings of the
  Conference on Functional Programming Languages and Computer
  Architecture, pages 1–16. Springer-Verlag, September 1985.
Lecture Notes in Computer Science 201.
 
- UNIX
  Programmer's manual, volume 1.
Holt, Rinehart and Winston, seventh edition, 1982.
 
- UNIX
  Programmer's manual: Supplementary Documents, volume 2.
Holt, Rinehart and Winston, seventh edition, 1982.
 
- Viswanath Venkatesh,
  Michael G. Morris, Gordon B. Davis, and
  Fred D. Davis.
User acceptance of information
  technology: Toward a unified view.
MIS Quarterly, 27(3):425–478, 2003.
 
- Georg von Krogh and Eric von
  Hippel.
The promise of research on open source software.
Management Science, 52(7):975–983, July 2006.
(doi:10.1287/mnsc.1060.0560)
 
- Jim Waldo.
On system design.
In OOPSLA '06: Proceedings of the 21st annual ACM SIGPLAN conference on
  Object-oriented programming languages, systems, and applications,
  pages 467–480, New York, NY, USA, 2006. ACM Press.
(doi:10.1145/1167473.1167513)
 
- David H. D. Warren.
An abstract Prolog instruction set.
Technical Note 309, SRI International, Artificial Intelligence Center,
  Computer Science and Technology Division, 333 Ravenswood Ave., Menlo Park,
  CA, October 1983.
 
- Jane
  Webster and Richard T. Watson.
Analyzing the past to prepare for the future: Writing a literature review.
MIS Quarterly, 26(2):xiii–xxiii, June 2002.
 
- Karl E. Wiegers.
Software
  Requirements.
Microsoft Press, Redmond, WA, second edition, 2003.
 
- Norbert Wiener.
Cybernetics or Control and Communication in the Animal and the
  Machine.
MIT Press, Cambridge, MA, 1948.
 
- Paul R.
  Wilson, Mark S. Johnstone, Michael Neely, and
  David Boles.
Dynamic storage
  allocation: A survey and critical review.
In Henry G. Baker, editor, IWMM '95: Proceedings of the
  International Workshop on Memory Management, pages 1–116, Berlin,
  September 1995. Springer-Verlag.
Lecture Notes in Computer Science 986.
 
- Niklaus Wirth.
Algorithms + Datastructures = Programs.
Prentice–Hall, Englewood Cliffs, NJ, 1976.
 
- Stephen Wolfram.
Mathematica : A System for doing Mathematics by Computer.
Addison-Wesley, second edition, 1991.