AP Computer Science Principles Flashcards
Big Idea 1: Creative Development (13%)
- Programming is collaborative and creative, bringing ideas to life through software development.
- A computing innovation uses a computer program to:
- Take in data.
- Transform data.
- Output data.
- Collaboration can occur during planning, testing, or designing.
- Benefits of collaboration:
- Exchange ideas and discuss solutions.
- Multiple perspectives lead to software improvements.
- Addresses misunderstandings and clarifies misconceptions.
- Develops thinking skills.
- Increases student responsibility.
- Eliminates bias.
- Pair programming: Two programmers develop software side-by-side on the same algorithm at one computer.
- User Interface: Inputs and outputs that allow user interaction with software.
- Meaningful names are important for UI elements.
- Camel case: A naming convention (e.g.,
stopButton). - Program Documentation: Important for understanding how the program works and fostering collaboration.
- Input: Data sent to a computer for processing.
- Output: Data sent from a program to a device.
- Program: A collection of instructions that a computing device executes.
- Code Segments: Smaller collections of statements within a program.
- Program Event: An action or occurrence within a program (e.g., button click, mouse movement, keyboard input) that triggers specific actions.
- Event-Driven Program: A program that responds to events.
- Sequential Program: Instructions happen in order.
- Development Processes:
- Iterative: Programmers develop working prototypes and revisit development stages.
- Incremental: Programmers break a program into smaller, working pieces.
- Description of Program Functionality: Explains how something in the program works.
- Library: A collection of functions used in different programs.
- Includes how each function works.
- A complete list of parameters.
- What (if anything) is returned.
- Known as Application Program Interface (API).
- Errors:
- Syntax Errors: Violations of the programming language's spelling or punctuation rules, can cause the program to crash. Forgetting to close parentheses or misspellings.
- Example:
a <— expression display (A) - Benefits: Crucial for understanding how every part of program works + fosters collaboration.
- Example:
- Logic Errors: Mistakes in a program's logic that cause unexpected behavior.
- Example:
a <— 95 IF (a > 90) DISPLAY("You got an A.") IF (a > 80) DISPLAY("You got a B.") IF (a > 70) DISPLAY("You got a C.")
This program prints multiple grades because 95 is greater than 70, 80, and 90.
- Example:
- Run-Time Errors: Errors that occur while the program is running (e.g., division by zero).
- Example: Display (5/0).
- Overflow Errors: Occur when a number is outside the defined range of values.
- Example:
x <— 2000*365 Display (x)
- Example:
- Syntax Errors: Violations of the programming language's spelling or punctuation rules, can cause the program to crash. Forgetting to close parentheses or misspellings.
- Debugging: The process of finding and fixing errors.
Big Idea 2: Data (22%)
- Data: A collection of facts.
- Number Base: The number of digits or digit combos a system uses to represent values.
- Decimal System (Base 10): Uses combinations of 0-9 to represent values (e.g., 5,729).
- Binary System: Uses combinations of 0 and 1.
- Represents numbers through combinations of powers of 2.
- Example: The binary representation
101can represents the number 5. (4 + 1).
- Example: The binary representation
- Represents numbers through combinations of powers of 2.
- Bits: Binary digits (0 or 1), the smallest unit of information.
- Byte: 8 bits.
- Has 256 unique combinations.
- Analog Data: Data measured continuously that changes smoothly (e.g., volume of music, position of a runner).
- Digital Data: Represented using discrete values (e.g., time on a digital clock).
- Sampling: Recording an analog signal at regular discrete moments and converting them or digital signals (can be stored on digital media).
- Data Abstraction: Filtering out specific details to focus on the information needed to process the data and simplifies data by representing it in a general way.
- Digital data leaves out details to approximate real-world analog data.
- Examples: True/False, On/Off, Black = 1 and White = 0, Color representation [255,255,255] or [1111111,1111111,111111] (3 bytes each).
- Digital data must be formatted in a finite set of possible values while analog data can be finite.
- Example: YouTube video length (digital) vs. live game (analog).
- Calculations:
- Largest Value: 2^n - 1, where n is the number of bits.
- Example: Largest value with 7 bits: 2^7 - 1 = 127.
- Largest Amount of Numerical Values: 2^n, where n is the number of bits.
- Example: 8 bits: 2^8 = 256 (counting from 0-255).
- Largest Value: 2^n - 1, where n is the number of bits.
- Data Compression: Reduces file size.
- File types like MP3, MP4, and JPG use data compression.
Lossless Data Compression
Data compression: set of steps of packing data into a smaller space while allowing for the original data to be seen. Two way process - make a data package smaller or decompress packet to original form
Useful in computing to save disk space or to reduce bandwidth
Deals with a string of bytes and compressing it down to a smaller set of bytes, taking less bandwidth
Condense large files by getting rid of data that isn’t needed while retaining the information in the file
Contain large amounts of redundancy to get a compact representation of the data
Two-step process:
- Encoding algorithm: Compresses the data.
- Decoding algorithm: Reconstructs the original data.
Depends on:
- Redundancy.
- Compression method.
Run Length Encoding: Replaces repeating data with a count and value.
- Example:
FFFFFIIIIIIVVVVVVVEEEEbecomes5F6I7V4E. - Allows reduction without sacrificing original data.
- Used mainly for text.
- Inverting pixel colors and brightness values.
- Can reconstruct the original message exactly from the compressed message
- Example:
Lossy Data Compression
*Correlation DOES NOT CAUSE: Correlations refer to the statistical relationship between two or more variables. It measures how closely these variables are related to each other, ranging from -1 (perfect negative correlation) to 1 (perfect positive correlation
Metadata is data about data; it DOES NOT affect the underlying data.
Changes and deletions made to metadata do not change the primary data
Packs data in such a way that the compressed package can be decompressed and the data can be pulled out the same way it was given.
Very important ^^ for programs that if a small change happens it can make it unusable.
Sacrifices some data for greater compression.
Conversion to grayscale, lower resolution.
Used mainly for images and sound.
High compression degrees result in smaller files.
Loss of noise/quantity.
Amount of compression ⬆️, size of resulting file ⬇️
Fewer bits does not necessarily mean less information
The amount of size reduction from compression depends on both the amount of redundancy in the original data representation and the compression algorithm applied.Extracting Information from Data:
- Large data sets: big data.
Data Cleaning: Creates a uniform dataset.
Data Mining: Examining large datasets to find useful information, patterns.
Data Set Challenges:
- Need to clean data.
- Incomplete data.
- Invalid data.
- Need to combine data sources.
Large datasets are difficult to process using a single computer and may require parallel systems.
Bias in data collection is NOT eliminated by collecting more data.
Spreadsheets: Help organize and find trends.
Charts: combining or comparing data in some way, such as adding up a list of numbers, or finding the student who has the highest GPA.
Data Transformation Examples:
Modifying Every Element of a Data Set:
- Arithmetic example: Multiplying each number by some constant value (Like if you wanted to convert a list of measurements from liters to millilitres.)
- Non-arithmetic example: Adding a grade level or class rank to a list of student records.
Filtering a Data Set by Category
- Besides time or value, data sets can also be filtered by quality, such as which extracurricular activities a group of students are in.
Combining or Comparing Data
- Comparing the average SAT score of students going to all the colleges in one state and combining that data with average scores from other states.
Creating Data Visualization Tools
- Graphs, charts, and word-bubbles
Bar-Chart
- a chart or graph that presents categorical data with rectangular bars with heights or lengths proportional to the values that they represents
- Use vertical or horizontal bars to represent the values.
Scatter Plots
- uses dots to represent values for two different numeric variables
- Use correlation to compare the relationship between two variables. (Pearson r)
- Causation ≠ Correlation
- Strong = 1 Weak = 0 Negative/Positive . Strong positive correlation
Line Graphs
- Use lines to represent the values
Histogram/Bar Graph
- Uses bars to represent values
- Usually use frequency and ranges
Big Idea 3: Algorithms and Programming (35%)
Variable: A placeholder in your program for a value.
Global Variable:
- create variables once
- They should be on top of the code
- They should be outside an on event and a function
- Each variable can only hold one data value at a time. It can be reassigned.
- can be used anywhere
- Variable is used outside of an event
- Example:
varclicks = 0 Onevent (‘button’, ‘click’) clicks = clicks +1
NEVER USE LOCAL VARIABLES!! Grades were about 60-80.
Local Variable:
- used only in part of the code it was created, deleted once onevent is done.
- Variable is inside an event
- Example:
onEvent(‘button’, ‘click’) varclicks=1 - Example:
Animal = “cat” Animal = “dog”The variable Animal is now “dog”.
Boolean: Represents
trueorfalse.- Computers use this to make decisions inside conditionals (if then)
Data Types: different categories of data that your computer can represent.
Integers: Positive or negative (e.g., 5).
Strings: Represented by quotation marks (e.g.,
‘We are passing AP CSP’).Substring: Part of an existing string.
- The
+operator can concatenate strings or numbers.- Example:
'sun' + 'rise' = sunrise
- Example:
/n: New line.Slice (str, start, length): Returns substring of character from the string at the staring and what length.- Example:
Slice(cat,1,2): ca t
- Example:
- The
List: An ordered sequence of elements; also known as arrays.
- Example:
foodList = [“fish”, “chicken”, “beef”]
- Example:
Conditionals: We execute the code segments if it’s true, if not then the else is executed!!
Operators:
NOT: Reverses the condition.NOT true:falseNOT false:true
AND: Both conditions must be met.True AND False:FalseTrue AND True:TrueFalse AND False:False
OR: At least one condition must be met.True or False:TrueTrue or True:TrueFalse or False:False
Nested Conditionals: Conditionals inside conditionals.
- Example:
IF (age=40) { ticket = 20 } else { If (age = 20) ticket = 30 Else ticket = 25 }- If age is 30, first
ifis ignored, goes toelse, and the ticket is 25.
- If age is 30, first
- Example:
Lists:
- An element is an individual value in a list.
Grocerylist = ["milk", "eggs", "cheese"] Change = "soap" Grocerylist[2] = change
Print (grocery_list)
- An element is an individual value in a list.
Lists can be used to create data abstraction.
Data abstraction simplifies a set of data by representing it in some general way.
Using a list can allow you to work easily with individual elements.
Accessing an element by index: This operation allows you to single out an element in a list based on its index number!
Assigning the value of an element of a list to a variable: This allows you to assign a variable to a certain element within a list. The code's output: ["milk", "eggs", "soap"]
Assigning a value to an element outright
grocerylist = ["milk", "eggs", "cheese"] grocerylist[0] = grocerylist[2] print (grocerylist)
Assigning the value of one element in the list to another : The code's output: ["cheese", "eggs", "cheese"]
Insert elements at a given indexThis allows you to insert a value into the index position you want. It will increase the length of the list and shift everything greater than or equal to that index down by one place. For example if you insert a new value to the index value 4, what was originally there will move to the index value 5.
Appending or adding elements to the end of the listThis allows you to add values to the end of your list
New index is added
Removing: eliminates an element from the list
Removes element in given list an given index
All indexes shift!!
Determine the length of a list through this
Looping through Lists
- You can also use loops to transverse or go through a list.
- This can be a complete or partial transversal.
Binary Search
- Binary search algorithm starts in the middle of a sorted data set and eliminates half of the data based on what it’s looking for.
- It repeats the process until the desired value is found.
- THE LIST HAS TO BE IN ORDER
Filter a List - Creating a subset of elements from the original list !!
- An example is the linear search which checks each element of a list in order until the desired value is found or all elements in the list have been checked.
- Most basic way to search through a list: called a linear or sequential search algorithm and it checks each value of a list in order until the result is found
- Example: 1, 1, 2, 3, 3, 4, 5, 7, 9, 11, 12 Finding where 12 was. The middle is 4 BUT 12 is larger than 4 so disregard everything under that. 5, 7, 9, 11, 12 Value 9 now but it’s less than 12 so eliminates everything before and including that value
PROCEDURES - 11, 12… The process would go on until the program either found 12 or went through all values in the list
- Binary search is more efficient than linear search
- A procedure is a group of programming instructions. They are also called methods or functions.
- You can use a procedure to use the same set of instructions again and again without having to rewrite the code.
- Procedures often require some sort of parameter in order to work.
- Parameters are the input variables of a procedure.
- YOU DON’T ALWAYS NEED TO USE PARAMETERS
- When you call a procedure, your program acts like those lines of codes are written out.
- Arguments are values passed into the procedure.
- You can use the return statement which you can then use without printing it.
- It is used in a function to specify the value that should be returned when the function is called. returns terminate the program.
firstnumber = 7 secondnumber = 5
sumvalue = firstnumber + secondnumber print (sumvalue)
firstnumber = 8 secondnumber = 2
sumvalue = firstnumber + second_number
Procedural Abstraction - Procedures allow you to solve a large problem based on the solution to smaller subproblems.
- Procedures can help you simplify your code and improve its readability.
- Selection:(If else) Selection refers to the process of making a decision based on a condition or criteria. It allows the program to choose between different paths of execution.
The Algorithm
Sequencing, selection and iteration
- Sequencing: consists of steps that go in order
Iteration: (Loop) Iteration refers to the repetition of a set of instructions until a specific condition is met.
It allows programs to perform tasks repeatedly without having to write repetitive code. They are also called loops.
The n times is how many times the loop will run
The second type of loop is a Repeat Until condition loop (for loop) where the loop will continue to run until a condition is met. We know how many times the loop will run.
While loops run while a condition is met and end when that condition is no longer true.
It checks the condition before executing the code block. We don’t know how many times the code will run.
3 parts of a while loop
Infinite loops are loops that continue to repeat indefinitely because the condition controlling the loop is always true or there is no condition at all.
EXPRESSIONSAlgorithms are step-by-step instructions or procedures used to solve a problem or complete a task. They provide a clear set of instructions that can be followed to achieve a specific goal.
var i = 0: initializes the counter variable i to 0- Boolean expression: checks condition of variable
- Statement which increase/decreases the variable i++
A for loop
for (var i = 0 ; i < 4, i ++)MOD operator: modulo: a Mod b: a is divided by b and MOD gives you what the remainder would be. 27 mod 4: 3
PEMDAS EXISTS!! DO MATHEMATICAL EXPRESSIONS WITH PEMDAS
Developing Algorithms
Examples of Existing Algorithms:Determining the max. or min. value in a group of two or more numbers
Solving math problems: calculating sums, averages, etc.
Determining a robot's path through a maze (route-finding algorithm)
Compressing data
Sorting a list
Algorithmic Efficiency
Generating Random Values
SimulationsThe process of creating a model or representation of a real world system or phenomenon on a computer.
Simulations are an example of abstraction!!
Used to represent real world events and conditions so you can investigate and draw conclusions about them without dealing with some of the complications of the real world
Used to predict and plan
Disadvantages: may include bias based on what the simulation creator chose to include or exclude. It can also be out of scale
A problem is a task that an algorithm is trying to solve while an instance of the problem is a problem with a specific input.
Decision problems: yes or no answer
Optimization problem: wants the best answer! example: finding the shortest path between two citiesAn algorithm’s efficiency is an estimate of how many computational resources (power, memory, time) it uses. Or in a nutshell how many times a statement or statement group Or much easier: how many steps it takes
When finding the max number of list elements find the closest 2 to the power of Like 200: 2 to the 8th is closer
Polynomial efficiency of lower are said to run in a reasonable amount of time Ex: n^2 , log base 2 of n
Exponential or factorial efficiency run in an unreasonable amount of time Ex: 2 to the n or n!
The number of checks a program needs to make is the largest number you can make with those bits
Some problems can’t be solved in a reasonable amount of time so they turn to an approximate solution which is known as heuristic.
The halting problem asks that if a computer is given a random program, can an algorithm ever be written that will answer the question, will this program ever stop running?, for all programs?
By proving that there wasn't, Turing demonstrated that some problems can't be completely solved with an algorithm
A decidable problem is a decision problem. If an algorithm can’t be written that’s always capable of providing a correct yes or no answer: this is an undecidable problem. Solvable in some cases but there is no algorithm that will solve the problem in all cases. Example: Halting problem created by Alan Turing
Big Idea 4: Computer Systems and Networks (15%)
- Internet: A computer network consisting of interconnected networks that use standardized, open (NONPROPRIETARY) communication protocols
- A computing network is a group of computing devices that can share data with each other.
- A computing system: a group of computing devices and programs working together for a common purpose
- When you send or receive data from the internet, you have to get data from one place or another but sometimes it’s too much data so…the data is broken up into packets.
- Packets contain a section of the data you want to send and comes with a header that contains metadata (data about data) to tell the routers where the packet is from, where it’s going and how it should be reassembled.
- Computing devices create these packets and send them out through paths.
- Paths are sequences of connected computing devices known as ROUTERS.
Open Network Characteristics
Any computing device can join as long as they follow the rules (protocol).
They connect computer networks, which are systems of computing devices.
A computing device is a physical machine that can run a program.
Devices connect to form a computing system.
The process of finding a path to take is known as routing
Bandwidth: the rate of data transfer it allows from one device to another
Internet Protocol: Two major protocols:
- The TCP governs how packets are created and reassembled while the IP moves packets to their destinations. It also dictates how devices are given addresses to communication with each other (IP ADDRESSES: unique numerical label assigned to each device)
- reliable, ordered and error checked delivery of data packets
- It MAY be received out of order but the computer double checks and makes sure to add instructions to reassemble it on the other side
Packets can arrive at their destination in order or out of order! :(
Or In simple words: the maximum amount of data a network connection can move in a certain amount of time
Latency: how late the bits arrive
It’s measured in bits per second of megabits per second!
In order for computing devices to communicate with each other over the internet, they all have to use the same protocol!
A protocol is a standard set of rules that everyone agrees on. They are OPEN or NONPROPRIETARY.
TCP/IP: Transmission Control Protocol/Internet Protocol:
Protocols
Some MAY not be delivered but the computer checks to be redelivered again
UDP: World Wide Web: a system of web pages, programs and files
This is governed by the HTTP (hypertext transfer protocol) protocol which controls how web page data is transmitted (enables communication between web browsers)
🌟 TCP, IP and UDP are used to transmit data over a variety of NETWORKS while HTTP is used to transmit data over THE WORLD WIDE WEB (pls don’t get it mixed up :))
ScalabilityThe capacity for the system to change in size and scale to meet new demands
Fault toleranceIt can function properly even in the event of one part failing 🔥
Two versions of IP:
- IPv4: Ex: 74.125.20.113: split into 4 numbers all ranging 0-255 2^{32} possible values ⭐️
- IPv6: Ex: 2001:0db8:0000:0042:8a2e…. These are hexadecimal numbers. 2^{128} possible values
Used Datagram Protocol: Offers a way to deliver a faster stream of information by eliminating error checking which TCP/IP does.
- does not guarantee delivery or order of packets
The World Wide Web or www.
One major aspect of a fault tolerant system is the presence of redundancyThe inclusion of extra components that can be used to mitigate failure of a system of other components fail
Reduces damage by some cyber attacks ( example: a Distributed Denial of Service Attack (DDoS)takes place when a server or network is overwhelmed with a flood of traffic, causing it to slow or even crash. In this situation, having a redundant server or network connection could allow you to go around the attack and continue to operate.)
Makes it easier for a system to expand
Disadvantages of Fault Tolerancerequires more resources
Expensive in materials and maintenance to build new resources
COMPUTING
Parallel ComputingA program is broken into smaller sequential computing operations using multiple PROCESSORS
Advantageshelps save a lot of time
Scales more effectively
Benefits of Fault Tolerancehelps reduce hardware malfunctions (issues or failures with physical computer components) and cyber attacks (deliberate attempts by individuals to gain unauthorized access)
Increases reliability of a system
Keeps the system from shutting down
Sequential computingTraditional method of executing instructions in a sequential order
Distributed computingMultiple DEVICES are used to run a program : allows users to share information
Advantagesallows people to solve problems that they wouldn’t be able to due to lack of storage or too much processing time
Calculating EXECUTION TIMEThe word problem we are using: For example if a program has three steps that take 40, 50 ,and 80 seconds then…
I. Sequential: a sequential solution takes as long as the sum of all steps in the program. The sequential solution would take 170 seconds to complete.
II. Parallel Computing:Depends on the number of cores (individual processing unit) . The more cores the faster the solution.
You have to find the fastest two processors
40 + 50: 90
40 + 80: 120
50 + 80: 130
Or if there are a known 2 processors like 40, 50, 60 and 80 You would find the longest out of the first two and second two which is 50 and 80 then add them so it is 130.
III. The speed up:this is calculated by dividing the time it took to complete the task sequentially by the time it took to complete the task in parallel
Speedup is the measure of how much faster one solution or algorithm performs compared to another solution or algorithm when solving the same problem.
Speed limits:Before you start a speed calculation problem, make sure you know whether or not all steps are independent. Don't just assume they all are. (The question should tell you if they are or not.)
It’s those khan academy questions that goes like ok the startup takes 5 seconds so you would add 5 seconds to the total.
Beneficial effects of computing innovationsMachines have vastly improved the medical field
Engineers can collect data and design products
Communications have flourished
We can create, share and sell creative works
Harmful effects of computing innovationsThe Digital divide: people can be harmed due to unequal access to technology combined with the increasing importance of technology in the world
Computing bias: technology exacerbate currently existing human biases perpetuating inequality
Legal and ethical concerns: example being copyright law
Big Idea 5: Impact of Computing (26%)
Safe computing
Risks in dad to day computing use such as being infected with a virus
Loss of privacy
Replacement of humans by computing innovations leading to unemployment
Dependence on technology
Negative health outcomes
Targeted advertisingIs intended to help businesses turn a profit, but it incentivizes the collection of private information and has the potential to be abused.
The digital divideRefers to the gaps between those who have access to technology and the internet and those who don’t.
Factors that Influence the Digital Divide:Demographics:
- Younger people are more likely to be comfortable with the technology.
- People with higher levels of education tend to use the internet more.
Socioeconomic
- people with higher incomes are more likely to be able to purchase and maintain technology
Geographic
- Some areas allow more internet access than another
Harmful impacts of the digital divide
Examples:
- Some areas allow more internet access than another
Educational opportunities
- During the 2020 COVID pandemic many schools across the US shifted to virtual learning systems. Some students without stable internet connections suffered educationally.
Employment Opportunities
- Those without internet access may be at a disadvantage in terms of finding and applying for jobs. They also may be hindered from being able to do their jobs or access resources.
Reducing the Digital Divide
- Those without internet access may be at a disadvantage in terms of finding and applying for jobs. They also may be hindered from being able to do their jobs or access resources.
Organizations can release educational resources to teach people how to navigate the internet. They can release digital literacy programs: programs that teach people how to use the internet.
Local and national governments can fund businesses that provide internet access to areas that don’t have access.
COMPUTING BIASBiases are tendencies or inclinations, especially those that are unfair or prejudicial.
Examples of bias:
- Criminal risk assessment tools are used to determine that a defendant will commit another crime . The algorithms are trained to pick out patterns and make decisions based on historical data.
- Facial recognition systems are trained on data sets that contain fewer images of women and minorities.
- Recruiting algorithms can be biased against certain races of gender.
What can we do to prevent bias in computing?
- Use diverse data sets
- Review algorithms for potential biases
- Increase diversity in the tech industry
Machine learning models are computer programs that can learn from data and make predictions or decisions without being programmed.
CROWDSOURCING
Citizen scienceScientific research that the general population helps to conduct. Ordinary citizens help contribute data to research projects using computing devices.
Example: counting birds they see at local feeders or smth 🦆
- Citizen science gives a wide range of people the ability to contribute to scientific studies and provide more diverse data for scientists.
Crowdsourcing
- Citizen science gives a wide range of people the ability to contribute to scientific studies and provide more diverse data for scientists.
Is the practice of getting a large amount of input or information from people on the internet.
Citizen science IS A FORM OF CROWDSOURCING!!
Organizations do not need to pay for the information they get.
LEGAL AND ETHICAL CONCERNS‼️
Intellectual PropertyIs the creations of the mind such as inventions, literary and artistic works, designs and images used in commerce
It’s very easy to access and distribute intellectual property found on the internet but one of the ways to protect it is through copyright
Public Domain-these are creative works that are free to use without permission
CopyrightIs the legal right that the creator of a work has to it.
Two types of copyright:Economic rights: rights to financial benefits from the use of work
Moral rights: the right to claim authorship or the right to prevent harmful changes
If you claimed the said content was your own you are guilty of PLAGIARISM!!
Plagiarism is when you take the content of someone else and claim it as your own. Ex: AP SEMINAR TURNITIN.COM coming in clutch with my 26 percent AI
Legal ways to use the IP of others
Creative CommonsIs a public copyright license that creators use when they want to GIVE others the right to use their work.
Fair UseAllows the use of copyrighted material without permission for limited purposes such as new reporting.
INTRODUCING THE ACRONYM PANE! (Just how ap CSP gives me pain) 😩Purpose: new purpose to make it original
Amount: small amount of work
Nature: use works based in effects
Effect: don’t make money off of someone’s work
Open sourcing: allows for work to be freely distributed, and modified.
Open access refers to research available to the general public free of restrictions like academic journals. They are often free of copyright.
SAFE COMPUTINGSearch engines can track your search history and use it to suggest websites and ads which is known as TARGETED MARKETING.
Devices, websites and networks can collect information about a user’s location like their IP address.
Personally Identifiable InformationThis is the information that can be used to identify you It includes: age, race, phone number, medical info, biometric data, social security number
Benefits and Harms of Information Collection
Benefits:helps enhance your experience online
The Tik tok for you page rely on collection of personal information
Harms:your identity could be stolen
You could be stalked!