1.1: Daily Video 1

  • A computing innovation includes a program as an integral part of its function
  • A computing innovation can be physical, nonphysical computer software, or nonphysical computing concept
  • Collaboration that includes diverse perspectives helps avoid bias in the development of computing innovations
  • Effective collaboration produces a computing innovation that reflects the diversity of talents and perspectives of those who designed it

Daily Video 1: Takeaways

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

1.1: Daily Video 2

  • Pair Programming
    • Two programmers work together as a pair
    • One programmer is the driver, who writes code, and the other programmer is the observer/pointer/navigator, who reviews each line of code as it is typed in
  • Think-Pair-Share
    • Students first think through a problem by themselves, pair up with a partner to exchange ideas, and then share findings with the class
  • Leave Comments in Code!
    • Communicate 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
    • Online Tools
      • repl.it - multiplayer
      • GitHub - collaboration and repository
      • Shared document or folder
    • Ask friends and family to test drive your prgoram and give you feedback!
    • Check with your teacher for your coding platform

Daily Video 2: Takeaways

  • 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 program 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

Personal Takeways

Watching these videos definitely opened my mind to how crucial collaboration is, especially in a field like computer science. I hope that from now on, my team and I will be able to communicate with each other and help each other no matter the circumstances.

1.2: Daily Video 1

Computing Innovations

Innovations can include, but are not limited to:

  • Applications
    • Games
    • Social Media
    • Business
    • Productivity
  • Physical Devices
    • Computers
    • Smart Phones/tablets
    • Smart “Things”
    • Wearables
  • Systems
    • E-commerce
    • Cloud services
    • E-mail

Innovations Created for a Purpose

Guiding Questions:

  1. Why does the computing innovation exist?
  2. What problem(s) does the computing innovation solve?
  3. What does the computing innovation allow us to do that we could not do before?

Examples of Computing Innovations

  • Social Media Applications
    • Allows users to connect from a distance and archive their activites
  • E-commerce
    • Allows users to save time and money by being able to shop from home
  • Digital Assistant Device
    • Allows users to control their devices hands-free making them safer while driving or more convenient when trying to multitask

Daily Video 1: Takeaways

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

1.2: Daily Video 2

Identifying Inputs to Programs

Computer Programs accept input in a variety of different forms:

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

Examples:

  • Smart phone/tablet (texting, entering password, etc.)
  • Laptop computer (keyboard, mouse, etc.)
  • Gaming console (send input through buttons)

How do programs receive input?

Most programs are written in an event driven environment.

  • “Events” are triggered by some action, which usually sends input to the program

Types of events a user can trigger:

  • mouse clicks
  • screen taps/swipes (force touch)

What does input accomplish in a program?

Input usually affects the output. Outputs produced by a device can include:

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

Example of output that devices supply:

  • Smart phone/tablet (things that appear on screen based on what you have pressed/swiped)
  • Laptop computer (displays texts after using keyboard)
  • Gaming console (remote vibrations)

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

An action triggers an event:

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

The program “jumps” to the code segment according to the event:

  • The code segment is ran
  • Output is triggered by the code segment/additional events that are triggered

The program does not necessarily execute “in order”:

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

Daily Video 2: Takeaways

  • 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 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
  • Inputs USUALLY affect the output produced by a program
  • Program output is usually based on a program’s input or prior state

1.2: Daily Video 3

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
  • A program is often referred to as “software”
  • Code segments are executed by rules of the coding language

What does the program shown in the video do? - written to find the minimum value in a list

  • The code segment should work for a variety of different lists, such as numbers that are out of order, negative numbers, large numbers, and decimals

Description

  • Simply state what the segment does
    • this way, someone else can use the segment in a larger program
  • Include how it does what it does
    • this way, someone could expand upon the code segment

Daily Video 3: Takeaways

  • A program is a collection of program statements that performs a task when run by a computer
  • 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

Personal Takeways

After watching all three videos, I feel that I truly understand why knowing the purpose and function of a program is essential. Knowing exactly what your program is intended to do could allow someone who is reading it to use it in a larger program or even expand upon it. Overall, having knowledge about this big idea will definitely be helpful and I will apply this idea to anything that I do in this class.

1.3: Daily Video 1

How is a program developed?

It all starts with an idea.

  • Programs are developed with a specific purpose in mind
  • Developers follow specific steps and stick to their plan
  • At times, the development is more exploratory than anything, and the steps are dictated by what happens (both good and bad)

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?
    • surveys
    • user testing
    • interviews
    • direct observations

After initial investigation and reflection…

  • Developers design the program by
    • brainstorming (draw on investigation)
    • 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 program specifications outline all of the requirements
  • Developers create a prototype of the program (or components):
    • a gradual process is frequently used so that 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 1 Personal Takeaways

After watching the first daily video of 1.3, I now realize that if I want to have my idea for the final project behave like it is supposed to that numerous trials of the program will have to be run. This way, we can all see what parts of the program should be kept as is and which parts need to be modified to ensure optimal user experience.

1.3: Daily Video 2

How is a program developed?

Program development is seldom a solo endeavor

  • Typically, programs are developed by teams of people
  • Individuals/teams work on different functional components
  • Each member of the project deserves to receive credit for their work
  • Their names must be 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/error in a program, they need to be able to determine who can/should fix the problem
  • This may be most useful after a program is completed, and users find additional bugs

Many times developers use code segments, procedures, algorithms, 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
  • Similar to quoting someone in a research paper or article
  • Any code segments, procedures, or algorithms are considered intellectual property of the author
  • The program documentation should include the author’s name and the source of any code segments being used
  • This portion of the documentation may resemble a bibliography or a works cited pages in a research paper

Daily Video 2 Personal Takeways

I now know that any time I use code segments or algorithms, whether they are from my teammates or outside sources, I should always in some way give credit to the original author of that part of the program. This is because any code segments, procedures, or algorithms are considered intellectual property of the author.

1.3: Daily Video 3

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 specifications
  • During: to keep track of proceess
  • After: to explain the overall process Documentation throughout 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 prgoram
  • This text does not affect the program
  • Comments are for programmers to read
  • This is a form of documentation and can be very usefil when programmers collaborate or work individually

Daily Video 3 Personal Takeways

After watching this video, I now understand why it is important to include comments in code, as it allows one to understand what something does and how it was developed.

Collaberation Quiz (MCQ):

Program Function and Development Quiz (MCQ):

Program Design and Development Quiz (MCQ):

Questions:

  • What better techniques could be used to gain more collaberation in a group?
  • How are the Psuedo code questions on the MCQ implementing techniques we’ve learned?