Big Idea 1: Creative Development

AP Exam Weighting 10-13%

1.1: Collaboration

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.

Essential Knowledge

CRD-1.A.1 A computing innovation includes a program as an integral part of its function.

CRD-1.A.2 A computing innovation can be physical (e.g>, self-driving car), nonphysical computing software (e.g., picture editing software), or a nonphysical computing concept (e.g., e-commerce).

CRD-1.A.3 Effective collaboration produces a computing innovation that reflects the diversity of talents and perspectives of those who designed it.

CRD-1.A.4 Collaboration that includes diverse perspectives helps avoid bias in the development of computing innovations.

CRD-1.A.5 Consultation and communication with users are important aspects of the development of computing innovations.

CRD-1.A.6 Information gathered from potential users can be used to understand the purpose of a program from diverse perspectives and to develop a program that fully incorporates these perspectives

CRD-1.B.1 Online tools support collaboration by allowing programmers to share and provide feedback on ideas and documents

CRD-1.B.2 Common models such as pair programming exist to facilitate collaboration

CRD-1.C.1 Effective collaborative teams practice interpersonal skills include but not limited to:

  • communication
  • consensus building
  • conflict resolution
  • negotiation

Addition Notes

Pair Programming: Two programmers work together as a pair. One writes the program code while the other reviews each line of program code

Think-Pair-Share: Students think through a problem alone, pair with a partner to share ideas, and then share results with the class

1.2: Program Function and Purpose

Learning Objectives

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.

Essential knowledge

CRD-2.A.1 The purpose of computing innovations is to solve problems or to pursue interests through creative expression.

CRD-2.A.2 An understanding of the purpose of a computing innovation provides developers with an improved ability to develop that computing innovation;

CRD-2.B.1 A program is a collection of program statements that performs a specific task when run by a computer. A program is often referred to as software.

CRD-2.B.2 A code segment is a collection of program statements that is part of a program.

CRD-2.B.3 A program needs to work for a variety of inputs and situations.

CRD-2.B.4 The behavior of a program is how a program functions during execution and is often described by how a user interacts with it.

CRD-2.B.5 A program can be described broadly by what it does, or in more detail by both what the program does and how the program statements accomplish this function

CRD-2.C.1 Program inputs are data sent to a computer for processing by a program. Input can come in a variety of forms. such as tactile, audio, visual, or text.

CRD-2.C.2 An event is associated with an action and supplies input data to a program.

CRD-2.C.3 Events can be generated when a key is pressed, a mouse is clicked, a program is started, or any other defined action occurs that affects the flow of execution.

CRD-2.C.4 Inputs usually affect the output produced by a program.

CRD-2.C.5 In event-driven programming, program statements are executed when triggered rather than through teh sequential flow of control.

CRD-2.C.6 Input can come from a user or other programs.

CRD-2.D.1 Program outputs are any data sent from a program to a device.

CRD-2.D.2 Program output is usually based on a program’s input or prior state (e.g., internal values).

1.3: Program Design and Development

Learning Objectives

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.H Acknowledge code segments use from other sources.

Essential Knowledge

CRD-2.E.1 A development process can be order and intentional, or exploratory in nature.

CRD-2.E.2 There are multiple development processes. The following phases are commonly used when developing a program:

  • investigating and reflecting
  • designing
  • prototyping
  • testing

CRD-2.E.3 A development process that is iterative requires refinement and revision based on feedback, testing, or reflection throughout the process. This may require revisiting earlier phases of the process.

CRD-2.E.4 A development process that is incremental is one that breaks the problem into smaller pieces and makes sure each piece works before adding it to the whole.

CRD-2.F.1 The design of a program incorporates investigation to determine its requirements

CRD-2.F.2 Investigation in a development process is useful for understanding and identifying the program constraints, as well as the concerns and interests of the people who will use the program.

CRD-2.F.3 Some ways investigation can be performed are as follows:

  • collecting data through surveys
  • user testing
  • interviews
  • direct observations

CRD-2.F.4 Program requirements describe how a program functions and may include a description of user interactions that a program must provide.

CRD-2.F.5 A program’s specification defines the requirements for the program.

CRD-2.F.6 In a development process, the design phase outlines how to accomplish a given program specification.

CRD-2.F.7 The design phase ofa program may include:

  • brainstorming
  • planning and storyboarding
  • organizing the program into modules and functional components
  • creation of diagrams that represent the layouts of the user interface
  • development of a testing strategy for the program

CRD-2.G.1 Program documentation is a written description of the function of a code segment, event, procedure, or program and how it was developed.

CRD-2.G.2 Comments are a form of program documentation written into the program to be read by people and do not affect how a program runs.

CRD-2.G.3 Programmers should document a program throughout its development.

CRD-2.G.4 Program documentation helps in developing and maintaining correct programs when working individually or in collaborative programming environments.

CRD-2.G.5 Not all programming environments support comments, so other methods of documentation may be required.

CRD-2.H.1 It is important to acknowledge any code segments that were developed collaboratively or by another source

CRD-2.H.2 Acknowledgement of a code segment(s) written by someone else and used in a program can be in the program documentation. The acknowledgement should include the origin or original author’s name.

1.4: Identifying and Correcting Errors

Learning Objectives

CRD-2.I For errors in an algorithm or program:

  • Identify the error.
  • 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.

Essential Knowledge

CRD-2.I.1 A logic error is a mistake in the algorithm or program that causes it to behave incorrectly or unexpectedly.

CRD-2.I.2 A syntax error is a mistake in the program where the rules of programming language are not followed.

CRD-2.I.3 A run-time error is a mistake in the program that occurs during the execution of a program. Programming languages define their own run-time errors

CRD-2.I.4 An overflow error is an error that occurs when a computer attempts to handle a number that is outside of the defined range of values.

CRD-2.I.5 The following are effective ways to find and correct errors:

  • test cases
  • hand tracing
  • visualizations
  • debuggers
  • adding extra output statement(s)

CRD-2.J.1 In the development process, testing uses defined inputs to ensure that an algorithm or program is producing the expected outcomes. Programmers use the results from testing to revise their algorithms or programs.

CRD-2.J.2 Defined inputs used to test a program should demonstrate the different expected outcomes that are at or just beyond the extremes (minimum and maximum) of input data.

CRD-2.J.3 Program requirements are needed to identify appropriate defined inputs for testing.

Big Idea 4: Computing Systems and Networks

AP Exam Weighting 11-15%

4.1: The Internet

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

Essential Knowledge

CSN-1.A.1 A computing device is a physical artifact that can run a program. Some examples include computers, tablets, servers, routers, and smart sensors.

CSN-1.A.2 A computing system is a group of computing devices and programs working together for a common purpose.

CSN-1.A.3 A computer network is a group of interconnected computing devices capable of sending or receiving data.

CSN-1.A.4 A computer network is a type of computing system.

CSN-1.A.5 A path between two computing devices on a computer network (a sender and a receiver) is a sequence of directly connected computing devices that begins at the sender and ends at the receiver.

CSN-1.A.6 Routing is the process of finding a path from sender to receiver.

CSN-1.A.7 The bandwidth of a computer network is the maximum amount of data that can be sent in a fixed amount of time.

CSN-1.A.8 Bandwidth is usually measured in bits per second.

CSN-1.B.1 The Internet is a computer network consisting of interconnected networks that use standardized, open (nonproprietary) communication protocols.

CSN-1.B.2 Access to the Internet depends on the ability to connect a computing device to an Internet-connected device.

CSN-1.B.3 A protocol is an agreed-upon set of rules that specify the behavior of a system.

CSN-1.B.4 The protocols used in the Internet are open, which allows users to easily connect additional computing devices to the Internet.

CSN-1.B.5 Routing on the Internet is usually dynamic; it is not specified in advance.

CSN-1.B.6 The scalability of a system is the capacity for the system to change in size and scale to meet new demands.

CSN-1.B.7 The Internet was designed to be scalable.

CSN-1.C.1 Information is passed through the Internet as a data stream. Data streams contain chunks of data, which are encapsulated in packets.

CSN-1.C.2 Packets contain a chunk of data and metadata used for routing the packet between the origin and the destination on the Internet, as well as for data reassembly.

CSN-1.C.3 Packets may arrive at the destination in order, out of order, or not at all.

CSN-1.C.4 IP, TCP, and UDP are common protocols used on the Internet.

CSN-1.D.1 The World Wide Web is a system of linked pages, programs, and files.

CSN-1.D.2 HTTP is a protocol used by the World Wide Web.

CSN-1.D.3 The World Wide Web uses the Internet

Quiz/Test Results Updated 11/9/22

Quiz Results 10/13/22

Problems that I thought were challenging

I just found this question to be hard to read and analyze. I need to review collegeboard psuedo code.

After thinking about and review on why I got this answer wrong, I realized that the packets are given specific flags so that the device doesn’t need a specific order for the packets to be sent, rather the packets can be reassembled in any configuration due to the flags given to the packets, which tell the device on how to order the packets.

Tri 1 Final Test 11/9/22

Score: 45/50

Problems I got incorrect:

Q8: Documentation for procedure with lists

I forgot that the square brackets referred to the indices of the list, which led to me debating between b and d, which I ended up choosing b.

Q19: Adding numbers in 4-bit representation

4-bit binary sequences can only hold up to 16 different values, the decimal values can only be up to 16, and since 29 is greater than 16, you won’t be able to represent it in 4-bit binary sequences.

Q41: Value of r after sequence of assignments

I got slightly confused with the amount of data that I was given, which led me to assigning the wrong values to the variables. the value of q was 20, then q was assigned to p, so the value of p was 20. Then p was assigned to r, so the value of r was 20.

Q43: Value of x after REPEAT UNTIL block

I accidentally thought that the iteration would stop when result > 5.

Q44: Value of y in x MOD y

I was unsure was MOD did. After researching a little into it, I learned that MOD stood for Modulus, which shows the remainder after number is divided by another. In this situation, it is x being divided by y and any remainder would be the value of z.

Things I had to research to gain more information

  • What are 4-bit binary sequences? How do you count them?
  • What is Boolean?
  • What is MOD?