21
References 1. ACM Curriculum Committee on Computer Science. "Cuniculum 68: Recommendations for Academic Programs in Computer Science." Communications of the ACM 11, 3 (March 1968), 151-197. 2. ACM Curriculum Committee on Computer Science. "Curriculum Recommendations for the Undergraduate Program in Computer Science." SIGCSE Bul/elin (ACM) 9,2 (June 1977),1-16. 3. ACM Cl.lrriculum Committee on Computer Science. "Curriculum '78: Recommendations for the Undergraduate Program in Computer Science." Communications of the ACM 22,3 (March 1979),147-166. 4. Alfred V. Aho, John E. Hopcroft, and Jeffrey D. Ullman. The Design and Analysis o/Computer Algorithms. Addison-Wesley, 1974. 5. Alfred V. Aho and Jeffrey D. Ullman. Principles of Compiler Design. Addison- Wesley, 1977. 6. Alfred V. Aho, John E. Hopcroft, and Jeffrey D. Ullman. Data SlIuctures and Algorithms. Addison-Wesley, 1983. 7. D. Ballard and C. Brown. Computer Vision. Prentice-Hall, 1982. 8. C. Gordon Bell. 1. Craig Mudge and John E. McNamara. Computer Engineering: A DEC View of Hardware Systems Design. Digital Press, 1978. 9. M. Ben-Ari. Principles o/Concurrent Programming. Prentice-Hall, 1982. 10. Jon Louis Bentley. Writing Efficient Programs. Prentice-Hall, Inc., 1982. 11. Jon Louis Bentley. "Programming Pearls." Communications of the ACM 26, 8 (August 1983). Regular column. 12. Garrett Birkhoff and Thomas C. Bartee. Modem Applied Algebra. McGraw-HilI,1970. 13. Barry W. Boehm. Software Engineering Economics. Prentice-Hall, Inc, 1981. 14. 1. A. Bondy and U. S. R. Murty. Graph Theory with Applications. knerican Elsevier, 1976. 15. G.S. Boolos and R.C. Jeffrey. Computability and Logic. Cambridge University Press, 1974.

References - link.springer.com978-1-4612-5080-7/1.pdf · A Mathematical Introduction to Logic. Academic Press, 1972. 35. Alan Feuer and Narain Gehani (editors). Comparing and Assessing

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: References - link.springer.com978-1-4612-5080-7/1.pdf · A Mathematical Introduction to Logic. Academic Press, 1972. 35. Alan Feuer and Narain Gehani (editors). Comparing and Assessing

References

1. ACM Curriculum Committee on Computer Science. "Cuniculum 68: Recommendations for Academic Programs in Computer Science." Communications of the ACM 11, 3 (March 1968), 151-197.

2. ACM Curriculum Committee on Computer Science. "Curriculum Recommendations for the Undergraduate Program in Computer Science." SIGCSE Bul/elin (ACM) 9,2 (June 1977),1-16.

3. ACM Cl.lrriculum Committee on Computer Science. "Curriculum '78: Recommendations for the Undergraduate Program in Computer Science." Communications of the ACM 22,3 (March 1979),147-166.

4. Alfred V. Aho, John E. Hopcroft, and Jeffrey D. Ullman. The Design and Analysis o/Computer Algorithms. Addison-Wesley, 1974.

5. Alfred V. Aho and Jeffrey D. Ullman. Principles of Compiler Design. Addison-Wesley, 1977.

6. Alfred V. Aho, John E. Hopcroft, and Jeffrey D. Ullman. Data SlIuctures and Algorithms. Addison-Wesley, 1983.

7. D. Ballard and C. Brown. Computer Vision. Prentice-Hall, 1982.

8. C. Gordon Bell. 1. Craig Mudge and John E. McNamara. Computer Engineering: A DEC View of Hardware Systems Design. Digital Press, 1978.

9. M. Ben-Ari. Principles o/Concurrent Programming. Prentice-Hall, 1982.

10. Jon Louis Bentley. Writing Efficient Programs. Prentice-Hall, Inc., 1982.

11. Jon Louis Bentley. "Programming Pearls." Communications of the ACM 26, 8 (August 1983). Regular column.

12. Garrett Birkhoff and Thomas C. Bartee. Modem Applied Algebra. McGraw-HilI,1970.

13. Barry W. Boehm. Software Engineering Economics. Prentice-Hall, Inc, 1981.

14. 1. A. Bondy and U. S. R. Murty. Graph Theory with Applications. knerican Elsevier, 1976.

15. G.S. Boolos and R.C. Jeffrey. Computability and Logic. Cambridge University Press, 1974.

Page 2: References - link.springer.com978-1-4612-5080-7/1.pdf · A Mathematical Introduction to Logic. Academic Press, 1972. 35. Alan Feuer and Narain Gehani (editors). Comparing and Assessing

178 'nle Carnegie-Mellon Curriculum for Undcrgmdllatc Compllter Science

16. Brady et al. (eds). Robot Motion. MIT Press, 1982.

17. Frederick P. Brooks, Jr.. 71,e Mythical Man-month: Essays on Software Engineering. Addison-Wesley, 1975.

18. Marc H. Brown, Norman Meyrowitz, and Andries van Dam. Personal Computers Networks and Graphical Animation: Rationale and Practice for Education. ACM SIGCSE 14th Annual Technical Symposium, Association for Computing Machinery, February, 1983.

19. E. Charniak, C.K. Riesbeck, and D.V. McDermotL Artificial Intelligence Programming. Lawrence Erlbaum Associates, Hillsdale, New Jersey, 1980.

20. Michale 1. Clancy and Donald E. Knuth. A Programming and Problem­Solving Seminar. Tech. Rept. Technical Report Stan-CS-77-606, Stanford University, April, 1977.

21. CMU Graduate School ofIndustrial Administration. Announcements for 1954-1956. CM U Catalog, 1954.

22. Carnegie-Mellon University. Carnegie-Mellon University Undergraduate Catalogue 1981-1983. CMU Catalog, 1981.

23. W. Corwin and W. Wulf. SL230 - A Software Laboratory Intermediate RepOit. Carnegie-Mellon University Computer Science Department, May, 1972.

24. Bruce W. Arden (ed.). What Can Be Automated? The Computer Science alld Engineering Research Study (COSERS). MIT Press, 1981.

25. Committee on the Undergraduate PrJgram in Mathematics. A General Curriculum in Mathematics for Colleges. Rep. to Math. Assoc. of America, CUPM,1965.

26. N.1. Cutland. Computability: An Introduction to Recursive Function Theory. Cambridge University Press, 1980.

27. 0.1. Dahl, E.W. Dijkstra, and C.A.R. Hoare. Structured Programming. Academic Press, 1982.

28. C.l Date. The System Programming Series: An Introduction to Database Systems Volume 1. Addison-Wesley, Reading. MA, 1981.

29. C.1. Date. The System Programming Series: An Introduction to Database Systems Volume 2. Addison-Wesley, Reading, MA, 1983.

Page 3: References - link.springer.com978-1-4612-5080-7/1.pdf · A Mathematical Introduction to Logic. Academic Press, 1972. 35. Alan Feuer and Narain Gehani (editors). Comparing and Assessing

References

3D. E.W. Dijkstra. Co-operating Sequential Processes. In F. Gel1uys, Ed., Programming Languages, Academic Press, 1968, pp. 43-112.

31. Edsger W. Dijkstra. A Discipline of Programming. Prentice-Hall, Inc., 1976.

179

32. Robert E. Doherty. The Development of Professional Education. CMU, Carnegie Press, 1950.

33. R.O. Dromey. How to Solve it by Computer. Prentice-Hall,1982.

34. H. Enderton. A Mathematical Introduction to Logic. Academic Press, 1972.

35. Alan Feuer and Narain Gehani (editors). Comparing and Assessing Programming Languages. Prentice-Hall,1984.

36. Lawrence FIon, Paul N. Hilfinger, Mary Shaw and Wm. A. Wulf. A Fundamental Computer Science Course that U'1ifies Theory and Practice. Proceedings of the SIGC~E/CSA Technical Symposium of Computer Science Education, February, 1978, pp. 255-259.

37. J.D. Foley and A. Van Dam. Fundamentals of Interactive Computer Graphics. Addison-Wesley, 1982.

38. Michael R. Garey and David S. Johnson. Computers and Intractability: A Guide to the Theory of NP-Completeness. W. H. Freeman and Company, 1979.

39. David B. Garlan and Philip L. Miller. GNOME: An Introductory Programming Environment Based on a Family of Structure Editors. Proceedings of the ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, ACM, May, 1984, pp. 65-72.

40. Judith L. Gersting. Mathematical Struclure~for Computer Science. W.H. Freeman, 1982.

41. M.J.C. Gordon. The Denotational Description of Programming Languages. Springer-Verlag, 1979.

42. Paul E. Green, Jr. The Structure of Computer Networks. In Computer Network Architectures and Protocols, Paul E. Green, Jr., Ed.,Plenum Press, 1982, ch. 1, pp. 3-31.

Page 4: References - link.springer.com978-1-4612-5080-7/1.pdf · A Mathematical Introduction to Logic. Academic Press, 1972. 35. Alan Feuer and Narain Gehani (editors). Comparing and Assessing

180 'illC Carncgic·Mellon Curriculum for Undcrgraduatc Computer Scicncc

43. David Gries. Compiler COlis/ruc/ion for Digilal Computers. Wiley, 1971.

44. David Gries. The Science of Programming. Springer-Verlag, 1981.

45. Ralph E. Griswold and Madge T. Griswold. A SNOBOL4 Primer. Prentice-Hall, Inc, 1973.

46. A.N. Habermann. In/roduction /0 Operating Sys/em Design. Science Research Associates, Inc., 1976.

47. Frank Harary. Graph Theory. Addison-Wesley, 1969.

48. John R. Hayes. The Complete Problem Solver. Franklin Institute Press, 1981.

49. Peter Hibbard, Andy Hisgen, Jonathan Rosenberg, Mary Shaw, and Mark Sherman. Studies in Ada Sly/e. Springer-Verlag, 1981.

50. Paul N. Hilfinger, Mary Shaw, Wm. A. Wulfand Lawrence F1on. Introducing "Theory" in the Second Programming Course. Proceedings of the Ninth SlGCSE Technical Symposium, August, 1978.

51. C.A.R. Hoare. "Communicating Sequential Processes." Communications of the ACM 21,8 (August 1978), 666-677.

52. R.C. Holt, E.D. Lazowska, O.S. Graham and M.A. Scott. Structured Concurrent Programming with Operating Systems Applications. Addison­Wesley, 1978.

53. lE. Hopcroft and ID. Ullman. Introduction to Automata Theory Langl:ages and Computation. Addison-Wesley, 1979.

54. Education Committee (Model Curriculum Subcommittee) of the IEEE Computer Society. A Curriculum in Computer Science and Engineering. IEEE Computer Society, November, 1976. Committee Report

55. The Model Program Committee, Educational Activities Board. The 1983 IEEE Computer Society Model Program in Computer Science and Engineering. IEEE Computer Society, December, 1983.

56. m Prvgramming. Proceedings of the Workshop on Reusability in Programming. Workshop on Reusability in Programming, Stratford, Connecticut, Stratford, Connecticut, 1983.

57. Johnsonbaugh, Richard. Discrete Mathematics. Macmillan, 1984.

Page 5: References - link.springer.com978-1-4612-5080-7/1.pdf · A Mathematical Introduction to Logic. Academic Press, 1972. 35. Alan Feuer and Narain Gehani (editors). Comparing and Assessing

References 181

58. Elaine Kant. "A Semester Course in Software Engineering." Software Engineering Notes 6,4 (August 1981), 52-76.

59. B.W. Kernighan and PJ. Plauger. Software Tools in Pascal. Addison­Wesley, 1981.

60. Donald E. Knuth. The Art o/Computer Programming. Volume 1: Fundamental Algorithms. Addison-Wesley: 1973.

61. Donald E. Knuth. The Art o/Computer Programming. Volume 3: Sorting and Searching. Addison-Wesley, 1973.

62. Donald E. Knuth. "Computer Science and Its Relation to Mathematics." American Mathematical Monthly 81,4 (April 1974).

63. Donald E. Knuth and Allan A. Miller. A Programming and Problem­Solving Seminar. Tech. Rept. Technical Report Stan-CS-81-863, Stanford University, June, 1981.

64. Donald E. Knuth. The Art o/Computer Programming. Volume 2: Seminumerical Algorithms. Addison-Wesley, 1981.

65. Imre Lakatos. Proofs and Re/utations: The Logic 0/ Mathematical Discovery. Cambridge University Press, 1976.

66. Butler W. Lampson. "Hints for Computer System Design." IEEE Software 1, 1 (January 1984), 11-28.

67. Eugene L. Lawler. Combinatorial Optimization: Networks and Matroids. Holt, Rinehan, and Winston, 1976.

68. Henry Ledgard and Michael Marcotty. The Programming Languge Landscape. Science Research Associates, 1981.

69. Letters to the editor. "Comments on the Mathematical Content of Curriculum '78." Communications o/the ACM 23,6 (June 1980), 356-359.

70. H.R. Lewis and C.H. Papadimitriou. Elements o/the Theory 0/ Computation. Prentice-Hall,1981.

71. C.L. Liu. Introduction to Combinatorial Mathematics. McGraw-Hill, 1968.

72. C.L. Liu. Elements 0/ Discrete Mathematics. McGraw-Hill, 1977.

73. Jack Lochhead. The Mathematical Needs of Students in the Physical Sciences. In The Future o/College Malhematic3, Anthony Ralston and Gail Young, Eds., Springer-Verlag, 1983, pp. 55-70.

Page 6: References - link.springer.com978-1-4612-5080-7/1.pdf · A Mathematical Introduction to Logic. Academic Press, 1972. 35. Alan Feuer and Narain Gehani (editors). Comparing and Assessing

182 The Carnegie-Mellon Curriculum for Undergraduate Computer Science

74. Bruce.l. MacLennan. Principles 0/ Programming Languages: Design, Evaluation, and Implementation. Holt, Rinehalt, Winston, 1969.

75. Zohar Manna. Mathematical Theory o/Computation. McGraw-Hili, 1974.

76. Manna, Zohar and Waldinger, Richard. Structured Programming with Recursion. Tech. Rept. STAN-CS-77-640, Stanford Attificial Intelligence Laboratory, January, 1978.

77. Carver Mead and Lynn Conway. Introduction to VLSI Systems. Addison-Wesley, 1980.

78. Milner, R .. A Calculus o/Communicating Systems. Springer Verlag, 1980.

79. Marvin Minsky. Computation: Finite and Infinite Machines. Prentice­Hall,1967.

80. Glenford 1. Myers. Sofiw.:re Reliability Principles and Practices. Wiley Interscience, 1976.

81. Glenford 1. Myers. Composite/Structured Design. Van Nostrand Reinhold, 1978.

82. William M. Newman and Robert F. Sproull. Principles of Interactive Computer Graphics. McGraw-Hill, 1979.

83. lE. Nicholls. The Structure and Design of Programming Languages. Addison-Wesley, 1975.

84. N.J. Nilsson. Principles of Artificial Intelligence. Tioga Press, Palo Alto, CA,1980.

85. National Science Foundation and the Department of Education. Science and Engineering: Education for the 1980's and Beyond. U.S. Government Printing Office, Washington, D.C., 1980.

86. Sandra Pakin. APL\360 Reference Manual, Second Edition. Science Research Associates, Inc., 1972.

87. Christos H. Papadimitrioll and K. Steiglitz. Combinatorial Optimization: Algorithms and Complexity. Prentice-Hall, 1982.

88. F.W. Paul, D.L. Feucht, B.R. Teare, Jr., c.P. Neuman and D.Tuma. Analysis, Synthesis and Evaluation-Adventures in Professional Engineering Problem Solving. Proc. Fifth Annual Frontiers in Education Conference, IEEE and the Amer. Soc. for Engr. Ed., October, 1975, pp. 244-251.

Page 7: References - link.springer.com978-1-4612-5080-7/1.pdf · A Mathematical Introduction to Logic. Academic Press, 1972. 35. Alan Feuer and Narain Gehani (editors). Comparing and Assessing

Rclercnces 183

89. R. Pau\. Rahat Manipulators: Mathematics, Programming, and Control MIT Press, 1981.

90. Pierce, J. R. and Posner, E. c.. Introduction to Communication Science and Systems. Plenum Press, 1980.

91. George Polya. Mathematicai Discovery. John Wiley and Sons, 1962.

92. George Polya. How {a Solve It. Princeton University Press, 1973.

93. Terrence W. Pratt. Programming Languages: Design and Implementation (second edition). Prentice-Hall, Inc., 1984.

94. Anthony Ralston and Mary Shaw. "Curriculum '78-ls Computer Science Really that Unmathematical?" Communications of the ACM 23,2 (February 1980),67-70.

95. Anthony Ralston. "Computer Science, Mathematics, and the Undergraduate Curricula in Both." American Mathematical Monthly 88, 7 (1981).

96. Edward M. Reingold, Jurg Nievergelt, and Narsingh Deo. Combinatorial Algorithms: Theory alld Practice. Prentice-Hall, 1977.

97. Elaine Rich. Artificial Intelligence. McGraw-Hill, 1983.

98. H. Rogers. Theory of Recursive Functions and Effective Computability. McGraw-HilI,1967.

99. Moshe F. Rubinstein. Patterns of Problem Solving. Prentice-Hall, Inc., 1975.

100. Roger C. Schank and Christopher K. Riesbeck. Inside Computer Understanding. Lawrence Erlbaum Associates, 1981.

101. W.L. Scherlis and M.Shaw. Mathematics Curriculum and the Needs of Computer Science. In The Future a/College Mathematics, Anthony Ralston and Gail Young, Eds., Springer-Verlag, 1983, pp. 89-97.

102. Robert Sedgewick. Algorithms. Addison-Wesley, 1983.

103. Mary Shaw. Working Papers on an Undergraduate Computer Science Curriculum. Tech. Rept. CMU-CS-83-101, Carnegie-Mellon University, Computer Science Department, February, 1983.

104. Mary Shaw, Stephen Bwokes, Bill Scherlis, Alfred Spector, and Guy Steele. Plan for Developi:1g an Undergraduate Computer Science Curriculum. CMU CS Curriculum Design Note 82-02,1982.

Page 8: References - link.springer.com978-1-4612-5080-7/1.pdf · A Mathematical Introduction to Logic. Academic Press, 1972. 35. Alan Feuer and Narain Gehani (editors). Comparing and Assessing

184 The Carnegie-Mellon Curriculum for Undergraduate Computer Science

105. Martin Shooman. Sojiware Engineering. McGraw-Hili, 1983.

106. Daniel P. Siewiorek, C. Gordon Bell, and Allen Newell. CompUler Structures: Principles and Examples. McGraw-Hili, 1982.

107. D.P. Stanat and D.F. McAlister. Discrete Mathematics in Computer Science. Prentice-Hall, Inc., 1977.

108. Lynn Arthur Steen. Developing Mathematical Maturity. In The Future o/College Mathematics, Anthony Ralston and Gail Young, Eds., Springer­Verlag, 1983, pp. 99-110.

109. H.S. Stone. Discrete Mathematical Structures and Their Applications. Science Research Associates, Inc., 1973.

110. Joseph E. Stoy. Denotational Semantics: The Scoll-Strachey Approach To Programming Language Theory. MIT Press, 1977.

111. Andrew S. Tanenbaum. Computer Networks. Prentice-Hall, Engelwood Cliffs, NJ, 1981.

112. Tim Teitelbaum, Thomas Reps, Susan Horwitz. The Why and Wherefore of the Cornell Program Synthesizer. Proceedings of the ACM SIGPLAN SIGOA Symposium on Text Manipulation, Cornell University, June, 1981, pp. 8-16.

113. R.D. Tennent. Principles of Programming Languages. Prentice-Hall, 1981.

114. J.P. Tremblay and R.P. Manohar. Discrete Mathematical Structures With Applications to Computer Science. McGraw-Hill, 1975.

115. D.T. Tuma and F. Reif. Problem Solving and Education: Issues ill Teaching and Research. Lawrence Erlbaum Associates, 1980.

116. Jeffrey D. UHman. Principles of Database Systems. Computer Science Press, 1982.

117. Jeffrey D. Ullman. Computational Aspects ofVLS/. Computer Science Press, 1984.

118. The CSD Undergraduate Program Committee. Initial Report on an Undergraduate CS Program. CMU internal memorandum, 1980.

119. Chris Van Wyk and Donald E. Knuth. A Programming and Problem­Solving Seminar. Tech. Rept Technical Report Stan-CS-79-707, Stanford University, January, 1979.

Page 9: References - link.springer.com978-1-4612-5080-7/1.pdf · A Mathematical Introduction to Logic. Academic Press, 1972. 35. Alan Feuer and Narain Gehani (editors). Comparing and Assessing

References

120. D. vanDalen. Logic and StruclUre. Springer-Verlag, 1980.

121. Richard L. Wexelblat, editor. History of Programming Languages. Academic Press, 1981.

185

122. Wayne A. Wickelgren. How to Solve Problems. W.H. Freeman and Company, 1974.

123. Patrick Henry Winston and Berthold Klaus Paul Horn. LISP. Addison-Wesley, Reading, Mass, 1981.

124. P.H. Winston. Artificial Intelligence. Addison-Wesley, Reading, MA, 1984. Second edition.

125. Niklaus Wilth. Algorithms + Data Slructures = Programs. Prentice­Hall,1976.

126. William Wulf, Richard K. Johnsson, Charles B. Weinstock, Steven O. Hobbs, and Charles M. Geschke. Thi Desig.'1 of an Optimizing Compiler. American Elsevier PublisGing Co., 1975.

127. William A. Wulf, Mary Shaw, Paul N. Hilfinger, and Lawrence Flon. Fundamental Slructures of Computer Science. Addison-Wesley, 1981.

128. Edward Yourdon and Larry L. Constantine. Structured Design Fundamentals of a Discipline of Computer Program and Syslems Design. Prentice-Hall,1979.

129. Marvin V. Zelkowitz, and Alan C. Shaw, and John D. Gannon. Principles of Software Engineering and Design. Prentice-Hall,1979.

Page 10: References - link.springer.com978-1-4612-5080-7/1.pdf · A Mathematical Introduction to Logic. Academic Press, 1972. 35. Alan Feuer and Narain Gehani (editors). Comparing and Assessing

Index

Abstract algebra 32,50, 58 Abstract data types 28, 67, 86, 87, 101,

105, lIO Abstract syntax 154 Abstraction 23,29, 31, 53, 55, 62, 63, 71,

72,79,83.87,91,105 Access methods 130 Access protection 131 Access to computer resources 71 Accessing 34 ACM Curriculum '68 45 ACM CurriclIlum '78 19, 45 Acyclic graphs 79 Addressing 28.34, 35,97,99, 105, 148 Advanced Algorithms course 146 Advanced P!"ogramming Languages and

Compilers course 143 Algebraic al!;orithms 146 Algebraic stlllctures 80 Algorithm machines no Algorithmic languages 105 Algorithmic thinking 25 Algorithms 26,27, 53, 109, no, 124, 146.

157,169 Algorithms a,~d programs 38, 72, 100,

109,119, 146, 147. 151, 157, 164 Algorithms and Programs course 109 Aliasing 99 Allocation 34 Allocation policy 96 t\lpha-beta search 120 Alphabets 84 ALU 91,149 Ambiguity 113, 114 Analogical reasoning 160 Analysis 30,53,146 Analysis and Design of Digital Circuits

course 171 Analysis of algorithms 29,34,67,86,109,

124,146,169 Analysis, Synthesis, and Evaluation

course 175 Analytic models 29,85,136 Application level protocols 133 Applications 36 Applicative programming 28, 2<), 88, lOt!,

144, 155 Applied Graph Theory COlHje 169 Approximation algorithms 111,147 Arithmetic logic unit design 149 Arrays 87 Artificial intelligence 33,36. 72, 119, 122,

123, 143, 159, 160, 162 Artificial I ntelligencc-Cognitive

Processes course 159 Artific;;i1intelligencc-Robotics 123 Artificial Intelligence-Robotics course

162 Assembly language 90,92,93, 144, 148 Assertions 66, 84, 154 Associative binary operations 80 Associative memory 149 Asynchronous circuits 92, 98 Atomic operations 98 Atomic transactions 137 Atomicity 98, 130 Augmented transition networks 120, 160 Authentication 99, 131 Authorization lists 131 Automata theory 27, 39, 62, 65, 72, 84,

113,116,143,154,157 Automatic parser generation 104 Automation 33 Axiomatic semantics 29,155 Axioms 29

B-Trees l30 Backtracking 111 Backup l37 Balance of theory and practice 24 Balanced trees 87,110 Batch systems 30, 136 Best-first search 120 Biconnectivity 146 Big Data course 129 Binary memory elements 92 Binary numbers 25 Binary search 110 Binary search trees 87,111 Binding 29,35,84, 105, 129, 144 Binom;:l1 theorem 80 Blocking 98

Page 11: References - link.springer.com978-1-4612-5080-7/1.pdf · A Mathematical Introduction to Logic. Academic Press, 1972. 35. Alan Feuer and Narain Gehani (editors). Comparing and Assessing

188 The Carnegie-Mellon Curriculum for Undergraduate Computer Science

BNF 28,92 Boolean algebra 27,80. 90. 91 Bootstrapping 142 Branching time 98 Breadboards 93 Breadth-first search 120 Buddy system 88 ButTers 98, 137 Bus structures 28, 133

Cache memories 149 Caches 137 CAD/CAM 33,36 CAl 36 Calculators 28 Calculus 27, 50, 58 Calculus I course 167 Calculus II course 167 Capabilities 131 Carnegie Plan 2, 21 Case-frame parsing 160 Casual users 1, 15, 16 Central processor design 149 Certified software 141 Channel capacity 133 ChannelllO 149 Channels 132 Character sets 25 Chinese remainder algorithm 146 Chomsky hierarchy 29, 88 Church's thesis 88, 115, 118 Circuit design 27,32,34 Circuit family abstraction 27, 90 Circuit theory 32 Circular linking 87 Classes 141 Classes of automata 113 Clipping 164 Clocked systems 151 Clocks 90, 92, 98, 152 Closest point problems 110 CMOS 151 Code generation 106, 141,143,144 Coding 132, 148 Cognitive models 30 Cognitive processes 119, 159, 160 Cognitive Processes and Problem Solving

course 173

Cognitive psychology 33 Cognitive simulation 159 Color models 165 Combinational logic 152 Combinations 80 Combinatorial analysis 32,59,81,82 Combinatorial Analysi!; course 168 Combinatorial circuits 27,90,91 Combinatorial logic 92 Combinalorial mathematics 50, 58 Command languages 29,104 Command-Ial'guage processors 101 Communications 25, 32, 34, 35, 132 Communications and Networks course

132 Compiler-generators 143 Compilers 30, 36, 39, 72, 84, 100, 103,

104, 105, 106, 107, 114, 119, 129, 135,136,140,142,143,154,164

Completeness 118 Complex computers 10 Complexity 29, 35,39, 53, 56,62,72, 113,

115,116,124,143,154,157 Complexity theory 146, 147 Complexity Theory course 157 Computability 35, 86, 88, 113, 114, 115,

117,157 Computable iunctions 115 Computational induction 155 Computational physics 32 Computer architecture 25, 72, 90, 91, 93,

124,148,151 Computer Architecture course 148 Computer crime 137 Computer literacy 25 Computer mail 25 Computer mudels for policy analysis 33 Computer organization 25, 38, 54, 72, 82,

90,94,96,103,108 Computer science degree 37 Computer science, definition of 7 Computer scientists 1, 15, 16 Computer-aided design 33, 36 Computer-aided instruction 17,36 Computer-aided manufacturing 33, 36 Computers in education 17 Computers in Modern Society course 77 Computers ill society 9, 26, 33, 77

Page 12: References - link.springer.com978-1-4612-5080-7/1.pdf · A Mathematical Introduction to Logic. Academic Press, 1972. 35. Alan Feuer and Narain Gehani (editors). Comparing and Assessing

The Carnegie-Mellon Curriculum for Undergraduate Computer Science 189

Computing in universities 13 Computing specialists 1, 15, 16 Concept acquisition 160 Conceptual blocks 95 Conceptual dependency 120 Concrete complexity 84 Concurrency 27, 28, 34, 39, 72, 96, 97,

98, 129, 132, 148 Concurrent processes 101, 155 Conditionals 84 Connectedl'~ss 88 Connectivity 110 Consistency 131,165 Constraints 101,110,120 Consumer computing 9 Consumer issues 10, 33 Contention 96 Context-free languages 29,88,92,114 Continuation semantics 155 Continuous functions 155 Continuous mathematics 58 Continuous speech recognition 122 Continuous time 90 Control 63 Control of physical systems 122 Control structures 26, 29, 34, 38, 65, 83,

84,8fi,89,105,107,113,117 Control theory 32 Convex hull 110 Cook's theorem Ill, 115 Cooperating processes 97, 98, 101 Coordinate system specification 164 Copyrights 10, 137 Core courses 38 Core curriculum 3,38 Coroutines 34, 155 Correctness 26,28,29,72,101 Correctness of algorithms 34, 49 Correctness of programs 83 Cost estimation 85, 135 Cost-Benefit Analysis course 175 Cost-effectiveness 57 Counters 92 Counting 80 Courseware 18 Cross-references 106 Cryptology 110 Cumulative experience 24

Curriculum '68 45 Curriculum '78 19,45 Curve tiuing llO

Data 34,63 Data abstraction 86, 87 Data communication 98, 148, 149 Data communication protocols 98 Data compression 132 Data flow 144 Data integrity 130 Data link level protocols 133 Data models 129, 130 Data representation 28,54,97,148 Data retrieval 129 Data structures 26,28,29, 38, 62, 67, 68,

86,89,92,94,96, 100, 101, 103, 105, 108, 109, 110, 119, 121, 122, 125, 127, 128

Database management systems 137 Database queries 88 Databases 25, 30, 36, 72, 119,129, 159 Datagram protocols 133 Deadlock 96, 98 Debugging 26, 28 Decidability 113, 114, 118 Decidable problems 115 Declarations 29, 105 Declarative knowledge 160 Deduction 56, 80 Deductive reasoning 25 Default reasoning 120 Denotational semantics 29, 155 Dependency-directed backtracking 120 Depth-first search 120 Design 29, 35, 139 Design automation 136 Design of algorithms 86, 146 Design of large systems 35 Design rules for VLSI 152 Design tradeoffs 136 Deterministic finite automata 114 Development methodologies 136 Diagnosis 160 Diagonal arguments 115, 157 Difference equations 50 Digital circuits 27,82,90 Digital ,;oncepts 27

Page 13: References - link.springer.com978-1-4612-5080-7/1.pdf · A Mathematical Introduction to Logic. Academic Press, 1972. 35. Alan Feuer and Narain Gehani (editors). Comparing and Assessing

190 The Carnegie-Mellon Curriculum for Undergraduate Computer Science

Dining philosphers 98 Direct memory access 149 Directed graphs 110 Directories 87 Discovery 160 Discrete event simulations 87 Discrete logic 91 Discrete mathematics 12, 27, 38, 45, 50,

55,59,62,79,82,83,84,90,91 Discrete Mathematics course 79 Discrete number systems 50 Discrete time 27,90 Disks 92,148 Display management 106 Distributed databases 129 Distributed naming models 99 Distributed systems 30,35,136 Divide-and-conqllcr 68, 110 DMA 149 Documentation 28,125, 135, 137, 139 Double linking 87 Double majors 15 Doughnuts 128 Dragon 144 Drums 148 Dynamic balance 123 Dynamic logic 156 Dynamic programming 110 Dynamics 123

Early image processing 122 Economic impact of compu ting 11 Economics 33 Edge extraction 122 Editors 25, 141 Education of non-majors 1 Effect of computing on GNP 10 Effective procedure 114 Efficiency 101 Efficientalgorithms 146 Elective courses 40 Electrical engineering 32 Electricity 32 Electronic circuits 82 Electronic Circuits I course 171 Electronic Circuits II course 171 Electronics 27 Elementary computer programming 77

Elements of Analysis course 168 Embedded languages 119 Empirical models 29, 35, 136 Emptiness 114 Encoding 25, 28, 87, 137 Encryption 34, 131, 131 Energy 132 Engineering 31,54,63,71,94 Entropy 132, 149 Episodic knowledge 160 Epistemolo.~y 95 Equivalence of finite automata 114 Equivalence of programs 156 Equivalence relations 80 Error correcting codes 132, 150 Error recovery 30 Error-checking 165 Estimation 33 Ethics of computer use 26 Evaluation I.'riteria for languages 106 Evaluation functions 110 Events 98 Evolution of curriculum 12 Exception handlers 29, 105 Executor/interpreter model 93 Expert systems 119, 159, 160 Exploiting constraints 159 Expression evaluation 29, 106 Extent 29, 35,84,99, 105 External data storage 129 External search 110 External sorting 110

Fan-in and fan-out 91 Fast Fourier transform 111, 146 Fault tolerance 34 Feature extraction 122 Feedback 97 Fetch/execute cycle 25 File compression 110 File management 136 File systems 137 Files 130 Filters 28, 101,141 Fine arts 31 Finite-state automata 27, 55, 62, 84, 90,

91. 92, 113, 114 Finite-state automaton 6S

Page 14: References - link.springer.com978-1-4612-5080-7/1.pdf · A Mathematical Introduction to Logic. Academic Press, 1972. 35. Alan Feuer and Narain Gehani (editors). Comparing and Assessing

The Carnegie-Mellon Curriculum for Undergraduate Computer Science 191

Finile-statemachines 92. 148, 151 First-order number theory 118 Fixed points 155 Fixed-point properties 156 Floating point representations 149 Formal languages 28. 39, 62, 72, 113,

116,143,154,157 Formal Languages, Automata, and

Complexity course 113 Formal machine models 90 Formal methods 154 Formal proofs 62,80 Formal reasoning 117 Formal semantics 154 Formal specification 29,62,101 Formalization 117 Foundations of computer science 35, 71 Four Russians' algorithm 146 Frames 120 Freeli~ts 88 Front-end generator 142 Functions 27,29,57,79,91, 105,1l7 Fundamental structures 5, 38, 61, 62, 63,

65,66,67,68, 69, 70, 72, 83, 86, 89, 92, 94, 96, 100, 101. 103, 105, 107. 108, 109, lID, 113, 117, 119, 121, 122,125,127,128,135,175

Fundamental Structures of Computer Science I course 83

Fundamental Structures of Computer Science II course 86

Fundamentals of Control course 172 Future trends 8

Gait analysis 123 Garbage collection 88, 106 Gaussian elimination 110 General-purpose programming languages

144 Generality 29 Generation problems 114 Generic definitions 100,101,141 Geometric algorithms 110 Geometric interpretation 111 Geometric intersection 110 Global program analysis 144 Godel numbering 115 Graph algorithms 28,79, 88, 110, 146 Graph isomorphism 115

Graph theory 2i, 32, 35, 50, 59, 144 Graph traversal 88 Graphical interaction 29, 144 Graphics 25,35,36, 106, 164 Graphics packages 164 Graphs 27,57, 79,88,110 Greedy method 110

Halting problem 88, 115 Handshaking 97,98 Hard-copy graphics 165 Hardware 151 Hardware addressing 35 Hardware design 148 Hardware synchronization 151 Hashing 28,87, 110,130 Heaps 88, llO Heuristic methods 27,34, 119 HeuriStic programmine 159 Heuristic search 110, 120 Hidden lines and surfaces 165 Hierarchical data model 130 Hierarchies of abstract machines 90, 114 Hierarchies oflanguages 29,88,91, 114 Hillclimbing 120 Hoare-style axioms 84, 117, 155 Holism 95 I romogeneous coordinates 164 Homomorphism 80 Human factors 29, 33, 35, 103, 106, 136 Human Factors course 173 Human impact of computing 11 Humanities 31 Hypothesis and test 30

110 dev;ces 148 IEEE Model Curriculum 19 Images and shapes 122 Imperative programming 29, 155 Imperative programming languages 144 Implementation 83, 86, 87 Incompleteness 118 Independent compilation 87 Independent Project course 125 Independent study 125,127, 139 Indirection 105 Indivisible operations 98

Page 15: References - link.springer.com978-1-4612-5080-7/1.pdf · A Mathematical Introduction to Logic. Academic Press, 1972. 35. Alan Feuer and Narain Gehani (editors). Comparing and Assessing

192 The Carnegie-Mellon Curriculum for Undergraduate Computer Science

Induction 57,79,80 Inductive arguments 114 Inductive assertions 156 Inductive definitions 27,114 Inductive reasoning 31,50, 155 Industrial work experience 139 Inference 119 Inference and inheritance 160 Informal proofs 80 Informal specification 101 Information 13:'. Information processing 33 Information Processing Psychology and

Artificial Intelligence course 173 Information retrieval 129 Information Science 33 Information security 36 Information structures 72,119,129,159 Information theory 32, 34, 35, 36, 132,

148, 149 Information transmission 36 Information utility 9, 25 Innovations 3 Input devices 164 Input/output 26,28, 144,149 Instruction formats 27,148,149 Instruction set processor model 92,148 Instrumentation of programs 35,84 Integrated editors 104 Integrated tools 141 Inteeration 110 Intellectual property 10 Intelligent systems 10 Interactive Graphics Techniques course

164 Interactive interfaces 103, 164 Interactive systems 104 Interleaved memory 149 Intermediate level protocols 133 Interpretation 144 Interpreters 84, 88, 106, 154 Interprocess communication 98, 133 Interrupts 34, 98 Interval retrieval 88 Introduction to Artificial Intelligence

course 119 Introduction to Digital Systems course

171

Introduction to Robotics course 122 Introduction to Solid State Electronics

course 172 Invariants 84 Isolated word recognition 122 Isomorphism 80 ISP-levc1 computer organization 27 Iteration 29,84. 105 Iterators 88

Joint majors 15 Jumps 155

Kinematics 123 Kleene's T-predicate 115 Knapsack problem 111 Knowledge representation 119, 120, 131,

159

Labelled transition systems 154 Laboratory facilities 73 Languages 28.35,56.65,84 Languages, Interfaces. and Their

Processors course 103 Large-Scale Scientific Computing course

169 Large-scale systems 135 Latches 92 Law and Technology course 174 Learning 120, 159 Legal issues 33 Lexical analysis 65,85, 103, 105, 106.144 Liberal professional education 22, 31 Libraries 26,140,141 Licensing 10, 137 Life-cycle models 29,35,136 Lighting models 165 Linear algebra 32, 50, 59 Linear Algebra course 168 Linear circuits 82 Linear Circuits course 170 Linear programming 111, 147 Linear systems 8il Linear Systems Analysis course 171 Linear time 98 Linkers 30, 106 LISP 86 List structur"s 106, 117

Page 16: References - link.springer.com978-1-4612-5080-7/1.pdf · A Mathematical Introduction to Logic. Academic Press, 1972. 35. Alan Feuer and Narain Gehani (editors). Comparing and Assessing

The Carnegie-Mellon Curriculum for Undergraduate Computer Science 193

I -iteracy 77 Livelock 98 Loaders 30 I.ocal area networks l33 Local search 110 Locomotion 122,123,162 I.ogic 39,50,56,57,62.79,117,120,154 Logic design 151 Logic families 91 Logic for Computer Science course 117 Logspace reducibility 158 Lookahead 1<19 Loops and invariants 84 Lower bounds 146

Machine architectures 57 Machine code 90, 92 Machine hierarchies 93 Machine language 93 Machine learning 159, 160 Machine models 90 Machine realiz<1tions 90 Machine-level languages 84 Macros 101, 144 Macros/generic definitions 104,106 Magnetism 32 Mainframe computers 28 Maintenance costs 35 Maintenance cfprograms 30 Management 33 Management policies 96 Manipulation 122, 123, 162 Manpower shortage 15 Mappings 79,164 Marketing computing resources 10 Markov chain~ 150 Mathematical algorithms 110 Mathematical maturity 54 Mathematical reasoning 49,79 Mathematical system 55 Mathematics 31, 32 Mathematics in Computer Science 45, 53 Matrices 80 Matrix chain product 111 Mealy machines 92 Means-ends analysis 120 MeasuremenL 150

Mechanicallinkages 33 Memories 25,148,149 Memory hierarchies 28, 3~. 92, 97, 130,

149 Memory management l37,149 Memory technology 28 Memory-mapped I/O 149 Menu driven systems 165 Merging 110 Message-passing systems 101 Metast2ble states 98 Methods of Applied Math I course 167 Microcode 28, 90, 93 Microprocessors 28, 92 Microprogramming 149 Mini-max search 120 Minicomputers 28 Minimization 114 Mixed logic 91 Model based vision 122 Models 136 Models and modelling 29,35,62,79,87,

95 Models of computation 88 Modern Algebra course 169 Modes of thought 23, 54 Modular composition 28 Modules 72, 87 Monitors 34,97,98 Moore machines 92 Motion understanding 122 Multi-keyorganizations 130 Multi-key retrieval 88 Multi-way trees 88 Multilevel naming 129 Multiplexing 133 Multiprocessors 28,98 Mutual exclusion 137 Myhill-Nerode theorem 114

Naming 35,97,99, 130,132 Natural deduction 117 Natural language processing 119, 120,

159 Nature of symbols 56 Nested 87 Network architecture 132 ;'IIetwork data model 130

Page 17: References - link.springer.com978-1-4612-5080-7/1.pdf · A Mathematical Introduction to Logic. Academic Press, 1972. 35. Alan Feuer and Narain Gehani (editors). Comparing and Assessing

194 The Carnegie-Mellon Curriculum for Undergraduate Computer Science

Network flow 110 Network level protocols 133 Networks 25, 132 NMOS 151 Noise 132, 149, 162 Non-majors, education of 1 Non-pre-emptible resources 97 Nondeterminisl11 65,84,97,155 Nondeterministic finite automata 114 Notation 28. 35. 114 NP-completeness 110, III Number systems 91 Numerical algorithms 28 Numerical analysis 27,32,59,82 Numerical Mathematics I and II course

169 Numerical Methods course 168

Ouject-oriented programming 101, 144, 155

Occasional programmers 1, 15, 16 Operating systems )0, 36, 72, 96, 136 Operational semantics 29, 154 Operations research 33 Operations Research I course 168 Operations Research II course 168 Optimization 33, 104, 106, 144, 146 Optimizing compiler 143 Oracle. 158 Orderings 57,80 Oscilloscopes 93 Overlays 35 Ownership of software 33

P=NPproblem 157 Packing 28, 87 Paging 97 Paging systems 149 PAL 91 Paradigms 23 Parallelism 96,149,155 Parameters 29, 84 Parser generators 140, 141 Parsing 103,106, 110,113, 141, 144 Parsing theory 140 Partial and linear ordering 80 Partial correctness 156 Partial solutions 95

Partitions 80 Pascal 85, 86 Paten ts 10, 137 Path algorithms 110 Pattern matching 28, 101, llO Perception 33, 122. 162 Perfonnance 26,28. J.9, 35, 49, 56 Performance evaluation 72, 148, 150 Permutation generation 111 Permutations 80 Personal databases 25 Physical memory 28 Physical storage devices 34 Pipelining 149 Pipes 101 PLA 91, 152 Planning 120, 160 PMS model 27,148 Pointers 2f1, 87 Policy Issues in Computing course 174 Polynomial reducibility 158 Polynomials 110 Post correspondence problem 115 Power supplies 93 Pragmatics 84, 105, 154 Pre-emptible resources 97 Predicate logic 80, 117 Predicate transformers 155 Presburger arithmetic 118 Primary memory design 149 Primary storage 97 Priority queues 87,110 Privacy 30, 36, 131, 133 Private key encryption 131 Probabilistic algorithms 27,34,110 Probability 32, 50, 82 Probability and Applied Statistics for

Physical Science and Engineering I course 169

Probability and Statistics I course 170 Problem analysis and definition 94 Problem classes 157 Problem decomposition 94 Problem diagnosis 79,109,146 Problem solving 26,30,33,38,57,77,83,

85,90,94,119,120,170,171,175 Problem solving architectures 160 Problem solving techniques 159

Page 18: References - link.springer.com978-1-4612-5080-7/1.pdf · A Mathematical Introduction to Logic. Academic Press, 1972. 35. Alan Feuer and Narain Gehani (editors). Comparing and Assessing

'Inc Carnegie-Mellon Curriculum for Undergraduate Computcr Science 195

Problcm spaces 120 Proccdural knowledge 160 Proccdurallanguages 29 Procedurcs 26,29, 84, lOS, 155 Processo rs 25 Production systems 29, 101, 119, 120,

]44, 159 Productivity models 136 Professional education 31 Program corrcctness 83 Program de';~lopment cllvironments 140 Program dcv\!lopment tools 72, 100, 101,

103,104,107,140,143 Program organization 28, 39, 72, 100,

119, 135, 140 Program Organizations course 100 Program segmentation 30 Program specification 136 Program structures 26 Program transformations 100,141,156 Program vcrifications 62 Programmable logic arrays 91,152 Programmed 110 149 Programming 26, 35, 38, 62, 69, 72, 77,

83,85,86,90,100,170,171,175 Programming and Problem Solving

course 77 Programmi!Jg language design 154 Programming languages 35, 39, 56, 62,

72, 90, 100, 103, 104, 105, 107, 113, 114, 119, 129, 135, 140, 142, 143, 154,164

Programming methodology 100, 154 Programming teams 30 Programming techniques 26 Programming-in-the-Iarge 135 Programs 57 Project scheduling 33 Proof 27,57,79 Propagation delay 9l, 98 Propositional logic 27,79,117 Protection 99, 129, 136 Protocols 132, 133 Pseudo-operations 106 Psycholinguistics 33 Psychological phenomena 159 Psychology ryf Learning and Problem

Solving course 173 :>Ubli(; information utilities 131

Public key encryption 131 Public policy 33 Pumping lemma 114 Pushdown automata 91,92, 114

Quantity of infonnation 132, 149 Query languages 29,144 Queues 87, 110 Queuing models 150 Queuing theory 29, 35, 136, 148 Quicksort 110

Race conditions 92 Radix sorting 110 RAM 92 Random numbers 110 Range searching 110 Rapid prototyping 136 Raster graphics 164 Ratc distortion theory :i33 Real and abstract machines 38, 72, 82,

90, 94, 96, 103, 108 Real and Abstract Machines course 90 Real Time Computing in the Laboratory

course 175 Real-time processing 162 Real-world projects 139 Realization of abstractions 31, 55, 109 Reasonable person principle 30 Reasoning about programs 26, 63 Recognition problems 114, 115 Recovery 137 Recurrence relations 81 Recurrences 146 Recurrent notions 24 Recursion 28, 29, 57, 65, 68, 79, 80, 84,

88,105,106,115,155 Recursive function theory 115 Recursively enumerable sets 115 Redo 165 Reducibility 157, 158 Reductionism 95 Redundancy 121, 130, 137 Reference counts 106 References 87 Region extraction 122 Register machines 90,92,114 Registe'." schemes 149

Page 19: References - link.springer.com978-1-4612-5080-7/1.pdf · A Mathematical Introduction to Logic. Academic Press, 1972. 35. Alan Feuer and Narain Gehani (editors). Comparing and Assessing

196 The Carnegie-Melloll Curriculum for Undergraduate Computer Science

Register transfer level model 92, 148 Register-level computer organization 27 Registers 92 Regular expressions 28, 84,92, 114 Regular languages 92, 114 Regular sets 114 Relational data model l30 Relational semantics 155 Relations 27,57, 79 Relative completeness 155 Reliability 10, 29, 35, 71, 101, 103, 129,

135 Remote procedure caU 133 Remote sensing 36 Replacement algcrithms 149 Representation 23, 25, 34, 53, 55, 63, 72,

79,83,91 Required courses 38 Research Seminar course 128 Resolution 120 Resource allocation 136 Resource classes 96 Resources 39,72,96,97,129,132,148 Reusable software 101,140,141 Rice's theorem 115 Rise time 91 Robot programming 123, 162 Robotics 33, 119, 122, 123, 162 Roles for universities 16 ROM 91 Rule-dIiven systems 101 Run-time representations 106

S-m-n theorem 115 Safety 11 Satisfiability 110 Scan-conversion 164, 165 Scheduling 34, 97 Science 31, 63 Scientific computation 32 Scope 29,35,84, 99, 105 Scripts 120, 160 S~arch 28, 83, 110, 119, 120, 130, 144 Secondary memory 149 Secondary storage 97 Security 11, 35, 129,131, 133, 136 Segmented systell1s 149 Selection 110

Self-timed systems 151 Semantic analysis 103, 144 Semantic grammars 120 Semantic nets 120,160 Semantics 28, 35, 80, 84, 105, 117, 118,

141,154 Semaphores 34, 97, 98 Semiconductor devices 32 Semigroups 80 Seminar 128 Sequencing 84 Sequential circuit design 92 Sequentiality 27, 34 Sct theory 27,57,62,79 Shading 165 Shannon's theorcm 132, 150 Shape representation 122 Shift registers 92, 152' Shortest path algorithms 88, 111 Signal gene~ators 93 Signal processing 122 Signals 132, 149 Simple statements 105 Simplex method 111 Simulation 92, 150 Simultaneity 98 Single linking 87 Social issues 11, 16, 26, 33, 77 Social sciences 31 Software design 49 Software development tools 103, 136 Software economics 35 Software engineering 30, 62, 72, 100,

135,139 Software Engineering course 135 Software Engineering Lab course 139 Software interfaces 104 Software tools 140 Solid state electronics 32 Solid state physics 32 Solving Real Problems course 94 Sorting 28, 83, 110, 130 Soundness 155 Source encoding 133 Space complexity 115, 157 Space hierarchies 115, 157 Space U"adeoffs 157 Spanning tree algorithms 88

Page 20: References - link.springer.com978-1-4612-5080-7/1.pdf · A Mathematical Introduction to Logic. Academic Press, 1972. 35. Alan Feuer and Narain Gehani (editors). Comparing and Assessing

Thc Carncgie-Mcllon Curriculum for Undergradlwtc Computer Science 197

Spanning trees 110 Specification 28, 29, 34, 66, 83, 86, 101.

103,135,141 Specification formalisms 104 Speech 35, 122, 162 Spin locks 98 Spooling 97 Spreadsheets 25 Stability 162 Stable storage l37 Stacks 87, no State 34,65 State machines 101 State transition 25 Statistical Methods for Data Analysis I

course 170 Statistics 32, 51, 82 Storage 97, 148 Storage allocation 88, lOS, 144 Storage devices 25 Storage managcment 106 Store and forward protocols l33 Stored programs 25 Strassen's algorithm 146 String processing 110 String search 110 Strips 120 Structural induction 155 Structured programming 28, 106 Student computing, pattern of 14 Supercomputers 28 Switches 28 Symbol manipulation 56 Symbol tables 87,103, 106 Synchronization 34. 39, 72, 96, 98, 129,

131, 132, 137, 148 Synchronous circuits 98 Syntax 28,35,80,84,105,117,141,154 Synthesis 30, 53 Systcm accounting 136 System architecture 148 System design 125, 135 System implementation 125 System modelling 136,141 Systcm programs 30 Systcm-building tools 143 Systems 35 Systems implementation languages 144

Table-driven applications 165 Table-drivcn interpreters 28,65, 101 Tapes 92, 148 Task planning 123 Tasks 34 Tclecommunications Policy Analysis

course 174 Tcmporallogic 98, 156 Termination 156 Test data generation 104,141 Testing 28,49, l35, 152 Tcxt gcneration 160 Tcxt proccssing 25, 30 Tcxt re~rieval 30 The History and Formulation of Rcsearch

and Dcvelopmcnt Policy course 175

Theoretical models 35 lbeory and the practice of computing

::4,62,71 Theory of computation 35 Theory of programming languages lOS,

154 Theory of Programming Languages

course 154 Thinking course 174 Three dimensional modelling 122 Three-dimensional graphics 165 Time 27, 39,72,90,96, 129, 132, 148 Time and Resources course 96 Time complexity 115, 157 Time hierarchies 115, 157 Time tradeoffs 157 Time-sharing systems 136 Time-space tradeoffs 64, 86 TimeshaIing systems 30 Timing 92 Topological sort 146 Total correctness 156 Trajectory planning 123 Transactions 34, 98, 131 Transd11cers of Programs course 140 Transformation systems 101 Transitive closurc 80,88, 146 Transmission lines 98 Traveling salesman 88, 110 Tree walks 87

Page 21: References - link.springer.com978-1-4612-5080-7/1.pdf · A Mathematical Introduction to Logic. Academic Press, 1972. 35. Alan Feuer and Narain Gehani (editors). Comparing and Assessing

198 The Carnegie-Mellon Curriculum for Undergraduate Computer Science

Trees 79,87 Trends in computer use 8 Triggering 92 Turing Machines 27,88,90,91,91,11 .. Turing reducibility 158 Two-three trees 88 Types 26,34,62,86,99,101,105

Undecidability 88, 113, 118 Undecidable problems 115 Undergraduate m,'jor 37 Undergraduate minor 40 Undergraduate thesis 127 Undergraduate Thesis course 127 Undo 165 Unibus 98 Universal Turing machines 92, 115 Universality 115 University computing 13 Use of computers 30 Use of computing facilities 77 User interfaces 35, 39, 72, 100, 103, 119,

129,135,136,140,142,143,154,164 Utility programs 30

Variant records 87 Vector graphics 164 Verification 28, 66 Version control 135,141 Very-high-level programming 144, ISS Virtl.al addresses 105 Virtual circuit protocols 133 Virtual machines 90 Virtual memory 28, 35 Vision 122, 162 VLSI 12, 91, 151 VLSI Systems course 151 Von Neumann model 27,92

Weak methods 110, 119, 159 Weakest liberal preconditions 156 Weakest preconditions 84,155 Weighted graphs 110 Well-founded induction ISS Well-founded ordering 80 Window-based systems 165 Working sets 35 W riling tOuis 25