CPSC 421 OOP Final Exam Crossword I

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
Across
  1. 3. A design choice in C++ is to implement an Abstract class using an _____ method
  2. 6. Minimizing dependencies is minimizing _____
  3. 9. For a function pointer, the function must be ______ before it is passed
  4. 11. Loosely-coupled modules are easier to _____ separately
  5. 12. For good design, _____ the use of dependencies as much as possible
  6. 13. Related to a programming idiom
  7. 14. The std::optional completely replaces using _____ for optional single value attributes
  8. 15. Inline lambda functions create several _____ issues
  9. 17. The goal of coupling is to _____ external interaction
  10. 20. A design choice in C++ is to implement a method of an Abstract class using a _____ _____ method
  11. 21. Originated from Church's lambda _______
  12. 23. Broad, external libraries, e.g., Boost, have a _____ risk level
  13. 27. _____ _____ as a handler is limited to free functions
  14. 30. Inversion of Control inverts _____ of the control flow of the program
  15. 31. The null state of char* has the value _____
  16. 32. A high degree of coupling is _____ coupled
  17. 34. A low degree of coupling is _____ coupled
  18. 35. Functions exchange data using global data instead of arguments is _____ coupling
  19. 36. A problem with resources such as memory when we lose all access to them
  20. 38. A type of resource (two words)
  21. 39. The lambda function: [](char& c) { c = std::toupper(c); } uses an ____ parameter
  22. 43. The [] in the lambda expression [](int n1, int n2)->bool {}
  23. 45. std::optional can be used on any ____ type (non-pointer)
  24. 46. The "single biggest, most critical vulnerability of the last decade" is in the package _____
  25. 47. Naming things is good when we have a good name, but a _____ when we don't
  26. 51. A C function for sorting that uses a function pointer for comparison
  27. 53. All software is built using other _____
  28. 55. Static polymorphism is also known as _____ _____
  29. 57. Lambda functions are very efficient and very _____
  30. 59. Both multiplicities [1..*] and [*] are ______
  31. 60. A program may do this due to improperly-used resources
  32. 62. A single interface to entities of different types where which code is run depends on the type
  33. 64. A subtype derives from a _____
  34. 65. The lambda function: [](int n1, int n2)->bool { return n1 < n2; } is an example of a ____ comparison
  35. 66. Classes with zero to minimal coupling are _____
  36. 68. UML Generalization is described as an _____-a relationship
  37. 69. Tightly-coupled modules can be more _____
  38. 74. In good design, dependencies are _____ and minimized as much as possible
  39. 75. One alternative to a smart pointer is to create a custom C++ _____
  40. 76. The {} in the lambda expression [](int n1, int n2)->bool {}
  41. 77. In C++, _____ is a type of static polymorphism
  42. 78. The lambda function: [](const void* e1, const void* e2)->int { /* ... */ } is an example of an ____ comparison
  43. 82. The abbreviation for Inversion of Control
  44. 83. A type of pointer that follows RAII
  45. 84. A derived class derives from a _____ class
  46. 85. Inversion of Control is essential for _____
  47. 87. A solution introduced in c++17 is ______
  48. 88. A dependency risk is that _____ fixes of the dependency may stop
  49. 90. When a module directly references the content of another module, is _____ coupling
  50. 93. A C++ smart pointer that is in the standard
  51. 95. Libraries with very specific usage, e.g., CLI11, have a _____ risk level
  52. 96. One module only passes the data required by another module is _____ coupling
  53. 98. The client passes a flag or command that explicitly controls what the called code is doing is _____ coupling
  54. 100. The purpose of generalization is to _____ design problems
  55. 101. A type of resource
  56. 107. The std::optional allows for ____ loading/allocation
  57. 108. Coupling is an _____ measure
  58. 109. A function pointer is slightly _____ than a direct call
  59. 111. How we can reset a std::optional back to an empty state
  60. 113. Loosely-coupled modules allow us to easily _____ individual parts
  61. 115. Instead of your code calling a function/method, you _____ parts of your code
  62. 117. Function pointers as a handler can only use lambda's with _____ capture
  63. 118. A type of free (deallocation) performed more than once on the same allocation
  64. 120. A resource must be properly ____ before use
  65. 121. For good design, _____ dependencies
  66. 122. A resource must be properly ____ before use
  67. 124. A resource must be properly _____ after use
  68. 125. For good design, favor _____ (.cpp) over interface (.hpp)
  69. 126. C++ _____ as a handler has no limits and is extremely fast
  70. 127. _______ as a handler has no limits but is very slow
Down
  1. 1. _____ dependencies are dependencies on the code that we (or our team) write
  2. 2. Special-purpose libraries, e.g., libarchive, have a _____ risk level
  3. 4. A char* can have ____ states
  4. 5. An advantage to overloading is that it is easier to remember the correct _____ name
  5. 7. Lambda functions with an empty capture, i.e., "[]", can be passed to _____ _______
  6. 8. A type of initialization where we wait to allocate until right before it is needed
  7. 9. Each _____ is a concern
  8. 10. Dynamic polymorphism requires _____ methods
  9. 16. A recurring construct to fix a commonly occurring problem (two words)
  10. 18. A dependency risk is that _____ fixes of the dependency may stop
  11. 19. The size of the impact of the NPM package left-pad is primarily due to _____ updates
  12. 22. Coupling has a significant effect on the _____ of a system
  13. 24. An _____ mostly consists of all pure-virtual methods
  14. 25. Client code passes parameters via a non-private data format is _____ coupling
  15. 26. A subtype derives from a _____
  16. 28. In the YAMLParser IoC example, the only method in YAMLParser that the DockerReport calls
  17. 29. One module passes more data than needed to another module is _____ coupling
  18. 33. A type of resource
  19. 37. In RAII, the resource is typically allocated in the _____
  20. 40. UML Generalization is not a _____-a relationship
  21. 41. The -> in the lambda expression [](int n1, int n2)->bool {}
  22. 42. A dependency risk is that the dependency may become _____
  23. 44. In the real world, have someone with the responsibility to _____ the current state of each dependency
  24. 48. UML Generalization is not a _____-a relationship
  25. 49. Multivalued multiplicities are ______ in C++
  26. 50. Use of other software means that we are _____ on that software to work, work correctly, and be available for a given timeframe
  27. 52. Similar to much _____-_____ programming
  28. 54. The capture and _____ _____ are very important
  29. 56. In the YAMLParser IoC, many of the methods became _____
  30. 58. _____ dependencies are dependencies on code we (or our team) did not write
  31. 61. Both multiplicities [1] and [0..1] are ____ ____
  32. 63. An _____ class that consists of at least one pure virtual method, and we cannot create objects of this class type
  33. 64. In C++, _____ is a type of static polymorphism
  34. 67. A dependency risk is that _____ development of the dependency may stop
  35. 70. Multiplicity in UML primarily refers to _____ in a C++ class
  36. 71. Both multiplicities [0..1] and [0..*] are ______
  37. 72. Static polymorphism is determined at _____ _____
  38. 73. For low-level functionality with a function, Inversion of Control is often referred to as a _____
  39. 79. In RAII, the resource is deallocated in the ______
  40. 80. Function often cannot be _____ close to where they are used
  41. 81. A lambda function is also known as an _____ function
  42. 83. The problem with bidirectional associations is that we cannot develop, test, or used them _____
  43. 86. Standard libraries of the programming language, e.g., C++ standard libraries, have a _____ _____ risk level
  44. 89. A special kind of coupling, _____ coupling, is between a derived and base class
  45. 91. A std::string can have ____ states
  46. 92. One use case for std::optional is for an _____ return
  47. 94. The () in the lambda expression [](int n1, int n2)->bool {}
  48. 97. What the A in RAII stands for
  49. 99. A disadvantage to overloading is that it can disguise large differences in _____
  50. 101. Both multiplicities [1] and [1..*] are ______
  51. 102. What the second I in RAII stands for
  52. 103. For good design, minimize the _____ of where the dependency is used in a project
  53. 104. A resource must be properly ____ before use
  54. 105. A disadvantage to overloading is that it can lead to _____ names
  55. 106. An advantage to overloading is that code is more _____ as types change
  56. 110. Tightly-coupled modules lose a lot of _____
  57. 112. Loosely-coupled modules allow us to easily _____ individual parts
  58. 114. A subclass derives from a _____
  59. 116. Dynamic polymorphism is determined at _____ _____
  60. 119. What the R in RAII stands for
  61. 123. To tell the difference between a std::string that does not have a value versus a std::string with an empty string, we could use a ____, but it is not a great solution.
  62. 128. The lambda function: [](char c) { std::cout << c; } uses an __ parameter