Unit 1: Creative Development¶

Big Ideas Covered:

  • Creative Development (CRD)

  • Abstraction (AB)

  • Program Function and Purpose (PFP)

  • Program Design and Development (CRD)

Comprehensive Outline

1.1: The Creative Nature of Programming

  • Programming is a creative, collaborative process

  • There are often multiple correct solutions

  • Programs can express personal ideas or solve real-world problems

  • Creativity in computing isn’t just visual—it’s structural, too

Key Concepts:

  • Programming is more than writing code—it’s solving problems creatively

  • Design thinking and brainstorming

  • Real-world relevance and innovation

1.2: Personal Expression Through Computing

  • Programs reflect the interests, backgrounds, and identities of their creators

  • Students can make unique and personal projects

  • Emphasis on authentic problem-solving and cultural relevance

Key Concepts:

  • Computer science as a form of expression

  • Importance of diversity in computing

  • Encouraging voice, purpose, and originality

1.3: Collaboration in Programming

  • Benefits of working in teams: productivity, problem-solving, code quality

  • Best practices for collaboration: pair programming, team roles, version control

  • Ethical collaboration: avoiding plagiarism and properly crediting work

Key Concepts:

  • Communicating ideas clearly

  • Constructive peer feedback

  • Sharing responsibilities in team projects

1.4: Program Design and Development

  • The iterative process of design → test → debug → improve

  • Planning tools: flowcharts, pseudocode, wireframes

  • User needs and interface considerations

Key Concepts:

  • Start simple, then improve

  • Think about how users will interact with the program

  • Make code readable and organized

1.5: Identifying and Correcting Errors

  • Types of programming errors:

    • Syntax (violating language rules)

    • Logic (incorrect reasoning)

    • Runtime (errors that crash or behave unexpectedly)

  • Use of debugging tools and strategies

  • Importance of testing and refining code

Key Concepts:

  • Everyone makes mistakes—good programmers catch and fix them

  • Debugging is a creative and logical process

  • Testing is not just technical—it’s about ensuring user experience

1.6: Program Function and Purpose

  • Programs are designed to solve problems or perform tasks

  • Identify program goals and intended outcomes

  • Input, processing, and output

  • Understanding what a program does and why it was created

Key Concepts:

  • Ask: What problem is this solving?

  • Clear documentation of purpose and usage

  • Communicating your project to non-technical audiences

1.7: Program Design and Development Process

  • Understanding the full lifecycle:

    1. Identify the problem

    2. Plan the solution

    3. Develop and test the program

    4. Refine and evaluate

  • Preparing for the Create Performance Task (Create PT)

Key Concepts:

  • Documenting the process is as important as writing code

  • Planning saves time later

  • Programs should evolve with user feedback and testing

Key Vocabulary:

  • Creative development

  • Iterative design

  • Debugging

  • Collaboration

  • Abstraction

  • Testing

  • Input/output

  • Function and purpose

  • Design process

  • Documentation

šŸ’” Suggested Activities:

  • Mini-Create Task: Design a simple program around a personal interest

  • Group brainstorming: Solve a community or school problem with code

  • Debugging Challenge: Fix a broken program and explain the fixes

  • Peer code reviews: Practice giving and receiving feedback

  • Reflection journals: How did you express yourself creatively in your project?

Summary:

By the end of Unit 1, students should be able to:

  • Explain how computer programs can express ideas and solve problems creatively

  • Work collaboratively to develop and refine programs

  • Use a structured process to plan and improve code

  • Identify and fix errors in their own and others’ code

  • Communicate the purpose and function of a program clearly

The Creative Development section of the AP Computer Science Principles (CSP) course focuses on helping students develop skills in programming and computational thinking to create their own digital artifacts (such as apps, games, simulations, websites, or animations). This section emphasizes creativity, problem-solving, and iteration in the development process. It helps students build their programming skills while also learning how to design and refine computational solutions to problems.

What You Will Learn:¶

  1. Problem Identification: Students will learn how to define problems that can be solved through computing. This includes thinking critically about the needs of users or audiences and determining the appropriate computing tools or techniques to address the issue.

  2. Design and Development: Students will learn how to break down a problem into smaller components and design a solution using algorithms, data structures, and other programming concepts. This section often involves developing a clear plan or outline before starting to write code.

  3. Implementation: Students will learn how to translate their designs into functioning programs using a programming language. This will include writing and debugging code, as well as using existing software libraries or frameworks to enhance their projects.

  4. Iterative Improvement: Students will learn how to test their programs and refine them based on feedback and new ideas. This can involve improving the usability, functionality, or efficiency of their work.

  5. Creativity and Expression: The course emphasizes how students can use computing as a medium for personal expression and creativity. This could be through digital art, interactive media, or other projects that allow them to express ideas and solutions in unique ways.

What You Will Do:¶

  1. Create a Digital Artifact: Students will work on a substantial project that demonstrates their ability to apply programming concepts creatively. This could be anything from a game, animation, app, or simulation to a website, depending on the project requirements they choose.

  2. Use a Programming Language: They will implement their projects using a programming language such as Python, JavaScript, or others, depending on the project type and the tools they are working with. Students develop computational thinking practices through a combination of problem-solving strategies, exposure to coding, and hands-on practice. Here are a few key ways that this happens:

    • Decomposition: Students break down complex problems into smaller, manageable parts. For example, in coding, they might start by breaking down a project into smaller tasks before tackling the entire problem. This helps them understand the structure of a problem and simplifies finding a solution.

    • Pattern Recognition: As students work with code or mathematical models, they begin to recognize recurring patterns. This might involve identifying repetitive structures in loops or recognizing common strategies in algorithms. Identifying patterns makes it easier to solve similar problems in the future.

    • Abstraction: Students learn to focus on the important aspects of a problem, ignoring unnecessary details. In coding, this could involve defining functions to generalize common tasks and avoid redundancy, or thinking about the general logic of a problem rather than the specifics.

    • Algorithmic Thinking: Students develop the ability to create step-by-step instructions (algorithms) to solve problems. This can include writing code to implement these instructions or outlining a process to follow for problem-solving.

    • Iterative Design and Testing: Students learn to test and refine their solutions. In computational thinking, it’s common to iterate through code, testing different approaches to refine and improve their solutions. This approach teaches resilience and an understanding of failure as part of the learning process.

    • Collaboration and Communication: Computational thinking also involves working with others, sharing ideas, and communicating solutions clearly. For example, students may collaborate on coding projects or discuss strategies for solving problems in groups, building both technical and interpersonal skills.

  3. Collaborate and Share Ideas: Often, students will have opportunities to share their progress and ideas with peers, providing feedback and learning from each other’s approaches.

  4. Document the Development Process: Students will keep track of their progress through documentation, explaining their design choices, challenges faced, and how they overcame them.

How You Will Show What You Have Learned:¶

  1. Performance Tasks: The Creative Development section includes a performance task that is submitted to the College Board. Students need to provide:

    • Artifact: A functioning digital product (app, game, simulation, etc.) that they have created.

    • Written Responses: Students write a reflection about their project, discussing their problem-solving approach, design decisions, and how they iterated on the project. This will include insights into the algorithms they implemented and the challenges they faced.

  2. Demonstration of Computational Thinking: Students must demonstrate that they can use computational thinking (breaking down problems into smaller parts, designing solutions, and evaluating results) as part of their project.

  3. Self-Reflection: Students will reflect on their learning, providing insight into how they created their digital artifact and what they learned through the process.