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

pip install bcpractice

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.0.tar.gz (22.6 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.0-py3-none-any.whl (25.9 kB view details)

Uploaded Python 3

File details

Details for the file bcpractice-0.1.0.tar.gz.

File metadata

  • Download URL: bcpractice-0.1.0.tar.gz
  • Upload date:
  • Size: 22.6 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.0.tar.gz
Algorithm Hash digest
SHA256 10dbd9e582a74b840fd8328f1c3489398ef2d14c4b458e0eea759729606f4f8f
MD5 d3992668992d4b6ab66c8d49fd14d982
BLAKE2b-256 cde084207f87d7c1b8851a0793f2f94e55d90f56b005a17e00daae38501f657c

See more details on using hashes here.

File details

Details for the file bcpractice-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: bcpractice-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 25.9 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ec041cfa97c0af3ad10f666d073fbabb6a4203cb0e23095b77a68a110354f26c
MD5 31b12c9c546d732cebd602c2bb920754
BLAKE2b-256 ea9d7f7e1f71f5988b72159ca8a925ad28a7c058142bc38374b8f5dba03599b1

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