Skip to main content

Module Quiz

Complete this quiz after finishing the concept and practice pages.

Current Module Questions

Question 1: What CS Studies

What is computer science about besides "writing code"?

Answer: It studies how to model problems, represent information, design computations, reason about feasibility, and run those computations on real machines.

Question 2: Feasibility

Why can a very fast computer still fail to make a bad approach practical?

Answer: Because poor growth can explode with input size. Extra hardware helps only so much when the work grows too quickly.

Question 3: Strategy

What problem signal suggests backtracking instead of blind brute force?

Answer: A search problem where partial choices can be checked early and invalid branches can be cut off before exploring the whole space.

Question 4: ADT vs Data Structure

What is the difference between an abstract data type and a data structure?

Answer: An ADT describes the operations and behavior you want, while a data structure is the concrete representation that implements those operations.

Question 5: Storage

What is one beginner-level tradeoff between relational and non-relational storage?

Answer: Relational systems are strong when structure and relationships are stable and important, while non-relational systems can fit flexible or differently shaped data more naturally.

Question 6: Serialization

Why do serialization formats matter even if a database already stores the data?

Answer: Programs still need ways to exchange or persist data across boundaries, and the chosen format affects readability, compatibility, and tooling.

Question 7: Stack of Execution

What does the operating system do for a running program that the compiler does not?

Answer: The operating system manages runtime concerns like process creation, files, memory allocation, scheduling, and device interaction.

Question 8: Memory Hierarchy

Why do registers, cache, and RAM all exist instead of one big uniform memory?

Answer: Faster memory is more limited and expensive, so systems use layers to balance speed, size, and cost.

Question 9: Paradigms

How can programming paradigms change a solution even when the underlying task is the same?

Answer: They push you toward different ways of organizing state, control flow, and abstraction, which changes how the solution is expressed and maintained.

Question 10: Systems Map

Why does the Semester 0 CS map connect algorithms, data, storage, machines, and languages instead of treating them as isolated topics?

Answer: Because real software decisions cross layers. Strategy, data shape, persistence, execution, and expression choices all affect one another.

Interleaved Review Questions

What is the key reason binary search is faster than linear search on sorted data?

Answer: Each comparison eliminates half the remaining possibilities, which produces logarithmic growth instead of linear scanning.

Prior Module Question 2: Recursion

What happens if a recursive function never reaches a base case?

Answer: It keeps creating calls until the program fails, typically by exhausting the call stack.

Why does BFS find the shortest path in an unweighted graph?

Answer: It explores nodes in layers by distance from the start, so the first time it reaches a target is the shallowest path.

Self-Assessment

  • 90%+ correct: ready to move into Module 3 with a solid Semester 0 map
  • 70-89% correct: revisit the weak concept pages and redo one practice page
  • <70% correct: redraw the CS map and re-explain one program through the stack before moving on

Readiness Check

  • I can explain computer science as problem modeling plus computation
  • I can justify a strategy choice with growth or pruning signals
  • I can distinguish ADTs, data structures, and databases
  • I can explain the path from source code to hardware at a beginner level
  • I can describe how language choices shape code structure

Added Repair Questions

  1. Convert decimal 13 to binary and hexadecimal. Show the division or place-value work.
  2. Add binary 1011 + 0110 by hand and check the result in decimal.
  3. Explain why the text "A" and the number 65 can share a byte pattern but mean different things depending on encoding and interpretation.
  4. Trace a small program through hardware, operating system, runtime, application, data, and network layers.
  5. In Python, when would you choose a list, dictionary, set, function, module, or file? Give one concrete use for each.