1.1 Notes

Daily Video 1

Learning Objectives:

  1. Explain how computing innovations are improved through collaboration.
  2. Demonstrate effective interpersonal skills during collaboration

Essential Knowledge:

  • Effective collaboration produces a computing innovation that reflects the difversity of talents and perspectives of those who designed it.
  • Collaboration that includes diverse perspectives helps avoid bias in the development of computing innovations.
  • Effective collaborative teams practice interpersonal skills, including, but not limited to: » Communication » Consensus Building » Conflict Resolution » Negotiation

Takeaway Thoughts:

  • Interpersonal skills learned through collaboration » Communication » Consensus Building » Conflict Resolution » Negotiation

Quote:

"If you want to go fast, go alone. If you want to go far, go together." - African Proverb

Daily Video 2

Essential Knowledge:

  • Consultation and communication with users are important aspects of the development of computing innovations.
  • Information gathered from potential users can be used to understand the purpose of a program from diverse perspectives and to develop a prgram that fully incorporates these perspectives.
  • Online tools support collaboration by allowing programmers to share and provide feedback on ideas and documents.
  • Common models such as pair programming exist to facilitate collaboration.

Why you should leave comments in code:

  • Communcate to your partner(s)
  • Communicate to yourself
  • Acknowledge code segments used from other sources
  • Acknowledge media used from other sources
  • Differentiate what you and your partner(s) did
  • Clarify the functionality of your code

How to collaborate in class with online tools:

  • repl.it - multiplayer
  • GitHub - collaboration and repository
  • Shared document or folder

1.2 Notes

Daily Video 1

Learning Objectives:

  • Describe the purpose of a computing innovations is to solve problems or to pursue interests through creative expression.
  • An understanding of the purpose of a computing innovation provides developers with an improved ability to develop that computing innovation.
Computing Innovations

Categories of Innovations:

  • Applications

    • Games
    • Social Media
    • Business
    • Productivity
  • Physical Devices

    • Computers
    • Smart Phones/Tablets
    • Smart "Things"
    • Wearables
  • Systems

    • E-commerce
    • Cloud services
    • E-mail

Essential Knowledge:

  • The purpose ofcomputing innovations is to solve provlems or to pursue interests through creative expression.
  • An understanding of the purpose of a computing innovation provides developers with an improved ability to develop that computing innovation.

Daily Video 2

Learning Objectives:

  • Identify input(s) to a program.
  • Identify output(s) produced by a program.

Essential Knowledge:

  • 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.
  • An event is associated with an action and supplies input data to a program.
  • Events acn 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.
  • Inputs usually affect the ouput produced by a program.

Identifying Inputs to Programs

Computer Programs accept input in a variety of different forms:

  • tactile (touch)
  • audio
  • visual
  • text (including numerical values)

How do programs recieve input?

Most programs are written in an event driven environment.

  • "Events" are triggered by some action, which usually sends input to the program.

What type of "events" can a user trigger?

  • mouse clicks
  • screen taps/swipes (force touch)
  • physical button clicks
  • keyboard entries
  • audio trigger (key word or phrase)

What does input accomplish in a program?

Input usually affects the output. What are outputs produced by a device?

  • visual
  • audio
  • tactile (touch/feel)
  • text

What sort of output do your devices supply?

  • Smart phone/tablet
  • Laptop computer
  • Gaming Console

How does a program know what to do upon an event?

An action triggers an event:

  • Action may be initiated by the user or another program/device.

The program "jumps" to the code segment according to the event:

  • The code segment is executed.
  • Output is triggered by the code segment (or additional events are triggered).

The program code is not necessarily executed "in order":

  • Code segments are executed as they are called, according to the events triggered.

Daily Video 3

Learning Objectives:

  • Explain how a prgoram or code segment functions.

Essential Knowledge:

  • A program is a collection of program statements that performs a specific task when run by a computer. A program is often referreed to as software.
  • A code segment is a collection of program statements that is part of a program.
  • A program needs to work for a variety of inputs and situations.
  • The behavior of a program is how a program functions during execution and is often described by how a user interacts with it.
  • A program can be described broadly by what it does, or in more detail by both what the program does and how the program statemtsn accomplish this function.

What is a program?

A program is a collection of statements.

  • A statement is a single command.
  • A group of statements is called a code segment.
  • Code segments are executed according to the rules of the programming language.
  • A program is often referred to as software.

How can we describe this code segment?

The description should:

  • Simply state what it does
    • so that someone could use the code segment in a larger program
  • Or include how it does what it does:
    • by explaining in detail how the code segment functions

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.

Collaboration

My team collaborated mostly by helping each other out through slack and exchanging messages. We also created the flask project together and I shared that to my teammates. I think we did really well and I really hope that we get an A you know what I mean. Although we ran into some difficulties as a team, we were able to work out our differences.

What was mostly hard was being a team of 3 girls and 1 guy. I'm sure Dylan suffered a little but we were able to get through this pretty nicely and our team is very nice you know. I couldn't of done this without them and I'm very grateful for them.

Success as a Team

Our successful areas were in:

  • Communication (bare minnimum i guess)
  • Socializing
  • Teamwork
  • Helping each other
  • Finding people to help us
  • Slayyying

Improvements

Things we could improve on are:

  • Communication
  • Talk less, work more
  • Helping each other
  • Slayyying (you can always slay more)
  • Finding more people to help us again (the more the merrier)

Yea, that's it!! GO TEAM!!!