WGU D684 — Introduction to Computer Science |
Comprehensive Objective Assessment | Study Guide | Latest
Update 2026/2027 | Practice Questions and Answers | Exam Prep.
Table of Contents
1. Computational Thinking and Problem Solving
2. Algorithms and Pseudocode
3. Programming Fundamentals: Variables, Data Types, and Control Flow
4. Operating Systems Fundamentals
5. Process Management and Scheduling
6. Memory Management
7. File Systems and Storage Management
8. Computer Architecture and Hardware
9. Data Representation: Binary, ASCII, and Unicode
10. Data Structures
11. Software Development Lifecycle (SDLC) and Methodologies
12. Ethics in Computing and Professional Responsibilities
, WGU D684 | 2
Question 1: What is the first step in computational thinking when approaching a complex
problem?
A. Break the problem into smaller, manageable sub-problems
B. Write the final code immediately
C. Test the solution with random data
D. Optimize for memory usage
Correct Answer: A. Break the problem into smaller, manageable sub-problems
Decomposition is the foundational step of computational thinking that reduces complexity
before any code is written. Writing code immediately skips analysis, random testing is
premature, and memory optimization occurs during design, not as a first step.
Question 2: A student is tasked with creating a program to manage a library system. Which
decomposition approach is most appropriate?
A. Write all code in a single function
B. Divide into modules: book catalog, user accounts, checkout system, search functionality
C. Focus only on the user interface design
D. Start with database optimization
Correct Answer: B. Divide into modules: book catalog, user accounts, checkout system,
search functionality
Decomposition into functional modules (catalog, accounts, checkout, search) allows parallel
development and independent testing. A single function is unmaintainable, UI-only neglects
logic, and premature optimization violates iterative refinement principles.
Question 3: Which problem-solving heuristic involves repeatedly breaking a problem into
smaller sub-problems until each is trivially solvable?
A. Backtracking
B. Divide-and-conquer
C. Brute force
D. Greedy algorithm
Correct Answer: B. Divide-and-conquer
Divide-and-conquer recursively decomposes problems into smaller instances (e.g., binary
search, merge sort). Backtracking explores paths and retreats, brute force exhaustively tries
all possibilities, and greedy makes locally optimal choices without recursion.
, WGU D684 | 3
Question 4: In iterative refinement, a programmer:
A. Writes the entire program in one attempt
B. Develops a basic solution first, then progressively improves it with more detail and
functionality
C. Only tests after the final version is complete
D. Avoids using any abstraction
Correct Answer: B. Develops a basic solution first, then progressively improves it with
more detail and functionality
Iterative refinement builds successively more complete versions, starting with a simple core
and adding features. Writing everything at once is waterfall-style, testing only at the end is
risky, and avoiding abstraction contradicts good design.
Question 5: When solving a maze, backtracking involves:
A. Moving randomly until the exit is found
B. Exploring a path, and if it leads to a dead end, returning to the last decision point to try
another path
C. Always turning left regardless of obstacles
D. Memorizing the entire maze before starting
Correct Answer: B. Exploring a path, and if it leads to a dead end, returning to the last
decision point to try another path
Backtracking systematically explores alternatives by undoing choices when they fail. Random
movement is not systematic, always turning left is a heuristic (not backtracking), and
memorizing the maze is preprocessing, not backtracking.
Question 6: Which algorithmic approach typically has better efficiency for finding an element
in a sorted list?
A. Linear search (checking each element sequentially)
B. Divide-and-conquer binary search
C. Random search
D. Brute force checking all possible combinations
Correct Answer: B. Divide-and-conquer binary search
Binary search achieves O(log n) time by halving the search space each iteration, while linear
search is O(n). Random search lacks guarantees, and brute force is irrelevant for simple
lookup in sorted data.
, WGU D684 | 4
Question 7: Which best describes an algorithm?
A. A physical component of a computer
B. A step-by-step procedure to solve a problem
C. A type of programming language
D. A database query
Correct Answer: B. A step-by-step procedure to solve a problem
An algorithm is a finite, well-defined sequence of instructions to solve a problem or perform
a task. It is a conceptual tool, not a physical component, programming language, or database
query.
Question 8: Pseudocode is primarily used to:
A. Execute programs faster
B. Plan logic without syntax constraints
C. Replace compilers
D. Store user data
Correct Answer: B. Plan logic without syntax constraints
Pseudocode uses plain language to design algorithmic logic before writing actual code. It is
not executable, does not replace compilers, and does not store data.
Question 9: Which symbol typically represents assignment in pseudocode?
A. ==
B. =
C. !=
D. <>
Correct Answer: B. =
The equals sign (=) denotes assigning a value to a variable in pseudocode and many
programming languages. The double equals (==) typically represents comparison, and !=
and <> represent not-equal comparisons.
Question 10: What does the keyword OUTPUT indicate in pseudocode?
A. Reading data from a file
B. Displaying information to the user
C. Initializing a variable
D. Ending a loop