CPSC 421 OOP Final Exam Crossword III

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