Quiz: Welcome to Computer Science

Test your understanding before moving on. Target: 70% or higher to proceed confidently.


Section 1: Multiple Choice (1 point each)

1. Which of the following BEST describes computer science?

  • A) The study of how to use computers and software applications
  • B) The study of computation — what can be computed and how to do it efficiently
  • C) The study of programming languages and their syntax
  • D) The study of building computer hardware
Answer **B)** The study of computation — what can be computed and how to do it efficiently. *Why B:* CS is fundamentally about computation as a concept, not about any specific tool or language. *Why not A:* That's digital literacy or IT, not computer science. *Why not C:* Programming languages are tools used in CS, but CS is broader than any language. *Why not D:* That's closer to computer engineering or electrical engineering. *Reference:* Section 1.1

2. Which pillar of computational thinking involves ignoring irrelevant details to focus on what's essential?

  • A) Decomposition
  • B) Pattern recognition
  • C) Abstraction
  • D) Algorithm design
Answer **C)** Abstraction *Why C:* Abstraction is specifically about hiding irrelevant complexity and focusing on what matters. *Why not A:* Decomposition is about breaking problems into smaller sub-problems. *Why not B:* Pattern recognition is about spotting similarities between problems. *Why not D:* Algorithm design is about creating step-by-step procedures. *Reference:* Section 1.2.3

3. According to the chapter, what do professional software developers spend MOST of their time doing?

  • A) Writing new code
  • B) Reading code, debugging, and discussing design
  • C) Attending meetings
  • D) Learning new programming languages
Answer **B)** Reading code, debugging, and discussing design *Why B:* The chapter states that writing new code is roughly 30% of a developer's time; the rest is reading, debugging, and collaborating. *Why not A:* Writing new code is a minority of the workday. *Why not C:* While collaboration is important, it includes many forms beyond meetings. *Why not D:* Learning happens, but it's not the primary daily activity. *Reference:* Section 1.3

4. What is a "bug" in computing?

  • A) A virus that infects your computer
  • B) An error in a program that causes incorrect or unexpected behavior
  • C) A feature that users didn't ask for
  • D) A hardware malfunction
Answer **B)** An error in a program that causes incorrect or unexpected behavior *Why B:* A bug is a software error — the program doesn't do what it should. *Why not A:* Viruses are malicious software, not bugs. *Why not C:* Unwanted features are a design issue, not a bug per se. *Why not D:* Hardware malfunctions are separate from software bugs. *Reference:* Section 1.8, Key Terms

5. Which of the following is NOT a property of a good algorithm?

  • A) It is unambiguous
  • B) It terminates (eventually finishes)
  • C) It uses the fewest possible lines of code
  • D) It produces the correct result for all valid inputs
Answer **C)** It uses the fewest possible lines of code *Why C:* Algorithm quality is about correctness, clarity, and efficiency — not about minimizing code length. A one-liner can be harder to understand than a five-liner. *Why not A:* Unambiguity is essential — every step must be clear. *Why not B:* Termination is required — an algorithm that runs forever is useless. *Why not D:* Correctness is the most basic requirement. *Reference:* Section 1.2.4

6. According to the chapter, why is learning CS fundamentals important even though AI can generate code?

  • A) AI-generated code is always wrong
  • B) AI will be banned from professional use
  • C) You need fundamentals to evaluate, debug, and direct AI-generated code
  • D) Fundamentals are only important for academic exams
Answer **C)** You need fundamentals to evaluate, debug, and direct AI-generated code *Why C:* The chapter explicitly argues that AI amplifies your abilities but only if you have abilities to amplify. *Why not A:* AI-generated code is often useful, but not always correct. *Why not B:* There is no indication of banning AI tools. *Why not D:* Fundamentals are valuable for real-world practice, not just exams. *Reference:* Section 1.4

7. Breaking a complex problem into smaller, manageable sub-problems is called:

  • A) Abstraction
  • B) Decomposition
  • C) Algorithm design
  • D) Debugging
Answer **B)** Decomposition *Why B:* Decomposition is exactly this — breaking down complexity into manageable pieces. *Why not A:* Abstraction is about hiding irrelevant details, not about breaking down. *Why not C:* Algorithm design is about creating step-by-step procedures. *Why not D:* Debugging is about finding and fixing errors in code. *Reference:* Section 1.2.1

8. The progressive project you'll build throughout this course is:

  • A) A web browser
  • B) A social media app
  • C) A command-line task and project manager called TaskFlow
  • D) A video game
Answer **C)** A command-line task and project manager called TaskFlow *Why C:* TaskFlow is the progressive project described in Section 1.5.1. *Why not A, B, D:* These are not the progressive project for this course. *Reference:* Section 1.5.1

Section 2: True/False with Justification (1 point each)

9. "You need to be good at math to succeed in computer science."

Answer **False** *Explanation:* Most programming uses basic algebra at most. Specialized fields like graphics, machine learning, and cryptography use more math, but the majority of software development does not require advanced mathematics. The chapter explicitly addresses this as a myth in Section 1.3.

10. "An algorithm must always produce the most efficient solution possible."

Answer **False** *Explanation:* An algorithm must be correct, unambiguous, and terminating — but it doesn't have to be the *most* efficient. There can be multiple valid algorithms for the same problem that differ in efficiency. Section 1.2.4 discusses this trade-off with the card-sorting example.

11. "Computational thinking is only useful when programming computers."

Answer **False** *Explanation:* The chapter explicitly argues that computational thinking is a general problem-solving framework applicable to any domain — planning events, organizing data, analyzing problems in any field. This is the threshold concept of Chapter 1.

12. "Computer science as an academic discipline has existed since the 1800s."

Answer **False** *Explanation:* While there were important computing pioneers in the 1800s (such as Ada Lovelace and Charles Babbage), CS as an academic discipline is much younger. The first CS department in the US was established at Purdue in 1962.

Section 3: Short Answer (2 points each)

13. In two to three sentences, explain the analogy between AI coding assistants and calculators in math class. Why does the existence of calculators not eliminate the need to learn arithmetic?

Sample Answer Just as calculators can perform calculations but require the user to know which operations to perform and whether the answer makes sense, AI coding assistants can generate code but require the user to understand what they're asking for and whether the result is correct. Without understanding the fundamentals, you can't set up the problem properly, verify the output, or catch errors. Both tools amplify existing knowledge rather than replacing it. *Rubric — full credit requires:* - Connecting the analogy to both tools (calculator and AI) - Explaining that understanding is needed to use the tool effectively - Noting that verification/evaluation requires knowledge

14. Name and briefly define the four pillars of computational thinking. Then rank them in order of which you think will be most difficult for you personally, and explain your ranking.

Sample Answer 1. **Decomposition:** Breaking complex problems into smaller sub-problems. 2. **Pattern recognition:** Identifying similarities between problems. 3. **Abstraction:** Ignoring irrelevant details to focus on what's essential. 4. **Algorithm design:** Creating precise step-by-step procedures. Ranking will vary by student. Full credit requires accurate definitions and thoughtful self-reflection on difficulty. *Rubric — full credit requires:* - All four pillars named and correctly defined - A personal ranking with genuine reflection (not generic)

15. Why do the career profiles (Sofia, Marcus, Priya) emphasize collaboration and code reading, rather than just writing code? What does this tell you about what to prioritize in this course?

Sample Answer The career profiles emphasize collaboration and code reading because real software development is a team activity where most time is spent understanding existing systems, not writing from scratch. This tells us that in this course, we should prioritize understanding *why* code works (not just memorizing syntax), reading and analyzing others' code, and communicating our ideas clearly — not just producing code that passes tests. *Rubric — full credit requires:* - Observation that real work is collaborative and reading-heavy - Connection to course priorities (understanding, communication, not just syntax)

Section 4: Applied Scenario (3 points)

16. You've been asked to organize your school's annual science fair. Apply all four pillars of computational thinking to this task:

a) Decompose the problem into at least 5 sub-tasks. b) Identify a pattern from a similar event you've organized or attended. c) Identify an abstraction that simplifies the planning process. d) Write an algorithm (5-8 steps) for judging the science fair projects.

Sample Answer a) Sub-tasks: (1) Set a date and reserve a venue, (2) Create registration for student projects, (3) Recruit and brief judges, (4) Organize logistics (tables, power outlets, signage), (5) Create a judging rubric, (6) Plan an awards ceremony, (7) Promote the event. b) Pattern: This is similar to organizing any exhibition or competition — you need participants, evaluators, a venue, criteria, and a schedule. If I've attended a career fair, the logistics are similar: set up booths, route traffic, have evaluators (employers) visit booths, and track results. c) Abstraction: A "registration form" abstracts away the details of each project (topic, materials needed, space required) into a standardized format. Judges don't need to understand the science behind every project to evaluate it — the rubric abstracts the judging into scores on specific criteria. d) Algorithm for judging: 1. Assign each judge a list of projects to evaluate. 2. For each project on the list, visit the student's booth. 3. Listen to the student's presentation (max 5 minutes). 4. Score the project on each rubric criterion (1-5). 5. Calculate the total score. 6. Record the score on the judging sheet. 7. Repeat steps 2-6 for each project on the list. 8. Submit all judging sheets to the coordinator. *Rubric:* | Criterion | 0 pts | 1 pt | 2 pts | 3 pts | |-----------|-------|------|-------|-------| | Decomposition | Not attempted | Fewer than 5 sub-tasks or too vague | 5+ sub-tasks, some well-defined | 5+ specific, actionable sub-tasks | | All four pillars applied | Fewer than 2 | 2-3 pillars addressed | All 4 addressed | All 4 addressed with depth | | Algorithm quality | Not attempted | Missing termination or too vague | Clear steps but minor issues | Clear, unambiguous, terminates |

Scoring & Next Steps

Score Assessment Recommended Action
< 50% Needs review Re-read sections 1.1-1.2, redo Part A exercises
50-70% Partial Review weak areas, redo Part B exercises
70-85% Solid Ready to proceed; revisit any missed topics
> 85% Strong Proceed; consider Deep Dive extensions