Engineering -- an endless frontier
      home technology engineering branches engineer history essays bibliography  
aero   biological   chemical   civil   computer   electrical   environmental   mechanical   nuclear   systems
Computer science and engineering


Campbell-Kelly, M. and Aspray, W. 1996.  Computer: A History of the Information Machine.  New York Basic Books.

Ceruzzi, P. E. 1998.  A History of Modern Computing.  Cambridge: MIT Press.

Chandler, A. D. 2001.  Inventing the Electronic Centuyt: the Epic Story of the Consumer Electronic and Computer Industries.  New York: Free Press.

Hevner, A. R. and Berndt, D. J. 2000.  Eras of business computing.  Advances in Computers, 52: 1-90.

Ifrah, G. 2001.  The Universal History of Computing: From the Abacus to the Quantum Computer.  New York: Wiley.

Laplante, P., ed. 1996.  Great Papers in Computer Science.  New York: IEEE Press.

Maxor, S. 1995.  The history of the microcomputer – invention and evolution.  Proceedings of the IEEE, 83: 1601.

McCartney S. 1999.  ENIAC: The Triumphs and Tragedies of the World’s First Computer.  New York: Walker.

Metropolis, N., Howlett, J., and Rota, G. eds. 1980.  A History of Computing in the Twentieth Century.  New York: Academic Press.

Mowery, D. C., ed.  The International Software Market, New York: Oxford University Press.

Norberg, A. L. and O’neill, J. E. 1996.  Transforming Computer Technology: Information Processing for the Pentagon, 1062-1980.  Baltimore: Johns Hopkins.

Press, L. 1993.  Before the Altair: the history of personal computing.  Communications of the ACM, 30(9): 27-32.

Rojas, R. and Hashagen, U. eds. 2000.  The First Computers – History and Architectures.  Cambridge: MIT Press.

Sarkar, P. 2000.  A brief history of cellular automata.  ACM Computing Survey, 32: 80-107.

Spiegel, J. van der, Tau, J. F., Ala’ilima, T. F., and Ang, L. P. 2000.  The ENIAC: History, operation, and reconstruction in VLSI.  In Rojas and Hashagen (2000), pp. 121-89.

Wilkes, M. V. 1985.  Memories of a Computer Pioneer.  Cambridge: MIT Press.

Williams, M. R. 1985.  A History of Computing Technology.  Englewood Cliffs, NJ: Prentice-Hall.

Yau, S. S. 1996.  Essays on fifty years of computing.  Introduction to a special issue, Computer, 29(10), 24-67.

Yoffie, D. B. 1997.  Competing in the Age of Digital Convergence.  Cambridge: Harvard Business School Press.

Computer science

ACM. 1987.  ACM Turing Award Lectures: the First Twenty Years, New York: ACM Press. (Contains A. J. Perlis’s “The synthesis of algorithmic systems,” D. E. Knuth’s “Computer programming as an art,” E. W. Dijkstra’s “The humble programmer,” D. M. Ritchie’s “Reflection on software research,” and more.”

Borwein, J. M. and Borwein, P. B. 2001.  Challenges in mathematical computing.  Computing in Science and Engineering, 3(3): 48-54.

Brooks, F. 1996.  The compute scientist as toolsmith II.  Communications of the ACM, 39(3): 61-8.

Chabert, J. 1999.  A History of Algorithms.  Berlin: Springer.

Dennings, P. J., et al. 1989.  Computing as a discipline.  Communications of the ACM, 32(1): 9-23.

Hamming, R. W. 1968.  One man’s view of computer science.  In ACM Turing Award Lectures, ACM Press, pp. 207-18.

Hartmanis, J. 1995. On computational complexity and the nature of computer science.  ACM Computing Surveys, 27: 7-16.

Hartmanis, J. and Lin, H. eds. 1992.  Computing the Future: A Broader Agenda for Computer Science and Engineering.  Washington, D.C.: National Academy Press.

Hopcroft, J. E. 1990.  Reflections on computer science.  Annual Review of Computer Science, 4: 1-12.

Knuth, D. E. 1977.  Algorithms.  Scientific American. April, 236(4): 63-80.

Loui, M. C. 1996.  Strategic directions in research in theory of computing.  ACM Computing Surveys, 28: 565-89.

Mertens, S. 2002.  Computational complexity for physicists.  Computing in Science and Engineering, 4(3): 31-48.

Pollack, S. V. 1982.  The development of computer science.  In Studies in Computer Science, ed. S. V. Pollack, Washington, D.C.: The Mathematical Association of America, pp. 1-51.

Saiedian, H. ed. 1996.  An invitation to formal methods.  Special issue in Computer, April, 29(4): 16-30.

Sameh, A. 1996.  Computational science and engineering.  ACM Computing Surveys, 28: 810-7.

Sullivan, F. ed. 2000.  The top 10 algorithms.  Special issue in Computing in Science and Engineering, 2(1): 22-79.

Traub, J. F. and Wozniakowski, H. K. 1994.  Breaking Intractability.  Scientific American, January, 102-7.

Wegner, P. and Doyle, J. 1996.  Strategic directions in computing research.  ACM Computing Surveys, 28: 566-74.

Computer systems

Cerf, V. C. 2001.  Beyond the post-PC Internet.  Communications of the ACM, 44(9): 35-42.

Chetty, M. and Buyya, R. 2002.  Weaving computational grids: how analogous are they with electrical grids?  Computing in Science and Engineering, 4(4): 61-72.

Eckert, J. P. Jr. 1998.  A survey of digital computer memory systems.  IEEE Annals of the History of Computing.  20(4): 15-

Gray, J. and Siewiorek, D. P. 1991.  High availability computer systems.  Computer, 24(9): 39-40.

Hennessy, J. 1999.  The future of systems research.  Computer, 32(8): 27-35.

Hennessy, J. and Jouppi, N. P. 1991.  Computer technology and architecture: an evolving interaction. Computer, 24(9): 18-28.

Lampson, B. W. Hints for computer system design.

Merkle, R. C. 1998.  Making smaller, faster, cheaper computers.  Proceedings of the IEEE, 86: 2384.

Messina, P. et al. 1998.  Architecture.  Communications of the ACM, 41(1): 36-44.

Michell, G de. and Gupta, R. K. 1997.  Hardware/software co-design.  Proceedings of the IEEE, 85: 349-65.

Mudge, T. 1996.  Strategic directions in computer architecture.  ACM Computing Surveys, 24: 671-6.

Rau, B. R. and Schlansker, M. S. 2001.  Embedded computer architecture and automation.  Computer, 34(4): 75-9.

Smarr, L. ed. 1997.  Toward the 21st century.  Communications of the ACM, 40(11): 28-32.

Smith, R. E. 1989.  A historical overview of computer architecture.  IEEE Annals of the History of Computing, 10: 277-303.

Vajapeyam, S. and Valero, M., 2001. eds.  Early 21st century processors.  Computer, 34(4): 47-

Villasensor, J. and Mangione-Smith, W. H. 1997.  Configurable computing.  Scientific American, June, 66-71.

White, S. F., Melhart, B. E., and Lawson, H. W. eds. 2001. Engineering computer-based systems: meeting the challenge.  Computer, 34(11): 39-

Programming languages

Backus, H. 1980.  Programming in America in the 1950s – some personal impressions.  In Metropolis et al (1980), pp. 125-36.

Feldman, J. A. 1979.  Programming languages.  Scientific American, 241, December, 94-116.

Hooper, G. M. and Mauchly, J. W. 1953.  Influence of programming techniques on the design of computers.  Proceedings of the IRE, 40: 1250-4; reprinted in Proceedings of the IEEE, 85: 470 (1997).

Knuth, D. E. 1974.  Computing programming as an art.  In ACM Turing Award Lectures: The First Twenty Five Years, New York: ACM Press, (1987), pp. 33-46.

Knuth, D. E. and Pardo, L. T. 1980.  The early development of programming languages.  In Metropolis et al (1980), pp. 197-274.

Rosen, S. 1972.  Programming systems and languages 1965-1975.  Communications of the ACM, 15: 591-600.

Rosen, S. ed. 1967.  Programming Systems and Languages.  New York: McGraw Hill.

Sammet, J. E. 1972.  Programming languages: history and future.  Communications of the ACM.  15: 601-9.

Wegner, P. 1976.  Programming languages – the first 25 years.  IEEE Transaction on Computers, 1207-1225.

Operating system

Comerford, R. 1999.  The path to open source systems.  IEEE Spectrum, 36(5): 25-31.

Cusumano, M. A. and Selby, R. W. 1995.  Microsoft Secrets.  New York: Free Press.

Leavitt, N. 2001.  Linux: at a turning point?  Computer, 34(6): 12-6.

Ritchie, D. M. 1979.  The evolution of the unix time-sharing system.  In Laplante (1996), pp. 705-17.

Torvalds, L. 1999.  The Linux edge.  Communications of the ACM, 42(4): 38-9.

Software engineering

Beizer, B. 2000.  Software is different.  Annals of Software Engineering, 10: 293-310.

Bourque, P., Dupuis, R., Abran, A, Moore, J. W., and Tripp, L.  1999.  The guide to the software engineering body of knowledge.  IEEE Software, 16(6): 35-44.

Brooks, F. 1995.  The Mythical Man-month, 2nd ed.  New York: Addison Wesley.

Campbell-Kelly, M. 2003.  From Air Reservation to Sonic the Hedgehog: a History of the Software Industry.  Cambridge: MIT Press.

Comerford, R. 2000.  The new software paladins.  IEEE Specteum, 37(6): 56-61.

Doherty, C. and Uslander, T. 1998.  Plug-and play software hones car and plane manufacture.  IEEE Spectrum, 35(10): 39-42.

Edusi-Mensah, K. 1999.  Critical issues in abandoned information systems development projects.  Communications of the ACM, 40(9): 74-80.

Finkelsten, A. ed. 2000.  The future of software engineering.  ACM Press.

Gibbs, W. W. 1994.  Software’s chronic crisis.  Scientific American, 271(3): 86-95.

Gould, J. D. and Lewis, C. 1985.  Designing for usability: key principles and what designers think.  Communications of the ACM, 28: 300-11.

Hofmann, H. F. and Lehner, F.  2001. Requirements engineering as a success factor in software projects.  IEEE Software, 18(4): 58-67.

Johnson, L. 1998.  A view from the 1960s: how the software industry began.  IEEE Annals of the History of Computing, 20(1): 36-42.

Keil, M, Cule, P. E., Lyytinen, K., and Schmidt, R. C. 1998.  A framework for indentifying software project risks.  Communications of the ACM, 41(11): 76-85.

Littlewood, B. and Strigini, L. 1992.  The risks of software.  Scientific American, November, 62-73.

Meyer, B. 2001.  Software engineering in the academy.  Computer, 34(5): 28-36.

Parnas, D. L. 1999.  Software engineering programs are not computer science programs.  IEEE Software, 16(6): 19-30.

Robillard, P. N. 1999.  The role of knowledge in software development.  Communications of the ACM, 42(1): 87-92.

Shapiro, S. 1997.  Splitting the difference: The historical necessity of synthesis in software engineering.  IEEE Annals of the History of Computing, 19: 20-54.

Sultan, F. and Chan, L. 2000.  The adoption of new technology: the case of object-oriented computing in software companies. IEEE Transactions on Engineering Management, 47: 106-

Thayer, R. H. 2002.  Software system engineering: a tutorial.  Computer, 35(4): 68-73.

Tredennick, N. 1996. Microprocessor-based computers.  IEEE Computer, 29(10): 27-37.

Wasserman, A. I. 1996.  Toward a discipline of software engineering.  IEEE Software, 13(6): 23-32.

Humans and computers

Dertouzos, M. L. 1996.  What Will Be.  San Francisco: Harper.

Forester, T. ed. 1989.  Computers in the Human Context.  Cambridge, MIT Press.

Gibbs, W. W. 1997.  Taking computers to task.  Scientific American, July, 82-9.

Landauer, T. K. 1995. The Trouble with Computers: Usefulness, Usability, and Productivity. Cambridge: MIT Press.

Leutwyler, K. 1997.  What will really be.  Scientific American, July, 28-9.

Myer, B., et al. 1996.  Strategic directions in human-computer interaction.  ACM Computing Survey, 28: 794-82.

Riecken, D. ed. 2000.  Special issue on human elements in personalization of computing, Communications of the ACM, 43(8), 27-73.

Computational science and engineering

Cendes, Z. J. 1989.  Unlocking the secrets of Maxwell’s equations.  IEEE Spectrum, 26(4): 33.

Cowie, J. H., Nicol, D. M., and Ogielski, A. T. 1999.  Modeling the global Internet.  Computing in Science and Engineering 1(1): 42-50.

Fayyad, U. 2001.  The digital physics of data mining.  Communications of the ACM, 44(3): 62-5.

Hartmanis, J. and Lin, H. eds. 1992.  Computing the future.  Washington DC: National Academy Press.

Heath, L. S., and Ramakrishnan, N. eds. 2002.  The emerging landscape of bioinformatics software systems.  Computer, 35(7): 41-

Heidemann, J. and Mills, K. 2001.  Expanding confidence in network simulation.  IEEE Network, 15(5): 58-64.

Knuth, D. E. 1985.  Algorithmic thinking and mathematical thinking.  American Mathematical Monthly, 92(3): 170-81.

Lunney, E. A. 2001.  Computing in drug discovery, the design phase.  Computing in Science and Engineering, 3(5): 105-9.

Pop, M., Salzberg, S. L., and Shumway, M. 2002.  Genome sequence assembly: algorithms and issues.  Computer, 35(7): 47-54.

Raabe, D. 2002.  Don’t trust your simulation – computational material science on its way to maturity?  Advanced Engineering Materials, 4: 255-9.

Ramakrishnan, N. and Grama, A. Y. 1999.  Data mining: from serendipity to science. Computer, 32(8): 34-7.

Sameh, A. et al. 1996.  Computational science and engineering.  ACM Computing Survey. 28: 810-6.

Silberschatz, A. 1991.  Database systems: achievements and opportunities. Communications of the ACM, 34(1): 110-120.