Skip to content

Concept List

The following is a numbered list of concepts for the AP Computer Science (Python Version) course. Each concept is a short Title Case label (max 32 characters) that represents a distinct learning objective or knowledge unit.

Foundational Concepts (1-20)

  1. Computer Science
  2. Computational Thinking
  3. Algorithms
  4. Abstraction
  5. Decomposition
  6. Pattern Recognition
  7. Stepwise Refinement
  8. Problem Solving
  9. Binary Number System
  10. Bits and Bytes
  11. Character Encoding
  12. ASCII and Unicode
  13. Computer Hardware
  14. CPU and Memory
  15. Input and Output Devices
  16. Operating Systems
  17. Programming Languages
  18. Compiled vs Interpreted
  19. Python Language
  20. Python Interpreter

Python Basics (21-50)

  1. Python REPL
  2. Python Scripts
  3. Comments in Code
  4. Variables
  5. Variable Assignment
  6. Variable Naming Rules
  7. Data Types
  8. Integer Type
  9. Float Type
  10. Boolean Type
  11. String Type
  12. Type Function
  13. Type Conversion
  14. Implicit Type Conversion
  15. Explicit Type Casting
  16. Arithmetic Operators
  17. Integer Division
  18. Modulo Operator
  19. Operator Precedence
  20. String Concatenation
  21. String Repetition
  22. F-String Formatting
  23. Print Function
  24. Input Function
  25. Multiple Assignment
  26. Constants Convention
  27. Augmented Assignment
  28. Expressions
  29. Statements
  30. Code Readability

Boolean Logic and Comparisons (51-65)

  1. Boolean Expressions
  2. Comparison Operators
  3. Equal and Not Equal
  4. Greater and Less Than
  5. Logical Operators
  6. And Operator
  7. Or Operator
  8. Not Operator
  9. Short-Circuit Evaluation
  10. Truthiness and Falsiness
  11. Boolean Conversion
  12. Chained Comparisons
  13. Order of Operations
  14. De Morgan's Laws
  15. Truth Tables

Control Flow (66-90)

  1. Control Flow
  2. Sequential Execution
  3. Conditional Statements
  4. If Statement
  5. If-Else Statement
  6. Elif Statement
  7. Nested Conditionals
  8. Ternary Expression
  9. Match Statement
  10. Loops
  11. For Loop
  12. While Loop
  13. Range Function
  14. Loop Variable
  15. Loop Body
  16. Infinite Loops
  17. Break Statement
  18. Continue Statement
  19. Nested Loops
  20. Loop Patterns
  21. Accumulator Pattern
  22. Counter Pattern
  23. Sentinel Value Pattern
  24. Flag Variable Pattern
  25. Loop Else Clause

Strings (91-115)

  1. String Basics
  2. String Indexing
  3. Negative Indexing
  4. String Slicing
  5. Slice Notation
  6. String Immutability
  7. String Length
  8. String Methods
  9. Upper and Lower Methods
  10. Strip Method
  11. Split Method
  12. Join Method
  13. Find and Replace Methods
  14. Startswith and Endswith
  15. String Iteration
  16. String Comparison
  17. Escape Characters
  18. Raw Strings
  19. Multiline Strings
  20. String Formatting
  21. Format Method
  22. String Validation Methods
  23. In Operator for Strings
  24. Character Methods
  25. String Reversal

Functions (116-150)

  1. Functions
  2. Function Definition
  3. Function Call
  4. Parameters
  5. Arguments
  6. Return Statement
  7. Return Values
  8. None Type
  9. Default Parameters
  10. Keyword Arguments
  11. Positional Arguments
  12. Multiple Return Values
  13. Variable Scope
  14. Local Variables
  15. Global Variables
  16. Global Keyword
  17. Docstrings
  18. Function Documentation
  19. Helper Functions
  20. Main Function Pattern
  21. Name Equals Main
  22. Lambda Functions
  23. Higher-Order Functions
  24. Map Function
  25. Filter Function
  26. Reduce Function
  27. Function Composition
  28. Recursion
  29. Base Case
  30. Recursive Case
  31. Recursive Call Stack
  32. Stack Overflow
  33. Recursion vs Iteration
  34. Recursive Patterns
  35. Memoization

Lists (151-185)

  1. Lists
  2. List Creation
  3. List Indexing
  4. List Slicing
  5. List Mutability
  6. List Methods
  7. Append Method
  8. Insert Method
  9. Remove Method
  10. Pop Method
  11. Sort Method
  12. Reverse Method
  13. List Comprehension
  14. Nested Lists
  15. List of Lists
  16. List Traversal
  17. For Loop with Lists
  18. Enumerate Function
  19. List Unpacking
  20. Zip Function
  21. List Copying
  22. Shallow Copy
  23. Deep Copy
  24. List Concatenation
  25. List Repetition
  26. In Operator for Lists
  27. Index Method
  28. Count Method
  29. Min Max Sum Functions
  30. Len Function for Lists
  31. Sorted Function
  32. List as Stack
  33. List as Queue
  34. List Aliasing
  35. Identity vs Equality

Tuples and Sets (186-205)

  1. Tuples
  2. Tuple Creation
  3. Tuple Immutability
  4. Tuple Packing
  5. Tuple Unpacking
  6. Named Tuples
  7. Tuple Methods
  8. Tuples as Keys
  9. Tuples vs Lists
  10. Sets
  11. Set Creation
  12. Set Operations
  13. Set Union
  14. Set Intersection
  15. Set Difference
  16. Set Symmetric Difference
  17. Set Methods
  18. Membership Testing
  19. Frozenset
  20. Removing Duplicates

Dictionaries (206-230)

  1. Dictionaries
  2. Dictionary Creation
  3. Key-Value Pairs
  4. Dictionary Access
  5. Dictionary Methods
  6. Get Method
  7. Keys Method
  8. Values Method
  9. Items Method
  10. Dictionary Iteration
  11. Dictionary Comprehension
  12. Nested Dictionaries
  13. Default Values
  14. Update Method
  15. Pop Method for Dicts
  16. Dictionary Merging
  17. Counting with Dicts
  18. Grouping with Dicts
  19. Dictionary as Cache
  20. Hashable Keys
  21. Dict vs List Lookup
  22. JSON and Dictionaries
  23. OrderedDict
  24. DefaultDict
  25. Counter Class

Object-Oriented Programming (231-275)

  1. Object-Oriented Programming
  2. Classes
  3. Objects
  4. Class Definition
  5. Class Instantiation
  6. Instance Attributes
  7. Class Attributes
  8. The Self Parameter
  9. Init Method
  10. Constructor
  11. Methods
  12. Instance Methods
  13. Str Method
  14. Repr Method
  15. Encapsulation
  16. Private Attributes
  17. Getter Methods
  18. Setter Methods
  19. Property Decorator
  20. Class Methods
  21. Static Methods
  22. Composition
  23. Has-A Relationship
  24. Inheritance
  25. Is-A Relationship
  26. Parent Class
  27. Child Class
  28. Super Function
  29. Method Overriding
  30. Polymorphism
  31. Duck Typing
  32. Abstract Classes
  33. Multiple Inheritance
  34. Method Resolution Order
  35. Operator Overloading
  36. Eq and Lt Methods
  37. Add and Mul Methods
  38. Iterable Protocol
  39. Iterator Protocol
  40. Dunder Methods
  41. Object Identity
  42. Object Comparison
  43. Class Hierarchies
  44. UML Class Diagrams
  45. Design Patterns Intro

File I/O (276-290)

  1. File Input Output
  2. Opening Files
  3. File Modes
  4. Read Method
  5. Readline Method
  6. Readlines Method
  7. Write Method
  8. Writelines Method
  9. With Statement
  10. Context Managers
  11. File Paths
  12. CSV Files
  13. JSON Files
  14. File Exceptions
  15. Text vs Binary Files

Error Handling (291-305)

  1. Errors and Exceptions
  2. Syntax Errors
  3. Runtime Errors
  4. Logic Errors
  5. Exception Types
  6. TypeError
  7. ValueError
  8. IndexError
  9. KeyError
  10. Try-Except Block
  11. Multiple Except Blocks
  12. Finally Block
  13. Raising Exceptions
  14. Custom Exceptions
  15. Assertions

Testing and Debugging (306-325)

  1. Testing
  2. Manual Testing
  3. Unit Testing
  4. Test Cases
  5. Assert Statements
  6. Unittest Module
  7. Test Functions
  8. Edge Cases
  9. Boundary Testing
  10. Test-Driven Development
  11. Debugging
  12. Print Debugging
  13. Debugger Tools
  14. Breakpoints
  15. Step Through Code
  16. Code Tracing
  17. Rubber Duck Debugging
  18. Defensive Programming
  19. Input Validation
  20. Code Review

Algorithms and Analysis (326-360)

  1. Algorithm Design
  2. Pseudocode
  3. Flowcharts
  4. Linear Search
  5. Binary Search
  6. Search Comparison
  7. Selection Sort
  8. Insertion Sort
  9. Merge Sort
  10. Merge Sort Recursion
  11. Sorting Comparison
  12. Stable vs Unstable Sort
  13. Algorithm Correctness
  14. Loop Invariants
  15. Big-O Notation
  16. Time Complexity
  17. Space Complexity
  18. Constant Time O(1)
  19. Linear Time O(n)
  20. Quadratic Time O(n^2)
  21. Logarithmic Time O(log n)
  22. Linearithmic Time
  23. Best Average Worst Case
  24. Empirical Analysis
  25. Counting Operations
  26. Brute Force Approach
  27. Divide and Conquer
  28. Greedy Algorithms
  29. Algorithm Tradeoffs
  30. Efficiency vs Readability
  31. Two Pointer Technique
  32. Sliding Window Pattern
  33. Frequency Counter Pattern
  34. Recursion in Algorithms
  35. Algorithm Visualization

Software Engineering (361-380)

  1. Software Development
  2. Program Planning
  3. Requirements Analysis
  4. Modular Design
  5. Code Organization
  6. Import Statements
  7. Python Modules
  8. Python Packages
  9. Pip Package Manager
  10. Virtual Environments
  11. Version Control Intro
  12. Git Basics
  13. Code Style
  14. PEP 8 Guidelines
  15. Linting Tools
  16. Refactoring
  17. DRY Principle
  18. KISS Principle
  19. Code Comments
  20. Documentation

Advanced Python Concepts (381-400)

  1. Generators
  2. Yield Statement
  3. Generator Expressions
  4. Decorators
  5. Closures
  6. Args and Kwargs
  7. Unpacking Operators
  8. Walrus Operator
  9. Type Hints
  10. Type Annotations
  11. Dataclasses
  12. Enum Type
  13. Regular Expressions
  14. Collections Module
  15. Itertools Module
  16. Functools Module
  17. List vs Generator Memory
  18. Comprehension Patterns
  19. Context Manager Protocol
  20. Python Best Practices