Improving the Scientific Calculator Experience

The largest and most developer-friendly collection of continuously growing, open-source, and tested and verified Python applications for your TI-84.

Learn Faster

A better workflow

Leverage Python scripts in your calculator to solve problems, double check work, and learn faster.

Tested
Unit Test coverage with open source visibility
Lean
Small downloaded file sizes with no dependencies
Comprehensive
The largest archive of Python scripts for the TI-84 Plus CE
# Babylonian Method
def sqrt(n, tolerance=1e-10):
    if n < 0:
        raise ValueError("Cannot compute the square root of a negative number")
    if n == 0:
        return 0
    x = n / 2
    while True:
        next_x = 0.5 * (x + n / x)
        if abs(x - next_x) < tolerance:
            return next_x
        x = next_x
# Nilakantha Series
def pi(iterations=100000):
    res = 3.0
    sign = 1
    for i in range(2, 2 + 2 * iterations, 2):
        res += sign * 4 / (i * (i + 1) * (i + 2))
        sign *= -1
    return res

Featured Applications

A featured set of applications for the TI-84 Plus CE calculator.

Limit

This script calculates the limit of a given function as it a ...

Derivative

Compute the derivative of a given function at a specific poi ...

Definite Integral

Calculate the definite integral of a function over a specifi ...

Showing 1 to 3 of 3 results

Help grow the library.
Share your insights.

Donate today or access the Github repository to contribute to the library.

fn main() {
    dotenv().ok();
    let args = gather_args();
    let mut files = Vec::new();
    for script_name in args[2].split(',').map(|s| s.trim()) {
         let paths = describe_paths(&args[1], &script_name.to_string());
         let bundled_output_lines = build_bundle(&paths);
         files.push(FileObject {
             script_name: script_name.to_string(),
             contents: bundled_output_lines,
         })
    }
24+
Highlight
3+
Fields of Mathematics
100+
of Users

Frequently Asked Questions

Using Python applications with your TI-84 Plus CE is straightforward. First, ensure your calculator is updated with the latest operating system that supports Python. Then, download the Python scripts from our website, transfer them to your calculator using TI Connect CE software, and follow the instructions provided with each script.
Yes, there is a size limit imposed by the calculator's memory. However, our Python applications are optimized to be compact while delivering powerful functionality. Each script's size is indicated on our website for transparency.
Due to the calculator's limited environment, Python applications for the TI-84 Plus typically do not support external dependencies like traditional Python packages. However, our scripts are self-contained and designed to operate independently on the calculator.
You can upload multiple Python applications to your calculator as long as they fit within the available memory. We recommend managing your applications based on your calculator's storage capacity to ensure optimal performance.
Generally, the use of calculator applications in class depends on your school's policies. Our Python scripts are educational tools designed to aid in learning pre-calculus, trigonometry, and calculus. Check with your teacher or school administration for specific guidelines on calculator use during class.
Ensuring accuracy is paramount to us. Our Python applications undergo rigorous testing and verification by experienced mathematics educators and software developers. We also encourage user feedback to continuously improve and refine our scripts.

Rust Python Application Compiler

Compiler (using the term very loosely) improves developer experience of Python applications by enabling shared helpers and functions in a classical project directory structure.

  • https://tipython.com/applications/pre_calculus/quadratic_equation
    Step 1: Download


  • const executableProcess = path.resolve(
      __dirname,
      process.env.COMPILER_EXECUTABLE_PATH!,
    );
    const env = { ...process.env };
    const executedProcess = new Promise((resolve, reject) => {
      execFile(
        executableProcess,
        [body.groupName, body.scriptNames],
        { env },
        (error: any, stdout: string, stderr: string): void => {
          ...
          ...
          resolve({
            zipContent: stdout.trim(),
          });
        },
      );
    });
    Step 2: Launch Rust Process
  • curl https://https://raw.git...in/[group]/[application]/download.py
    Fetching Download Blob...
    200!
    from common.helpers import get_float_input
    from pre_calculus.quadratic_equation.script import quadratic_equation
    print(
        quadratic_equation(
            get_float_input("Enter coefficient a: "),
            get_float_input("Enter coefficient b: "),
            get_float_input("Enter coefficient c: ")
        )
    )
    Step 3: HTTP Request Application


  • [common]/helpers.py
    def get_float_input(prompt):
      while True:
        try:
          return float(input(prompt))
        except ValueError:
          print("Invalid input. Please enter a number.")
    from common.helpers import get_float_input
    import [common]/helpers.py
    NO_REAL_SOLUTIONS = "No real solutions"
    # Babylonian Method
    def sqrt(n, tolerance=1e-10):
      if n < 0:
        raise ValueError("Cannot compute the square root of a negative number")
      if n == 0:
        return 0
      x = n / 2
      while True:
        next_x = 0.5 * (x + n / x)
        if abs(x - next_x) < tolerance:
          return next_x
        x = next_x
    [group]/[name]/script.py
    from common.helpers import NO_REAL_SOLUTIONS, sqrt
    def quadratic_equation(a, b, c):
      discriminant = b ** 2 - 4 * a * c
      if discriminant > 0:
        root1 = (-b + sqrt(discriminant)) / (2 * a)
        root2 = (-b - sqrt(discriminant)) / (2 * a)
        return root1, root2
      elif discriminant == 0:
        root = -b / (2 * a)
        return root
      else:
        return NO_REAL_SOLUTIONS
    from pre_calculus.quadratic_equation.script import quadratic_equation
    print(
      quadratic_equation(
        get_float_input("Enter coefficient a: "),
        get_float_input("Enter coefficient b: "),
        get_float_input("Enter coefficient c: ")
      )
    )
    Step 4: Create Application Bundle
  • def get_float_input(prompt):
      while True:
        try:
          return float(input(prompt))
        except ValueError:
          print("Invalid input. Please enter a number.")
    NO_REAL_SOLUTIONS = "No real solutions"
    # Babylonian Method
    def sqrt(n, tolerance=1e-10):
      if n < 0:
        raise ValueError("Cannot compute the square root of a negative number")
      if n == 0:
        return 0
      x = n / 2
      while True:
        next_x = 0.5 * (x + n / x)
        if abs(x - next_x) < tolerance:
          return next_x
        x = next_x
    def quadratic_equation(a, b, c):
      discriminant = b ** 2 - 4 * a * c
      if discriminant > 0:
        root1 = (-b + sqrt(discriminant)) / (2 * a)
        root2 = (-b - sqrt(discriminant)) / (2 * a)
        return root1, root2
      elif discriminant == 0:
        root = -b / (2 * a)
        return root
      else:
        return NO_REAL_SOLUTIONS
    print(
      quadratic_equation(
        get_float_input("Enter coefficient a: "),
        get_float_input("Enter coefficient b: "),
        get_float_input("Enter coefficient c: ")
      )
    )
    Step 5: Provide Application Bundle

Get Connected

Have questions or suggestions? Enter your email and be updated with information about releases and projects!

Open Source
Contribute to the open source repository.
Feature Requests
Offer requests for applications or features.