Goals:

Explain how computing innovations are improved through collaboration. Demonstrate effective interpersonal skills during collaboration. Explain how computing innovations are improved through collaboration. Explain hoe computing innovations are developed by groups of people.

Collaboration Importance

Collaboration is essential in everyday life Facebook (very successful tech company) says “Effective collaboration produces a computing innovation that reflects the diversity of talents and perspectives of those who designed it.”

To create the new and improved Super Mario Brothers, 2 partners listened to each other and used eachother’s ideas to create an even better version interpersonal skills learned through collaboration: communication, consensus building, conflict resolution, negotiation

How to Collborate in APCSP

Pair programming (2 programmers): “the driver” writes program code while “the observer/pointer/navigator” reviews each line of program code as it is typed in Think-Pair-Share: students think through a problem alone, pair with a partner to share ideas, then share results with the class Leave comments in your code: communicate to your partner(s), communicate to yourself, acknowleedge code segments/media from other sources, differentiate what you and partner(s) did, clarify the functionality of your code Online tools repl.it (can work together) GitHub (collaboration and repository) Shared document or folder ask friends and family to test drive your program and give you feedback Quiz Results

1.3 Notes

Daily Video 1

Learning Objectives:

  • Develop a program using a development process.
  • Design a program and its user interface. #### Essential Knowledge
  • A development process can be ordered and intentional or exploratory in nature.
  • There ar emultiple development processes. The following phases are commonly used when developing a program:
    • investigation and reglecting
    • designing
    • prototyping
    • testing
  • 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.
  • A development process that is incrememntal is one that breaks the problem in to smaller pieces and makes sure each piece works before adding it to the whole.
  • The design of a program incoroporates investigation to determine its requirements.
  • Investigation in a development process is useful for understanding and identifying the program constraits, as well as the concerns and interests of the people hwo will use the program.
  • Some ways investigation can be [erformed are as follows:
    • collecting data through surveys
    • user testing
    • interviews
    • direct observations
  • Program requirements describe how a program functions and may include a description of user interactions that a program must provide.
  • A program's specification defines the requirements for the program.
  • In a development process, the dsign phase outlines how to accomplish a given program specification.
  • The design phase of a program may include:
    • brainstorming
    • planning and storyboarding
    • organizing the program into modules and funtional components
    • creation of diagrams that represent the layouts of the user interface
    • development of a testing strategy for the program #### How is a program developed? It starts with an idea.
  • Programs are developed with a specific purpose in mind.
  • Developers follow specific steps and stick to their plan.
  • Sometimes the development is more exploratory tahn anything, and the steps are dictated by what happens (both good and bad).
    • Think about early AI projects, like personal assistants. #### How is a program developed? Developers start investigating the problem/purpose and reflect.
  • Investigation is an important step in the process.
  • Developers must:
    • determine the requirements of the program
    • understand the constraints
    • understand the user concerns and interests
  • How do developers investigate?
    • surverys
    • user testing
    • interviews
    • direct observations After initial investigation and reflection,
  • Developers design the program by
    • brainstorming (draw on ingestigation)
    • storyboarding the program
    • planning user experience
    • laying out the user interface
    • organizing into modules
    • develop a testing strategy
  • Developers decide on the program requirements that
    • describe how a program should behave
    • include a list of user interactions
  • The programs specifications outline all of the requirements.
  • Developers create a prototype of the program (or components):
    • an incremental process is frequently used so developers can refine small parts (modules) of the program Testing, testing, and more testing!
  • Developers test the program every step of the way.
  • Testing occurs at the
    • micro level
    • macro level
  • Developers refine and revise through testing, feedback, and reflection. ## Daily Video 2 #### Learning Objectives
  • Acknowledge code segments used from other sources. #### Essential Knowledge
  • It is important to acknowledge any code segments that were developed collaboratively or by another source.
  • 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. #### How is aprogram developed? Program development is rarely a solo endeavor.
  • Programs are usually developed by teams of peoplle.
  • Individuals/teams work on different functional components.
  • Each member of the project deserves to receive credit for their work.
  • Their names must e written in the documentation of the program indicating their contributions to the project. While documentation is an important place to give credit:
  • Many projects use comments within the programming language to give credit.
  • This is an important part of the development of the program.
  • When developers find a bug (or an error in a program), they need to be able to determine who can/should fix the problem.
  • This may be most useful after program is completed, and users find additional bugs. Many times developers use code segments, procedures, alogrithms, and and more that are written by others.
  • These other individuals are not necessarily a part of the project, but they still deserve to be credited.
  • This is similar to quoting someone in a research paper or article.
  • Any code segments, procedures, algorithms are considered intellectual property of the author.
  • The program documentation should influde the author's name and the source of any code segments being used.
  • This portion of the documentaion may resemble a bibliography or a works cited page in a research paper. ## Daily Video 3 #### Lesson Objectives
  • Describe the purpose of a code segment or program by writing documentation. #### Essential Knowledge
  • Program documentation is a written description of the function of a code segment, event, procedure, or program, and how it was developed.
  • Comments are a form of program documentation written into the program to be read by people, and do not affect how a program runs.
  • Programmers should document a program throughout its development.
  • Program documentation helps in developing and maintaininig correct programs when working individually or in collaborative programming environments.
  • Not all programming environments support comments, so other methods of documentation may be rquired. #### How is a program developed? Programmers create something called program documentation in order to:
  • describe the overall program
  • list program specifications
  • describe:
    • functions/procedures/methods within the code
    • specific code segments
    • list of events and corresponding outputs
    • the development of the program
    • how other programs may interact with the program
  • list of contributors/authors of the program #### When does documentation happen? Documentation happens throughout the development of the program:
  • At the beginning: list of specifications
  • During: to keep track of process
  • After: to explain the overall process Documentation throught can improve:
  • efficiency of overall programming process
  • programmers' ability to test and refine the program
  • programmers' response to bugs #### How do programmers document while programming? Most programming languages offer a commenting feature, although some do not.
  • Commenting allows programmers to write text within the program.
  • This text does not affect the program.
  • Comments are for programmers to read.
  • This is a form of ocumentation and can be very useful when programmers collaborate or work individually.