Collaboration

Help Questions

AP Computer Science Principles › Collaboration

Questions 1 - 10
1

When a development team transitions from having programmers work individually to a pair programming model, which of the following trade-offs is most likely to occur?

The initial development time for a feature may increase, but the number of defects in the code is likely to decrease.

The amount of hardware required is doubled, but the final program will run twice as fast on any machine.

The need for code documentation is eliminated, but the time required for testing is significantly increased.

The total number of bugs will increase, but the project will be completed in half the time it would otherwise take.

Explanation

Pair programming involves two developers per task, which can increase the person-hours for initial development. However, the constant review process from the navigator leads to higher-quality code with fewer bugs, reducing time spent on debugging and fixing issues later. (CRD-1.B.2) Distractor B is incorrect; documentation is still needed. Distractor C is incorrect; it requires one workstation per pair, and does not affect program speed. Distractor D states the opposite of the expected outcome.

2

Which of the following statements best describes a key benefit of a collaborative programming team that includes members with distinct areas of expertise, such as front-end design, back-end logic, and database administration?

It allows a complex project to be decomposed into specialized tasks that can be handled by the most qualified individuals.

It reduces the need for communication, as each expert can work independently without consulting others.

It guarantees that every team member will eventually learn all the skills possessed by the other specialists.

It ensures that the final product will be completed faster than a team of generalists could complete it.

Explanation

Effective collaboration produces a computing innovation that reflects the diversity of talents and perspectives of its designers. By having specialists, a complex problem can be broken down, and each part can be addressed with deep expertise, leading to a higher quality solution. (CRD-1.A.3) Distractor A is incorrect; collaboration among specialists requires more, not less, communication. Distractor B is not a guarantee. Distractor D is a possible side effect but not the key benefit to the project.

3

A team is building a large software application. Each team member is assigned a different module and works on it independently for several weeks. When they attempt to combine the modules, they find that the inputs and outputs of their respective parts are incompatible. This problem is most likely a result of neglecting which collaborative practice?

The need for ongoing communication and establishing shared technical specifications.

The practice of acknowledging code from third-party libraries within the documentation.

The use of pair programming for the development of each individual module.

The inclusion of team members with diverse, non-technical areas of expertise.

Explanation

Effective collaboration relies on constant communication. When developing interconnected parts, team members must agree on how those parts will interact (e.g., what data they will pass to each other). Working in isolation without this communication and planning is a common cause of integration failure. (CRD-1.A.5) Distractors A, B, and C are all potentially valuable practices, but the direct cause of the incompatibility described is a lack of communication and shared specifications.

4

While developing a program, a student finds a helpful function in an open-source library and decides to use it in their project. According to ethical programming practices, what is the most appropriate action for the student to take?

Use the function and add a comment in the code that acknowledges the library and its author.

Refrain from using any external code to ensure the entire project is their own original work.

Copy the function into the program and change the variable names to personalize it.

Use the function but do not mention it in the program's documentation to avoid complication.

Explanation

It is important to acknowledge any code segments that were developed by another source. The appropriate way to do this is to include an acknowledgement, often in the form of a comment in the program documentation, that gives credit to the original source or author. (CRD-2.H.1, CRD-2.H.2) Distractor A is a form of plagiarism. Distractor C is an unnecessary restriction, as using libraries is a standard and efficient practice. Distractor D is unethical as it omits required attribution.

5

A university research project develops a mobile app that allows volunteers to record and submit observations of local wildlife. Scientists then use this data, collected from thousands of individuals, to monitor ecosystem health. This method of data collection is best described as which of the following?

Crowdsourcing

Pair programming

Open access research

Citizen science

Explanation

Citizen science is scientific research conducted, in whole or in part, by non-professional scientists. This scenario, where the public contributes data to a scientific study, is a perfect example of citizen science. (IOC-1.E.3) While this is a form of crowdsourcing (B), citizen science is the more specific and accurate term for collaborative, science-oriented data collection by the public. Open access (A) refers to making research results freely available. Pair programming (D) is a development methodology.

6

In the pair programming model, one developer acts as the “driver” who writes the code, while the other acts as the “navigator” who observes. Which of the following best describes the primary role of the navigator?

To write the official documentation for the code as the driver is simultaneously typing it.

To test the previously completed code segments on a separate computer to check for integration issues.

To independently work on a different feature of the program to increase the team's overall speed.

To review each line of code as it is written, checking for errors and suggesting strategic improvements.

Explanation

Pair programming is a collaborative model where the navigator's main role is to observe the driver's coding in real-time, offering feedback, catching potential errors, and thinking about the strategic direction of the code. (CRD-1.B.2) Distractor A is a secondary task; the primary one is code review. Distractor C describes a separate testing activity, not the navigator's real-time role. Distractor D describes parallel individual work, which is the opposite of the pair programming model.

7

A team of developers are all working on different features of the same application. Each developer makes frequent changes to the project's source code files. Which of the following collaborative problems is best addressed by using a version control system?

Facilitating real-time text and voice chat for quick communication among team members.

Automating the deployment of the application to a live server after testing is complete.

Ensuring that all developers are using the same style and conventions when writing their code.

Tracking the history of changes and managing conflicts when multiple developers edit the same file.

Explanation

Online tools like version control systems support collaboration. Their primary purpose in a team setting is to keep a history of all changes made to the codebase and to provide tools for resolving conflicts that arise when multiple people's changes need to be merged. (CRD-1.B.1) Distractors A, B, and D describe tasks that are often part of a development workflow but are handled by different tools (linters, deployment scripts, and communication platforms, respectively), not the version control system itself.

8

A team of programmers, located in different countries, is collaborating on a single software project. They use an online version control system to manage their codebase. What is the primary advantage of using such a system for collaboration?

It automatically translates program code from one programming language to another for different team members.

It automatically prevents any code with syntax errors from being added to the project, ensuring the shared version always works.

It includes a high-quality video conferencing tool for daily team meetings to ensure all members are synchronized on tasks.

It allows multiple team members to work on the same files concurrently and provides a structured process for merging their changes.

Explanation

Online tools like version control systems support collaboration by allowing programmers to share code and manage contributions. The primary function is to handle concurrent work on the same codebase and merge different versions of files systematically. (CRD-1.B.1) Distractor A is incorrect because version control does not translate languages. Distractor C is incorrect because version control systems are for code, not typically for video meetings. Distractor D is incorrect because these systems track changes but do not inherently prevent developers from committing code with errors.

9

Within a collaborative programming team, what is the primary purpose of adding comments to the program code to document its function and authorship?

To increase the execution speed of the program, as the computer's compiler can use comments for optimization.

To prevent anyone outside the original team from being able to read or understand the program's source code.

To ensure proper credit is given and to help other team members understand, use, and modify the code.

To act as an automated error-checking system that can find and correct logical flaws in the algorithm.

Explanation

Program documentation, including comments, helps in developing and maintaining correct programs, especially in collaborative environments. It clarifies the code's purpose for other developers and ensures proper acknowledgement for work done. (CRD-2.G.4, CRD-2.H.1) Distractors A and C are incorrect; comments are ignored by the compiler and do not affect speed or perform error checking. Distractor D is incorrect; comments are meant to increase, not decrease, understandability.

10

During the development of a mobile application for managing personal finances, the design team frequently consults a group of potential end-users for feedback on prototypes. What is the primary purpose of this collaborative practice?

To determine which programming language will be the most efficient for performing complex calculations on financial data.

To transfer the responsibility of testing the application for bugs from the development team to the end-users.

To satisfy a common legal requirement for public consultation before a new financial application can be officially released.

To ensure the final product effectively meets the needs and usability expectations of its intended audience.

Explanation

Consultation and communication with users are crucial aspects of developing computing innovations. The primary purpose of gathering user feedback is to understand their needs and ensure the program is designed to meet them effectively. (CRD-1.A.5) Distractor A is incorrect because users typically provide feedback on functionality and design, not on technical implementation details like programming language choice. Distractor C is incorrect because while users might find bugs, the primary goal is feedback on design and needs, not a transfer of testing responsibility. Distractor D is incorrect as there is generally no such legal requirement for most application development.

Page 1 of 4