Skip to main content

CLI tool to generate AP BC Calculus practice problems using AI

Project description

bcpractice

AI-powered AP Calculus BC practice problem generator

Python 3.9+ License: MIT PyPI

Generate exam-quality practice sets in seconds. Select your topics, choose your length, get a professional PDF.

InstallationQuick StartFeaturesTopics


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 mactex
    Ubuntu/Debian sudo apt install texlive-full
    Windows 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:

  1. Select topics (by unit or individual topics)
  2. Choose length (Quick / Medium / Full)
  3. 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


Report BugRequest Feature

Made for students, by a student.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bcpractice-0.1.1.tar.gz (22.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bcpractice-0.1.1-py3-none-any.whl (26.4 kB view details)

Uploaded Python 3

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

Hashes for bcpractice-0.1.1.tar.gz
Algorithm Hash digest
SHA256 034254e9aeaacd9b95fb6b387fd910c61528df1623e9adbe775561b070a7b454
MD5 24980ebc86605505f7eaf0b5a16a8fa3
BLAKE2b-256 f9ed3cfaf7eb5b9d91d502cd4f945a96bc2091e23b57aea0ee596fca5810c51b

See more details on using hashes here.

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

Hashes for bcpractice-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9a53d16a71eb7efce905eb460d7d96f4f6037d5427f47c786a9209b3b819fc5c
MD5 15804309f51f25afea12b8e2eca31e67
BLAKE2b-256 0dc3924b282739ac997b12656e264a6b784b1b81c973251ab2729c6670082bdd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page