Notes from College Board 1.1

Learning Objectives CRD - 1.A Explain how innovations are improved through collaboration. CRD - 1.A.1 A computing innovation includes a program as an integral part of its function. CRD - 1.A.2 A computer innovation can be physica (i.e., self-driving car), non physical computing software (e.g., picture editing software), or a nonphysical computng 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 incudes diverse perspectives helps avoid bias in the development of computing innovations CRD - 1.C Demonstrate effective interpersonal skills during collaboration. CRD - 1.C.1 Effective collaborative teams practice interpersonal skills, including, but not limited to: Communication, Consesus Building, Conflict Resolution, Negotiation

Notes Different people in different departments work on different subjects and interests.

A program always start up with an idea, purpose and plan. A program must have requirements of the that meet the necessary constraints it must meet.

Developers are able to practice better interpersonal skills in a diverse team.

Pair Programming: One programmer types the code, while the other reviews each line of code.

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

This is the beginning of planning for the Create Performance Task assignment. More will be added to this post as weeks go by until it is time to code.

What I know that could help with the project:

How to make a quiz How to create list How to use dictionaries How to explain the code I have made What I need for the project:

Learn how to use different functions Learn how to display variables correctly Look at examples of bad, good, and great Performance Task Projects Look over the college board requirements

Notes from College Board 1.2

Video Notes Computer programs accept input in a variety of different forms (tacile aka touch, audio, visual, text). Programs are mostly event-driven –> events (mouse clicks, screen taps/swipes, physical button clicks, eyboard entries, audio keywords/phrases) are triggered by actions, which sends input to the program. Input affects output of a program. Outputs can be visual, audio,touch/feel(vibrations), text, etc. A program (aka software) is a collection of statements. A statement is a single command, a group of statements is a code segment. To describe a code segment, first state what it does, and then include how it does it.

Learning Objectives CRD - 2.A - Describe the purpose of a computing innovation. 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 abiltiy to develop that essential knowledge on.

Notes Different innovations are contained under different categories of innovations

Program inputs are pecies of data that are sent to computers for processing and interpretation. The computer will then perform operations and manipulate teh data in order to produce a desirable. Inputs can either come from the user themselves, or from another program.

Every event in a program is associated with an action that supplies an input to the program.

Event Driven Programming: Program segments and code fragments are executed based on events that trigger specific control flow structures rather an a smooth, sequential flow.

A program is a collection of software statements that collectively serves a specific use and performs a certain task.

The program works for a variety of inputs and situations. (Think of it like a function)

Notes from College Board 1.3

There are multiple steps within the development process. The following phrases are commonly used when developing a program. Research, Designing, Prototyping, Testing, followed by revisions. Revisions are a key part of this process and will happen several times. This developmental process is iterative and requires refinement and revision based on testing and feedback. This may require revisiting earlier phrases of the process. Investigation is useful in development for understanding and identifying the program constraints, as well as the requirements of the people who will use the program. Investigation can be perfomed by collecting user data, having beta testing, interviews, and direct observations.

Learning Objectives CRD - 2.E - Develop a program using a development process. CRD - 2.F - Design a program and its user interface CRD - 2.E.1 - A development process can be ordered 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.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 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 of a 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

Notes from College Board 1.4

Common Errors: To start, it’s important to note that no one is perfect. Errors are bound to happen but identifying, understanding, and fixing thoses errors is what matters more. There are 4 main types of errors when developing a program; Logic, Syntax, Run-time, and Overflow errors.

Logic errors are errors that are caused due to the programmer making a mistake in the algorithm. This causes the program to behave unexpectedly. A logic error can result in events in the program taking place in times that they are not suppose to happen in.

Syntax errors are very small mistakes made by the programmer that doesn’t match with the language. It could be a typo, unnecessary code, missing necessary code, missing characters or added characters. Characters include colon, semicolon, parenthesis, indentations, quotes, and so much more. These mistakes will cause the program to shut down.

Run-time errors happen when a program stops while it is running. This event is also known as “crashing” and the error is normally referred to as a “bug”. A run-time error can be caused by dividing by zero, wrong inputed data type, or many other errors that are commonly caused by incorrect data.

Over-flow errors occur in a program when it is required to perform a calculation that is not possible for it to run. The values in the calculations are outside the set range of values of the program. This is caused due to memory allocation constraints of the program’s language, resulting in restrictions.

Methods to Correct Errors: IDEs: Syntax errors are the easiest errors to fix because most IDEs display information on where and when there is a syntax error.

Test Cases: Unlike syntax errors, logic errors are more difficult to found because the IDEs doesn’t help you and it would normally look like nothing is wrong. This is when programmers use test cases. Test cases are a set of actions(like inputs) that are used to check if they get the correct result.

Hand Tracing: Another testing strategy is hand tracing. Hand tracing is putting in values of variables in a loop to find out if the outcome is correct. This is most useful with loops and other small code segments that repeat a number of times.

Extra Outputs: Lastly, a programmer could just add extra outputs. This strategy is used so that the programmer could find where the error is in the program. When the error is fixed, the extra output is normally removed.