AP Computer Science Principles Review Notes
Creative Development
Computing Innovation: Program as major function (physical/software).
Collaboration: Task achievement, diverse viewpoints, bias reduction, online tools for inclusion.
Programs: Code statements, inputs (audio, text, visual), outputs, development processes, user testing for constraints.
Program Errors: Logic, syntax, runtime, overflow.
Error Solving: Debugging, test cases, visualization.
Data
Data Storage: Bits (base-2), byte (8 bits), lists/variables/constants to bits, abstractions (RGB).
Context Matters: Bits' meaning varies.
Analog vs. Digital: Analog smooth, digital abstract.
Sampling: Interval measurements model analog data.
Integer Representation: Fixed bits, overflow/round-off errors.
Errors: Round-off (limited precision), overflow (value too large).
Base Conversion: Converting between bases.
Data Compression: Reduces bits.
Lossless: Complete restoration.
Lossy: Approximate restoration.
Data Analysis: Trends, connections, experiments for causation.
Metadata: Data about data; provides structure.
Data Cleansing: Combining sources, uniform data.
Bias in Data: Reduced via diverse sources.
Large Datasets: More info, complex systems (parallel computing).
Data Processing: Programs process data; tables/diagrams for insights; filter/transform/merge datasets.
Algorithms and Programming
Variables: Hold values with descriptive names; assignment expression (e.g., ).
Lists: Many variables; indexes (start at 1). Example: [1, 3, 4, 11, 15] has length 5.
Strings: List of characters; concatenation combines.
Math Expressions: Addition, subtraction, etc.; modulo (%); PEMDAS.
Boolean Expressions: AND, OR, NOT.
If Statements: Control flow based on conditions; nested conditionals.
Loops: Repeat tasks.
Repeat n times, repeat until x.
While/for loops.
List Operations: Access, adjust, insert, append, remove, iterate.
Searching Lists: Linear (start to end), binary (sorted lists, divide and conquer).
Procedures: Named instructions; parameters/arguments; abstraction; improves readability.
Software Libraries: Built-in procedures.
APIs: Use procedures in a library.
Simulations: Abstractions of processes; use values to represent states; can be biased; simulate faster/cheaper; random numbers.
Algorithmic Efficiency: Decision/optimization problems; polynomial vs. exponential/factorial; heuristic algorithms.
Problem Types: Decidable, undecidable.
General Notes: Algorithms vary for tasks.
Computer Systems and Networks
Computing Devices: Run programs, connect to Internet.
Computer Networks: Connected devices sending data; paths/routing; bandwidth.
Internet: Network of networks using protocols; open protocols; scalable.
Data Streams: Packets (data/metadata); can be out of order; protocols rearrange.
World Wide Web: Linked pages/programs; uses Internet/HTTP.
Fault Tolerance: Supports failures; redundancy increases reliability.
Computing Types: Sequential (one at a time), parallel (simultaneous).- Speedup: Time for sequential tasks divided by time for parallel tasks.
Distributed Computing: Many devices; compare algorithm efficiency; limited by sequential portion.
Impact of Computing
Computing Innovations: Beneficial/harmful effects; increase creativity.
Digital Divide: Varying Internet access; address/improve equality.
Bias in Computing: Built-in biases; reduce bias; diverse perspectives.
Crowdsourcing: Input from many via Internet; benefits innovation.
Citizen Science: Research by individuals using devices.
Ethical and Legal: IP concerns; plagiarism; Creative Commons licenses; open source/access.
Safe Computing: PII protection; search history, cookies, unintended uses.
Continued Safe Computing: Authentication (multi-factor, strong passwords), encryption (symmetric/public key), certificate authorities, virus/malware detection, phishing, keylogging, rogue access points, malicious links/downloads.
Create Task Definitions
Definitions: Sequencing, selection (boolean statements), iteration (repeating code).