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., a=5a = 5).

  • 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).