1.1 : Collaboration
Video 1
- colaboration introduces different views and perspectives and prevents the use of bias
- without collaboration many differnt well enjoyed games wouldn't be here today
- communitcation, consensus building, conflict resolution, and negotiation are four most important things
Video 2
- pair share programing is one way to collaborate in computer science, not only will you be collaborating but you will also be able to edit your work and get help for some problems
- think-pair-share is also another way to collaborate in computer science, when you have a problem you can get another's opinon and work through it together
- you can also share your github repository and let others edit your code
1.2 : Program Function and Purpose
Video 1
- applications, physical devices, and systems are three examples
- applications are also called APPs and they are a bunch of games, scoail, buisness, or productivty lots of them are usally downloaded to our devices
- they are software applications that are in our lives
- physical devices are those that you can touch; phones, computers, laptops, ect.
- e-commerce is electronic commerce, things we buy online
Video 2
- in event driven progra, program statements are excluded when triggered, rather than through the sequential flow of contorl
- input can come from a user or other programs
- program outputs are any data sent from a program to a device. Program output can come in a varitey of forms, such as tactile, audio, visual, or text
- program output is usually based on a program's input or prior state
Video 3
- program is a collection of program statments that performs a specific task when run by a computer
- program is often reffered to a software
- code segment is a collection of program statements that is part of program
- program needs to work for a variety of inputs and situations
1.3 : Program Design and Development
Video 1
- developing program using a development process
- design a program and its user interface
- program is developed by testing occuring at the micro and macro level
- devs refine and revise through testing, feedback, and reflection
Video 2
- important to acknowledge any code segments that were developed collaborativly or by another source
- programs are rarely developed by a solo force and is usally made by a team
Video 3
- program documentation is a wirtten segment of how this was made, how it should work, and the event
- comments are a form of program and is read by people it doesn't effect the code!
- programmers should document their code through the making!
- program documention helps developing and mainitaining correct programs when working by yourself or in a teamwork envrioment
- not all programing enviroments support comments!
1.4 : Identifying and Correcting Errors
Video 1
- logic error is a mistake in algorithim or program that cuases it to behave incorrectly
- syntax error is a mistake in the program where rules of programing do not apply (ex: using python in markdown)
- run-time error is a mistake in program during execution
- program languages define their own runtime errors
- overflow error is an error that occurs when a computer attempts to handel a number that is outside of the defined range of value
Video 2
- you can correct errors using; test cases, hand tracing, visualizations, debuggers, adding extra output statment(s)
Video 3
- in development process, testing uses defined inputs to ensure algoritim 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 (minimum and maximum) of input data
- program reqirements are needed to identify appropirate definece inputs for testing
2.1 : Binary Numbers
Video 1
- abstraction is process of reducting complexity by focusing on the main idea
- hiding details irrelevant to the question at hand
- brings together related and useful details, reduces complexity and allows one to focus on the data
- grouped to represent abstractions
- inclue but not limited to, numebrs, characters, and color
Video 2
- integers are represented by a fixed number of bits
- limits the range of integer values and mathmatical operations
- limitation can result in overflow or errors
- other program languages provide abstraction limited only by size of the computer's memory
- fixed numeber of bits used to represent real numbers limits the range and mathmatical operations on these values
- limitation can result in round-off and other errors
- real numbers are represented as approximations in computer storages
Video 3
- number bases including binary and decimal are used to represent data
- binary (base 2) use only combination of the digits zero and one
- decimal (base 10) use only combination of the digits 0-9
2.2 : Data Compression
Video 1
- lossy data compression algorithms can usally reduce the number of bits stored or transmitted more than lossless compression algorithms
- in situations where quality or ability is used to reconstruct the original is max important
- lossless compression algorithims are typically chosen
- when minimizing data size or transmission time is max important
- lossy compression algoristhims are typically chosen
2.3 : Extracting Information from Data
Video 1
- size of data set affects the amount of information that can be extracted from it
- large data sets are difficult to process using a single computer and needs or may need parallel systems
- scalabiltiy of systems is an important consideration when working with data sets
- computationsal capacity of a system affects how the data sets can be porcessed and stored
Video 2
- metadata are data about data
- changes and deletions made to metadata do not change the primary data
- metadata are used for finding, organizing, and managing information
- metadata can increase the effective use of data or data sets by providing additional information
- metadata allow data to be structured and organized
2.4 : Using Programs with Data
Video 1
- programs are used in iterative and interactive way when processing information to allow users to gain insight and knowledge about data
- programmer can use programs to filter and clean digital data, therby gaining insight and knowlege from data
- combining data sources, clustering data, and classifying data are also parts of this process
- insight can also be obtained by translating and transforming digitally represented information
- patterns can emerge when data is transformed using programs
Video 2
-transforming every elements of a data set
- filtering a data set
- combining or comparing data in some way visualizing a data set through a chart, graph, or other visual represention
3.1 : Variables and Assignments
Video 1
Video 2
3.2 : Data Abstraction
Video 1
Video 2
Video 3
3.3 : Mathmatical Expressions
Video 1
Video 2
Video 3
3.4 : Strings
Video 1
3.5 : Boolean Expressions
Video 1
Video 2
Video 3
3.6 : Conditionals
Video 1
Video 2
Video 3
3.7 : Nested Conditionals
Video 1
Video 2
3.8 : Iteration
Video 1
Video 2
Video 3
3.9 : Developing Algorithms
Video 1
Video 2
Video 3
3.10 : Lists
Video 1
Video 2
Video 3
3.11 : Binary Search
Video 1
3.12 : Calling Procedures
Video 1
Video 2
3.13 : Developing Procedures
Video 1
Video 2
3.14 : Libraries
Video 1
3.15 : Random Values
Video 1
Video 2
3.16 : Simulations
Video 1
Video 2
3.17 : Algorithmic Efficiency
Video 1
Video 2
3.18 : Undecidable Problems
Video 1
4.1 : The Internet
Video 1
- a computing device is a physical artifact that can run a program for examples refer to 1.1
- computing system is a group of computing devices and programs working together for a common purpose
- computer network is a group of interconnected computing devices capable of sending or reciving data
- ^ a type of computing system
- path between two computing devices on a computer network is a sequence of directly connected computing devidce that begins at the sender and ends at reciver
- routing is the process of finding a path from sender to reciver
- bandwidth of a computer network is the max amount of data that can be sent in a fixed aount of time
- bandwidth is measured in bits per second
Video 2
- internet is a computer network consisting of interconnected netwokrs thst use standard, open (nonproprietary) communitcation protocols
- acesss to the internet dependes on the ability to connect a computinf device to an internet connected device
- protocol is an agreed-upon set of rules that specify the behavior of a system
- protocols used in the internet are open, allowing users to easily connect additional computing devices to the internet
- routing on the internet is dynamic, if not specified
- scalability of the system is cap for the system to change in size and scale and meet new demands
- internet was designed to be scalable
4.2 : Fault Tolerence
Video 1
- redundancy in a system often requires additional reasources but can provide the benefit of fault tolerence
- redundancy of routing options between two points increases the realiability of the internet
- helps scale to more devices and people
Video 2
- the interent is engineered to be fault-tolerant
- with abstractions for routing and transmitting data
- redundancy is the inclusiion of extra components that can be used to mitigate failure of a system if other components fail
- one way to accomplish network redundancy is by having more than one path between any to connected devices
4.3 : Parallel and Distributed Coding
Video 1
- parallel computing consists of parallele portions and a sequential portion
- solution that use parallel computing can scale more effectivly than solutions that use sequential computing
- distributed computing allows problems to be solved that could not be solved on a single computer
- ^ then the processing time or storage needs to be involved
- distributed computing allows much larger problems to be solved quicker than they could be solved when using a single computer
- when increasing the use of parallel computing in a solution, the efficiency of the solution is still limited by the sequential portion
- ^ meaning at some point adding parallel portions will no longer meaningfully increase effciency
5.1 : Benefical and Harmful Effects
Video 1
- people make computing inventions
- people complete tasks differently to incorporate new computing inventions
- not every computing invention effect is anticipated
- single effect can be view as both beneficial and harmful
- advances in computing have gereated and increased creativity in different fields: medicne, engineering, communications, and arts
Video 2
- responsible programmers try to consider uninteneded ways of their computing innovations
- ^ potential benefical + harmful effects of the new uses
- not possible for a programmer to consider all the ways a computing innovation can be used
- rapid sharing of a program or running a program with a large number of users can result in significant impacts beyond inteneded purpose or control of programer
5.2 : Digital Divide
Video 1
- internet acess varies between socioeco., geographical, and demographic characteristcs
- digital divde refers to differing acess to computing devices and the Internet, based on socioeconomic, geographic, or demographic characteristics
- digital divde can affect both groups and individuals
- digital divide raises issues of equity, acess, and influence, both globally and locally
- digital divde is affected by the actions of individuals, organizations, and governments
5.3 : Computing Bias
Video 1
- computing innovations can reflect existing human biasese becuase of biases written into the algorithms
- biases in data used by the innovation
- programs should take action to reduce bias in algorithms used for computing innovations as a way of combating existing human biases
- biases can be embedded at all levels of software development
5.4 : Crowdsourcing
Video 1
- widespread acesss to information and public data facilitates the identification of problems
- development of solutions and dissemination of results
- science has been affected by using distributed and "citizen science" to solve scientific problems
- citizen science is scientific research conducted in whole or part by distributed individual
- ^many of whom may not be scientists who contribute relevant data to research using their own computing devices
5.5 : Legal and Ethical Concerns
Video 1
- open source are programs that are made to be freely available and may be redistributed and modified
- open acess is online research output free of any and all restriction on acess and free of many restrictions on use
- ^such as copyright or license restrictions
5.6 : Safe Computing
Video 1
Video 2
Video 3