Close
Close full mode
logoMakeCode AP CSP

Major projects

Unit 1

Description of project

Students work in pairs to complete a design thinking challenge in which they select a user, identify a problem they can solve with an app, program, or device, and then use the design thinking process to create a paper prototype for their design and receive feedback on their design and modify their product based on that feedback. After revisions, each team will present their prototype to the class.

The introduction to the project can be found at Design Challenge - Discover, Ideate.

Learning objectives

  • CRD-1.A Explain how computing innovations are improved through collaboration.
  • CRD-1.B Explain how computing innovations are developed by groups of people.
  • CRD-1.C Demonstrate effective interpersonal skills during collaboration.
  • CRD-2.E Develop a program using a development process.
  • CRD-2.F Design a program and its user interface.

Connection to enduring understanding

By working with a partner to create a paper prototype of a program, app, or device for a chosen user, the design thinking challenge project helps students understand how incorporating multiple perspectives through collaboration improves computing innovations as they are developed. (CRD-1) Additionally, students are lead through the design thinking process to complete the project. By using the design thinking process, students learn how developers create and innovate using an iterative design process that is user-focused, that incorporates implementation/feedback cycles, and that leaves ample room for experimentation and risk-tasking. (CRD-2)

Unit 2

Description of project

Students work in small groups to create a static webpage on a Computing Systems and Networks topic. Students present their webpages to the class, teaching each other core concepts related to Computing Systems and Networks.

The introduction to the project can be found at Teaching Tool - Computer Systems and Networks.

Learning objectives

  • CSN-1.A Explain how computing devices work together in a network.
  • CSN-1.B Explain how the Internet works.
  • CSN-1.C Explain how data are sent through the Internet via packets.
  • CSN-1.D Describe the differences between the Internet and the World Wide Web.
  • CSN-1.E For fault-tolerant systems, like the Internet:
    1. Describe the benefits of fault tolerance.
    2. Explain how a given system is fault-tolerant.
    3. Identify vulnerabilities to failure in a system.
  • CSN-2.A For sequential, parallel, and distributed computing:
    1. Compare problem solutions.
    2. Determine the efficiency of solutions.
  • CSN-2.B Describe benefits and challenges of parallel and distributed computing.
  • CRD-1.C Demonstrate effective interpersonal skills during collaboration.
  • CRD-2.E Develop a program using a development process.

Connection to enduring understanding

By working with a partner to create a static webpage on a Computing Systems and Networks topic, students think critically on how to teach concepts about computing systems and networks topics and demonstrate how computer systems and networks facilitate the transfer of data (CSN-1), and how parallel and distributed computing leverage multiple computers to more quickly solve complex problems or process large data sets. (CSN-2) Additionally, working in groups to create their webpage helps students understand how incorporating multiple perspectives through collaboration improves computing innovations as they are developed. (CRD-1) Finally, when designing their webpages, students incorporate the design thinking process. Students, therefore, learn how developers create and innovate using an iterative design process that is user-focused, that incorporates implementation/feedback cycles, and that leaves ample room for experimentation and risk-tasking. (CRD-2)

Unit 3

Description of project

Students demonstrate their understanding of algorithm implementations by creating a program that includes (1) sequencing, selection, and iteration. Students are tasked with creating a program that seeks user input, uses strings and/or integer variables, and includes visible output. Students can choose whether their program incorporates sprites and projectiles, or calculations.

The introduction to the project can be found at Unit 3 Culminating Project.

Learning objectives

  • AAP-1.A Represent a value with a variable.
  • AAP-1.B Determine the value of a variable as a result of an assignment.
  • AAP-2.A Express an algorithm that uses sequencing without using a programming language.
  • AAP-2.B Represent a step-by-step algorithmic process using sequential code statements.
  • AAP-2.C Evaluate expressions that use arithmetic operators.
  • AAP-2.D Evaluate expressions that manipulate strings.
  • AAP-2.E For relationships between two variables, expressions, or values:β€―
    1. Write expressions using relational operators.
    2. Evaluate expressions that use relational operators.
  • AAP-2.F for relationships between Boolean values:
    1. Write expressions using logical operators.
    2. Evaluate expressions that use logic operators.
  • AAP-2.G Express an algorithm that uses selection without using a programming language.
  • AAP-2.H For selection:
    1. Write conditional statements.
    2. Determine the result of conditional statements.
  • AAP-2.I For nested selection:
    1. Write nested conditional statements.
    2. Determine the result of nested conditional statements.
  • AAP-2.J Express an algorithm that uses iteration without using a programming language.
  • AAP-2.K For iteration:
    1. Write iteration statements.
    2. Determine the result or side effect of iteration statements.
  • AAP-2.M For algorithms:
    1. Create algorithms.
    2. Combine and modify existing algorithms.
  • CRD-2.A Describe the purpose of a computing innovation.
  • CRD-2.B Explain how a program or code segment functions.
  • CRD-2.C Identify input(s) to a program.
  • CRD-2.D Identify output(s) produced by a program.
  • CRD-2.E Develop a program using a development process.
  • CRD-2.F Design a program and its user interface.
  • CRD-2.G Describe the purpose of a code segment or program by writing documentation.
  • CRD-2.I For errors in an algorithm or program:
    1. Identify the error.
    2. Correct the error.
  • CRD-2.J Identify inputs and corresponding expected outputs or behaviors that can be used to check the correctness of an algorithm or program.

Connection to enduring understanding

By creating a program that demonstrates their understanding of algorithm implementations and integrates specific requirements, students practice many of the same skills programmers use when coding. Students learn that to find specific solutions to generalizable problems, programmers represent and organize data in multiple ways. (AAP-1) Additionally, students learn that the way statements are sequenced and combined in a program determines the computed result. Programs incorporate iteration and selection constructs to represent repetition and make decisions to handle varied input values. (AAP-2) Finally, as they work through the design processing creating their project, students learn how developers create and innovate using an iterative design process that is user-focused, that incorporates implementation/ feedback cycles, and that leaves ample room for experimentation and risk-taking. (CRD-2)

Unit 4

Description of project

Students work in groups of three to research and prepare for a debate regarding key topics related to the Impact of Computing unit, including safe computing, legal and ethical concerns, computing bias, and digital divide. Student groups are told on the day of the debate whether they are arguing for or against the topic.

Students are introduced to the project on the first day of Unit 4 on Slide 4 of the PowerPoint. The first day of the project can be found at Debate Preparation, and the topics for the project can be found at Debate Topics.

Learning objectives

  • IOC-1.A Explain how an effect of computing innovation can be both beneficial and harmful.
  • IOC-1.B Explain how a computing innovation can have an impact beyond its intended purpose.
  • IOC-1.C Describe issues that contribute to the digital divide.
  • IOC-1.D Explain how bias exists in computing innovations.
  • IOC-1.E Explain how people participate in problem-solving processes at scale.
  • IOC-1.F Explain how the use of computing can raise legal and ethical concerns.
  • IOC-2.A Describe the risks to privacy from collecting and storing personal data on a computer system.
  • IOC-2.B Explain how computing resources can be protected and can be misused.
  • IOC-2.C Explain how unauthorized access to computing resources is gained.

Connection to enduring understanding

By tasking students with debating key topics related to safe computing, legal and ethical concerns, computing bias, and digital divide, student think critically about the effect of computing innovations and examine how, while computing innovations are typically designed to achieve a specific purpose, they may have unintended consequences (IOC-1) as well as how the use of computing innovations may involve risks to personal safety and identity. (IOC-2)

Unit 5

Description of project

Students demonstrate their understanding of algorithm implementations by creating a program that includes (1) functions and parameters, (2) return values, (3) Boolean statements (selection), (4) logic in loops (iteration), (5) multiplayer interface, (6) scene design using Tile maps, and (7) lists (arrays). Students are tasked with creating a program that seeks user input, includes a visible output, and uses extensions. Students work in small groups to create their program, receiving feedback from others throughout the process.

The introduction to the project can be found at Unit 5 Culminating Project.

Learning objectives

  • AAP-1.A Represent a value with a variable.
  • AAP-1.B Determine the value of a variable as a result of an assignment.
  • AAP-1.C Represent a list or string using a variable.
  • AAP-1.D For data abstraction:
    1. Develop data abstraction using lists to store multiple elements.
    2. Explain how the use of data abstraction manages complexity in program code.
  • AAP-2.B Represent a step-by-step algorithmic process using sequential code statements.
  • AAP-2.D Evaluate expressions that manipulate strings.
  • AAP-2.E For relationships between two variables, expressions, or values:
    1. Write expressions using relational operators.
    2. Evaluate expressions that use relation operators.
  • AAP-2.F For relationships between Boolean values:
    1. Write expressions using logical operators.
    2. Evaluate expressions that use logic operators.
  • AAP-2.H For selection:
    1. Write conditional statements.
    2. Determine the result of conditional statements.
  • AAP-2.I For nested selection:
    1. Write nested conditional statements.
    2. Determine the result of nested conditional statements.
  • AAP-2.K For iteration:
    1. Write iteration statements.
    2. Determine the result or side effect of iteration statements.
  • AAP-2.N For list operations:
    1. Write expressions that use list indexing and list procedures.
    2. Evaluate expressions that use list indexing and list procedures.
  • AAP-2.O For algorithms involving elements of a list:
    1. Write iteration statements to traverse a list.
    2. Determine the result of an algorithm that includes list traversals.
  • AAP-3.A For procedure calls:
    1. Write statements to call procedures.
    2. Determine the result or effect of a procedure call.
  • AAP-3.B Explain how the use of procedural abstraction manages complexity in a program.
  • AAP-3.C Develop procedural abstractions to manage complexity in a program by writing procedures.
  • AAP-3.D Select appropriate libraries or existing code segments to use in creating new programs.
  • AAP-3.E For generating random values:
    1. Write expressions to generate possible values.
    2. Evaluate expressions to determine the possible results.
  • CRD-2.A Describe the purpose of a computing innovation.
  • CRD-2.C Identify input(s) to a program.

Connection to enduring understanding

By creating a program that demonstrates their understanding of algorithm implementations and integrates specific requirements, students practice many of the same skills programmers use when coding. Students learn that to find specific solutions to generalizable problems, programmers represent and organize data in multiple ways. (AAP-1) Additionally, students learn that the way statements are sequenced and combined in a program determines the computed result. Programs incorporate iteration and selection constructs to represent repetition, and make decisions to handle varied input values. (AAP-2) Students also learn how programmers break down problems into smaller and more manageable pieces. By creating procedures and leveraging parameters, programmers generalize processes that can be reused. Procedures allow programmers to draw upon existing code that has already been tested, allowing them to write programs more quickly and with more confidence. (AAP-3) Moreover, working in groups to create their program helps students understand how incorporating multiple perspectives through collaboration improves computing innovations as they are developed. (CRD-1). Finally, as they work through the design processing creating their project, students learn how developers create and innovate using an iterative design process that is user-focused, that incorporates implementation/feedback cycles, and that leaves ample room for experimentation and risk-taking. (CRD-2)

Unit 6

Description of project

Students complete a data research project in Unit 6. Students identify a question they want to research, create a survey to collect data, clean and analyze the data they collect through their survey, and then create a visual representation of the data in an infographic. Students then present their findings to the class.

The introduction to the project can be found at What is Data Science? and specifically on Slide 12 on Unit 6 Day 2's PowerPoint. Students continue work on the project on Day 3 to learn about Data Collection and bias in surveys, on Day 4 to learn about Data Ethics and Survey Creation, and on Day 5 for Testing and Sharing Your Survey. Students then wait for their survey results. When they have collected all of their data, they pick back up with the project and apply what they learned about Data Cleansing and Visualization on Day 6 and then complete their findings by completing an Infographic Project.

Learning objectives

  • DAT-2.A Describe what information can be extracted from data.
  • DAT-2.C Identify the challenges associated with processing data.
  • DAT-2.D Extract information from data using a program.
  • DAT-2.E Explain how programs can be used to gain insight and knowledge from data.
  • IOC-1.F Explain how the use of computing can raise legal and ethical concerns.
  • IOC-2.A Describe the risks of privacy from collecting and storing personal data on a computer system.

Connection to enduring understanding

By conducting a data research project, students learn that programs can be used to process data, which allows users to discover information and create new knowledge. (DAT-2) In their survey design to support their research, students learn about the ethics of collecting data and respecting respondents' privacy. In doing so, students further their understanding that while computing innovations are typically designed to achieve a specific purpose, they may have unintended consequences. (IOC-1)

Unit 7

Description of project

Students complete their Create Performance Task (CPT) in Unit 7.

Learning objectives

Some CRD and all AAP Learning Objectives.

Connection to enduring understanding

The Create Performance Task (CPT) is a culmination of everything students learned in Units 3 and 5 and connect to AAP-1, AAP-2, and AAP-3.

Unit 8

Description of project

Students complete a Mock Exam to prepare for the AP Exam in May.

Learning objectives

All Learning Objectives.

Connection to enduring understanding

The Mock Exam is a formative assessment that prepares students for the AP Exam students take in May.

Unit 9

Description of project

The WE Unit is an optional unit that can be completed at any time after students complete Unit 5 which likely occurs after students have completed the CPT and AP Exam. Students learn about the WE Pillars of Impact and the United Nation's Sustainable Development Goals (SDG). They then investigate one particular Goal in depth and design a programming-based project that addresses a facet of the Goal.

The introduction of the project can be found at SDG and Programming.

Learning objectives

All CRD and AAP Learning Objectives.

Connection to enduring understanding

By designing a program that addresses a facet of one of the Sustainable Development Goals, students practice many of the same skills programmers use when coding. Students learn that to find specific solutions to generalizable problems, programmers represent and organize data in multiple ways. (AAP-1) Additionally, students learn that the way statements are sequenced and combined in a program determines the computed result. Programs incorporate iteration and selection constructs to represent repetition and make decisions to handle varied input values. (AAP-2) Students also learn how programmers break down problems into smaller and more manageable pieces. By creating procedures and leveraging parameters, programmers generalize processes that can be reused. Procedures allow programmers to draw upon existing code that has already been tested, allowing them to write programs more quickly and with more confidence. (AAP-3) Moreover, working in groups to create their program helps students understand how incorporating multiple perspectives through collaboration improves computing innovations as they are developed. (CRD-1). Finally, as they work through the design processing creating their project, students learn how developers create and innovate using an iterative design process that is user-focused, that incorporates implementation/feedback cycles, and that leaves ample room for experimentation and risk-taking. (CRD-2)

πŸ—ΊοΈ Overview β€” Previous
Outline
Next β€” πŸ—ΊοΈ Overview
Websites