Using the OpenAI API for a math tutoring app

For anyone who hasn't been paying attention recently, OpenAI's latest LLMs have an impressive ability to explain solutions to questions, including programming and math problems. I wanted to explore using their API to create an application meant specifically for math training.

There are two basic objectives here: first, I wanted an interface that can be used to create questions with mathematical syntax and that can be repeated with different variable values; second, I wanted students to be able to get an AI-generated explanation after attempting each problem. The idea is that teachers or tutors can create a set of questions for their students, which students can attempt and get feedback on, without teachers having to create detailed solutions for each problem.

Read more
tags: programming

Numerical integration from scratch in C++

A few days ago I wrote some code, meant to be run on an Arduino, for approximating integrals. This required me to delve deep into nearly-forgotten knowledge about numerical methods; I figured that while I still had this fresh on my mind I'd take the time to share a basic tutorial here.

Read more
tags: math, programming

Linear programming from scratch in C++

A linear programming problem is a type of problem commonly encountered in applied math. Roughly put, the goal is to maximize a linear function subject to linear constraints. If you aren't familiar with this, it might be worth reading more about it on Wikipedia. Or not -- I don't know how you want to spend your time; maybe you should take a walk around your neighborhood instead.

Read more
tags: math, programming

Making a multiplayer game with SvelteKit & Firebase

A few months back, I created a CLI clone of the Boggle word game. This was originally just a toy project I wrote on a weekend to try out some Rust crates for CLIs, but I wanted to return to this idea and see if I could make a browser-based version where multiple players could compete to find words.

I chose to use SvelteKit for this, since I've found Svelte to be a very friendly web framework. I hadn't previously made any non-static web apps with Svelte, so I also figured this would be good chance to try out some of SvelteKit's server-side features. I originally intended to build the project with SvelteKit's Node adapter and host it on an AWS server along with my own database, though after a great deal of fiddling I realized I could accomplish the same objective with much less hassle using Firebase's realtime database. I also ended up hosting the app on Vercel, instead of GitHub Pages like I have in the past, in order to make use of some of SvelteKit's SSR features (which are helpful for dynamic page routing).

Read more
tags: programming
goodness, truth, and summer rainstorms