1.1 Collaboration Notes

Daily Video 1

  • Innovations are improved through collaboration in CSP
  • A computing innovation includes a program as an integral part of its function
  • Effective collaboration skills: Communication, consensus building, conflict resolution, negotiation
  • Computing innovation: reflects the diversity of talents and unique perspectives of all the programers who worked to create it
  • Collaboration on projects can reduce bias since there are various perspectives Video Quiz:

    Daily Video 2

  • How computing innovations are developed by groups of people
  • Consultation and communication between peers is important
  • Information contributed from all the group members can help understand the purpose of the program and create one that incorporates all the perspectives
  • Online tools can help collaboration such as pair programming
  • Pair programming: work together in pairs- the driver writes the code, the navigator reviews it
  • Think pair share: students work through a problem alone then pair with a partner then share with class
  • It is important to give credit

1.2 Program Function and Purpose Notes

Daily Video 1

  • It is important to know and be able to describe the purpose of a computing innovation
  • The purpose could be to solve problems, pursue interests through creative expression, etc.
  • Truly understanding the purpose of a program helps the developer(s) develop the program better

    Daily Video 2

  • Identify inputs/outputs to a program
  • Program inputs are data sent to a computer for processing by a program. Some forms can be: tactile, audio, visual, text
  • An event is associated with an action and supplies input data to a program
  • Events can be generated when a key is pressed, a mouse clicked, etc. Can be any defined action that affects the flow of execution
  • Inputs generally affect the output of a program
  • In a program, the code is made in a way that after an action, the code “jumps” to the code segment according to the event
  • Program’s output is based off input or prior state

    Daily Video 3

  • A program (software) is a collection of program statements the performs a specific task when run by a computer.
  • A code segment is a collection of program statements that is a part of a program
  • Software needs to work for a variety of inputs
  • The behavior is how the program functions during execution and if often described by how a user can interact with it.
  • Can be described broadly by what it does or in detail on how the program accomplishes its function
  • A program is a collection of statements: A statement is a single command, a group of statements is a code segment, code segments are executed -> a program/software

1.3 Program Design and Development Notes

Daily Video 1

  • Use a development process to develop a program
  • Design a program and its user interface
  • A development process can be ordered and intentional or exploratory in nature
  • Common phases when developing a program: investigating and reflecting, designing, prototyping, testing
  • Requires refinement and revision based on feedback, testing, and reflection: may require revisiting phases
  • Break the project into smaller pieces and make sure each piece works before adding it to the whole
  • Investigate to determine requirements, constraints, concerns and interests of customer
  • Investigate by: collecting data through surveys, user testing, interviews, direct observations
  • Requirements describe how a program functions and may include a description of user interactions that a program should provide
  • Design phase that outlines how to accomplish a program’s goal may include: brainstorming, planning/story boarding, organizing the program into modules and functional components, creation of diagrams, develop testing strategy
  • Constantly test your program

    Daily Video 2

  • When developing a program, it is important to cite and acknowledge code segments used from either another source or developed collaboratively
  • When acknowledging someone else, include the origin of code or authors name in the program documentation
  • Team of people usually work on a program by each focusing on different functional components
  • Each member’s work should be credited in program documentation Sometimes credit is given with comments in the code
  • Many developers use code segments, procedures, algorithms made by others who aren’t part of the project so it is important to credit them

    Daily Video 3

  • Describe the purpose of a code segment or program by writing documentation
  • Program documentation: a written description of the function of a code segment, event, procedure, or program and how it was developed EX: comments (don’t effect how the program runs)
  • Should actively document throughout development to help development as well as maintaining correct programs
  • Program documentation created to: describe the program, list specifications, describe different parts of the program, list of contributors
  • Document process: beginning: list specifications, during: keep track of progress, after: explain overall process
  • Documentation improves: programming process efficiency, ability to test and refine program, responding to bugs

1.4 Copy of Identifying and Correcting Errors Notes

Daily Video 1

  • identify an error
  • a logic error is a mistake in the algorithm or program that causes it to behave incorrectly or unexpectedly
  • a syntax error is a mistake in the program where the rules of the programming language are not followed
  • a run time error is a mistake in the program that occurs during the execution of the program. Programming language define their own runtime errors
  • A overflow error is an error that occurs when a computer attempts to handle a number that is outside of the defined range of values

    Daily Video 2

  • correct the error
  • The following are effective ways to find and correct errors
    • tests cases
    • hand tracing
    • visualizations
    • debuggers
    • adding extra output statements

      Daily Video 3

  • Identify inputs and corresponding expected outputs or behaviors that can be used to check the correctness of an algorithm or program
  • 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
  • Defined inputs used to test a program should demonstrate the different expected outcomes that are at or just beyond the extremes of input data
  • Program requirements are needed to identify appropriate defined inputs for testing