APCSP Creating Computational Artifacts 3 — Questions and Answers
Question 1: What does it mean to 'abstract' when creating a computational artifact?
- Write code using abstract art principles
- Hide unnecessary details to focus on what is important for the task (Correct answer)
- Delete unused files from a project
- Convert a program from one file format to another
Correct answer: Hide unnecessary details to focus on what is important for the task
Abstraction means hiding irrelevant details so the developer (or user) can focus on the important aspects of the artifact.
Question 2: A developer creates a function called calculateTax() that handles all tax logic. Other parts of the program just call this function without knowing how it works. This demonstrates:
- Encryption
- Procedural abstraction (Correct answer)
- Data compression
- Iteration
Correct answer: Procedural abstraction
Procedural abstraction allows a named function to encapsulate complex logic so the rest of the program can use it without understanding its internal details.
Question 3: Which of the following is NOT a characteristic of a well-designed computational artifact?
- It solves the intended problem
- It is purposely difficult to use to prevent misuse (Correct answer)
- It is reliable and produces consistent results
- It can be modified and improved over time
Correct answer: It is purposely difficult to use to prevent misuse
Good artifacts are designed to be usable and accessible, not deliberately difficult; usability is a core design principle.
Question 4: When a student uses a Creative Commons licensed image in their digital poster, they must:
- Pay a licensing fee before using it
- Follow the terms of the license, such as providing attribution (Correct answer)
- Get written permission from the author each time
- Convert the image to a different format first
Correct answer: Follow the terms of the license, such as providing attribution
Creative Commons licenses allow free use under specific terms, which commonly include attributing the original creator.
Question 5: A student tests their quiz app by entering wrong answers on purpose to see what happens. This testing strategy is called:
- Unit testing
- Boundary/edge case testing (Correct answer)
- Deployment testing
- Syntax checking
Correct answer: Boundary/edge case testing
Testing with unexpected or incorrect inputs is edge/boundary case testing, which checks how software handles situations outside normal use.
Question 6: Which statement best describes the iterative design process for computational artifacts?
- Design once, build once, ship once
- Repeatedly design, build, test, and refine based on feedback (Correct answer)
- Write all code before testing any of it
- Finalize requirements before writing a single line of code
Correct answer: Repeatedly design, build, test, and refine based on feedback
Iterative design involves repeated cycles of designing, building, testing, and refining, allowing continuous improvement.
Question 7: A developer uses pseudocode to plan a program before coding it. What is the main benefit of this step?
- Pseudocode runs faster than actual code
- It helps clarify logic and structure before worrying about syntax (Correct answer)
- It automatically generates the final program
- It replaces the need for testing
Correct answer: It helps clarify logic and structure before worrying about syntax
Pseudocode lets a developer work out the logic and flow of a program in plain language before dealing with the specific syntax of a programming language.
What does it mean to 'abstract' when creating a computational artifact?