COMPUTER SCIENCE RESEARCH
ANNOTATED BIBLIOGRAPHY
Computation, algorithms, complexity, networks, and security
2
COMPUTATIONAL
COMPLEXITY
S. A. Cook, “The complexity of theorem-proving procedures,” in Proc. 3rd Annual ACM Symp. on
Theory of Computing (STOC), Shaker Heights, OH, USA, 1971, pp. 151-158.
ANNOTATION
Cook studies the computational difficulty of theorem-proving procedures and introduces results that
became central to complexity theory, including the formulation of the first NP-completeness result.
The paper is important to computer science because complexity theory provides a way to classify
problems according to the resources required to solve them. For an annotated bibliography, this
work is useful as a primary research source rather than a textbook summary. It gives historical
grounding for later discussions of NP, reductions, tractability, and the limits of efficient
computation.
NETWORKS
D. D. Clark, “The design philosophy of the DARPA Internet protocols,” in Proc. ACM SIGCOMM ’88,
Stanford, CA, USA, 1988, pp. 106-114.
ANNOTATION
Clark explains the design choices behind the early Internet protocol architecture, including
assumptions about heterogeneous networks, end systems, reliability, and where responsibilities
should be placed in a distributed communication system. The paper is useful because it shows how
architectural principles emerge from technical constraints and intended uses rather than from
protocol syntax alone. It provides a primary source for studying Internet architecture and helps
researchers understand why functions were assigned to particular layers or endpoints. The
discussion is also relevant to later work on network scalability and distributed systems.
SECURITY
J. H. Saltzer and M. D. Schroeder, “The protection of information in computer systems,” Proceedings
of the IEEE, vol. 63, no. 9, pp. 1278-1308, Sept. 1975, doi: 10.1109/PROC.1975.9939.
ANNOTATION
Saltzer and Schroeder examine the architectural mechanisms needed to protect computer-stored
information from unauthorized use or modification. The tutorial organizes security design around
principles such as economy of mechanism, fail-safe defaults, complete mediation, separation of
privilege, and least privilege. The source is valuable for computer science research because these
principles connect security requirements with system architecture rather than treating security as
an add-on feature. It is especially useful for research on operating systems, access control,
authentication, and secure system design.