CLI tool to generate AP BC Calculus practice problems using AI
Project description
bcpractice
AI-powered AP Calculus BC practice problem generator
Generate exam-quality practice sets in seconds. Select your topics, choose your length, get a professional PDF.
Why bcpractice?
Preparing for the AP Calculus BC exam requires extensive practice. Creating quality problem sets manually is time-consuming. bcpractice solves this by leveraging AI to generate diverse, curriculum-aligned problems instantly.
- Instant generation — Full practice sets in under a minute
- Exam-authentic — Problems mirror actual AP free-response format
- Complete curriculum — All 10 units, 111 topics covered
- Print-ready PDFs — Professional LaTeX formatting with score tables and workspace
Installation
macOS
Option 1: pipx (Recommended)
brew install pipx
pipx ensurepath
Restart your terminal, then:
pipx install bcpractice
Option 2: pip
pip3 install bcpractice
If you get "command not found" after installing, run with:
python3 -m bcpractice generate
Windows
Step 1: Install Python (if you haven't already)
Download from python.org. During installation, check "Add Python to PATH".
Step 2: Install bcpractice
Open Command Prompt or PowerShell:
Option 1: pipx (Recommended)
pip install pipx
pipx ensurepath
Restart your terminal, then:
pipx install bcpractice
Option 2: pip
pip install bcpractice
If you get "command not found" after installing, run with:
python -m bcpractice generate
Requirements
-
Python 3.9+
-
LaTeX distribution (for PDF compilation):
Platform Command macOS brew install --cask mactexUbuntu/Debian sudo apt install texlive-fullWindows MiKTeX -
API Key — OpenAI or Anthropic (bring your own)
Quick Start
1. Configure your API key
bcpractice setup
Select your provider (OpenAI or Anthropic) and enter your API key. Configuration is stored locally in ~/.bcpractice/.
2. Generate problems
bcpractice generate
Follow the interactive prompts to:
- Select topics (by unit or individual topics)
- Choose length (Quick / Medium / Full)
- Receive your PDF
3. Start practicing
Your PDF includes:
- Cover page with name/date fields
- Organized sections by technique
- Point values for each problem
- Adequate workspace for solutions
Features
| Feature | Description |
|---|---|
| Flexible Selection | Choose entire units or cherry-pick specific topics |
| Three Lengths | Quick (5-8), Medium (12-15), or Full (20-25) problems |
| Smart Sectioning | Problems organized by technique (Riemann Sums, FTC, etc.) |
| Graph Support | Auto-generated TikZ graphs for visual problems |
| Difficulty Mix | ~30% basic, ~50% moderate, ~20% challenging |
| Multi-part Problems | Complex problems with labeled parts (a, b, c...) |
Commands
| Command | Description |
|---|---|
bcpractice setup |
Configure API provider and key |
bcpractice generate |
Generate a new practice set |
bcpractice topics |
List all available topics |
bcpractice reset |
Clear saved configuration |
Options
bcpractice generate --output ./exams # Custom output directory
bcpractice generate --length quick # Skip length prompt
Topic Coverage
Full AP Calculus BC curriculum based on the College Board Course and Exam Description.
| Unit | Name | Topics |
|---|---|---|
| 1 | Limits and Continuity | 16 |
| 2 | Differentiation: Definition and Fundamental Properties | 10 |
| 3 | Differentiation: Composite, Implicit, and Inverse Functions | 6 |
| 4 | Contextual Applications of Differentiation | 7 |
| 5 | Analytical Applications of Differentiation | 12 |
| 6 | Integration and Accumulation of Change | 14 |
| 7 | Differential Equations | 9 |
| 8 | Applications of Integration | 13 |
| 9 | Parametric, Polar, and Vector Functions | 9 |
| 10 | Infinite Sequences and Series | 15 |
Topics marked [BC] are exclusive to Calculus BC and not covered in AB.
Configuration
Environment Variables
Skip bcpractice setup by setting environment variables:
# OpenAI
export OPENAI_API_KEY="sk-..."
# Anthropic
export ANTHROPIC_API_KEY="sk-ant-..."
Config Location
Configuration is stored at ~/.bcpractice/config.json with restricted permissions (600).
Example Output
Generated PDFs feature:
┌─────────────────────────────────────────┐
│ BC Calculus │
│ Practice Problems │
│ Unit 6: Integration │
├─────────────────────────────────────────┤
│ Name: _____________ Date: _________ │
│ │
│ ┌─────────────────────────────────┐ │
│ │ Instructions │ │
│ │ • 13 problems (52 points) │ │
│ │ • No calculator unless marked │ │
│ │ • Show all work │ │
│ └─────────────────────────────────┘ │
│ │
│ Section A: Riemann Sums 12 pts │
│ Section B: FTC 20 pts │
│ Section C: U-Substitution 20 pts │
│ ─────────────────────────────────── │
│ TOTAL 52 pts │
└─────────────────────────────────────────┘
Contributing
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, open an issue first to discuss what you'd like to change.
License
MIT — Use it freely.
Acknowledgments
- Curriculum structure: College Board AP Calculus BC
- Topic organization: FlippedMath
Made for students, by a student.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file bcpractice-0.1.1.tar.gz.
File metadata
- Download URL: bcpractice-0.1.1.tar.gz
- Upload date:
- Size: 22.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
034254e9aeaacd9b95fb6b387fd910c61528df1623e9adbe775561b070a7b454
|
|
| MD5 |
24980ebc86605505f7eaf0b5a16a8fa3
|
|
| BLAKE2b-256 |
f9ed3cfaf7eb5b9d91d502cd4f945a96bc2091e23b57aea0ee596fca5810c51b
|
File details
Details for the file bcpractice-0.1.1-py3-none-any.whl.
File metadata
- Download URL: bcpractice-0.1.1-py3-none-any.whl
- Upload date:
- Size: 26.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9a53d16a71eb7efce905eb460d7d96f4f6037d5427f47c786a9209b3b819fc5c
|
|
| MD5 |
15804309f51f25afea12b8e2eca31e67
|
|
| BLAKE2b-256 |
0dc3924b282739ac997b12656e264a6b784b1b81c973251ab2729c6670082bdd
|