Yusuf Pisan

Adventures in AI

I got my PhD in 1998 from Northwestern University. My PhD was in AI, specifically in qualitative reasoning, diagrammatic reasoning and problem solving. My PhD was in what would be considered in GOFAI (Good Old Fashioned AI). It relied on hand built models and ontologies. It used a truth-maintenance system and with hand-built pattern-matching rules to maintain its knowledge base. The system I built could solve 150 problems from a university level thermodynamics textbook. It was a big achievement for its time.

Today’s AI is much different. Lots of statistical models, lots of data, automated systems that take millions of dollars to train and have billions of parameters.

LLMs are going to change the world as we know it. AI systems can already implement software projects that used to take teams weeks to complete. They can already hold conversations, provide advice, assist in brainstorming and make suggestions.

I started playing with these new systems (Claude, Gemini, ChatGPT, Microsoft CoPilot, GitHub CoPilot, etc) in March 2026. Below are some of the projects I have built in reverse chronological order.

PasteMD

A Markdown publishing tool with passwordless authentication. Users sign in via magic link (email), write or paste Markdown, and publish it as a rendered page with a short shareable URL. Posts are stored in Netlify Blobs (no external database required). Authors can manage and delete their own posts from a personal dashboard; admins get a separate panel to view and delete any post across all users. Admins are notified by email whenever a new post is published. Built as a pure static frontend with Netlify serverless functions handling auth (JWT-based), post CRUD, and email delivery.

See README for more details on the code or use it at https://paste-md.netlify.app/

(Last update April 2026)

Grade Histogram Plotter

A lightweight Flask web app for visualizing grade distributions. Paste scores one per line (or upload a file), optionally customize the grade-bucket cutoffs, and get an instant histogram with summary statistics — mean, median, standard deviation, min, max, and per-bucket counts and percentages. Non-numeric entries are tallied in a separate NaN bucket. Includes CSRF protection and rate limiting. Deployed on both Render and PythonAnywhere.

See README for more details on the code or use it at https://grade-histogram-plotter.onrender.com/ or https://pisan.pythonanywhere.com/

(Last update April 2026)

UpvoteMe

A private, unlisted comment-and-voting app. Anyone can create a topic and instantly get two short URLs — one to share with participants, one private admin URL for moderation. Participants post comments (with optional file attachments, up to 5 files × 2 MB each) and upvote or downvote others. No public topic listing exists by design; topics are only reachable via shared URLs. Admins can lock or delete topics. Voting can be restricted to authenticated users (Google OAuth or magic link), in which case the admin can see who voted on each comment. Topics auto-delete after 30 days of inactivity.

See README for more details on the code or use it at https://upvoteme.netlify.app/

(Last update April 2026)

RankMe

A head-to-head voting app that ranks anything using the ELO rating system. Anyone can create a topic (movies, foods, photos, etc.), add items with optional images, and vote by repeatedly choosing between two randomly matched items. Rankings update in real time after each vote using a variable K-factor ELO algorithm (K=40 for new items, tapering to K=10 for established ones). Sessions are tracked via cookies to prevent repeat matchups in the same browser session. An admin panel at a secret URL allows deletion of topics and items.

See README for more details on the code or use it at https://rankme-1ttb.onrender.com/

(Last update April 2026)

The AI Grading Paradox

A classroom exercise for CSS 382 Introduction to Artificial Intelligence on how professors should grade homework in an era where AI can complete almost any assignment with near-perfect results. Groups of 5–6 students stress-tested four grading models (VIVA oral defense, GitHub audit, AI-hybrid rubric, and mastery/pass-fail), then designed their own “Ideal Grading Policy.” The assignment and a synthesis report of student submissions (created with Gemini) can be found here.

(Completed in April 2026)

Ranked Voting

A full-stack ranked-choice voting web app. Admins create contests with multiple candidates, set a number of winners, control voter access via allowed email lists, and optionally randomize option order per voter. Voters submit drag-and-drop ballots. Results are computed using step-by-step Instant Runoff Voting (IRV), showing each elimination round until winner(s) are determined. Built with React + Vite, Tailwind CSS, Supabase (PostgreSQL + Auth), and Netlify serverless functions.

See README for more details on the code or use it at https://ranked-voting.netlify.app/login

(Last update April 2026)

40 Greatest Innovations – Ordering Game

A web-based card-ordering game where players arrange the 40 greatest innovations of all time in chronological order. Players drag or click cards across a deck, board, and “later” holding area, then press Check Answers to receive a final score (no hints during play). Supports drag-and-drop and touch.

See README for more details on the code or use it at https://order-cards.netlify.app/

(Last update April 2026)

ClaudeBot

Allows users to ask Claude questions, get Claude to review code, suggest patches via Discord. Users need to use their own Anthropic API key (so I do not have to pay for my students’ explorations!)

See README for more details. You can install it on your own Discord server using this link

(Last update April 2026)

MeetMe — Joint Meeting Finder

Allows gathering information from multiple people on their availability, so you can find a common meeting time. You can also set it up to let users “book” you based on your availability. Combination of https://www.when2meet.com/ https://calendly.com/ and https://doodle.com/

See README for more details on the code or use it at https://meetme.pisan.me/

(Last update April 2026)

Canvas Accessibility Fixer

Improves the accessibility score for Canvas pages automatically. Needs a canvas token to access Canvas pages.

See README for more details on the code or use it at https://canvas-accessibility.onrender.com/

(Last update April 2026)

TPS - Thermodynamics Problem Solver

Based on my PhD thesis, starting to recreate the project from scratch.

See README for more details on the code or use it at https://tps-thesis-recreation.onrender.com/

To be completed at a later date!

(Last update April 2026)

Grade Statistics

An internal project to generate graphs based on grades for each professor, for each course as well as historical data.

See README for more details on the code. Only used locally, so no web deployment.

(Last update April 2026)

Bullet Impact Simulator

A toy project on whether sensors could be used to determine where a bullet has hit on the target.

See README for more details on the code or use it at https://targetbullet.netlify.app/

(Last update April 2026)

Cloud Games Portal

Started with a simple version of Tic-Tac-Toe and ended up adding backgammon and chess as well. Nothing fancy, but was good for learning.

See README for more details on the code or use it at https://tic-tac-toe-app-857412880660.us-west1.run.app/

(Last update April 2026)

Choose Your Own Adventure

Starter code for student projects. Students extended this project to create Choose Your Own Adventure authoring tools as well as Choose Your Own Adventure reading platforms.

See README for more details on the code.

(Last update April 2026)

StockReptile - A Chess Playing Web App and Learning Tool

StockFish is the best chess engine out there. StockReptile is my inferior version but much more suited as a learning tool

See README for more details on the code or use it at https://stockreptile.netlify.app/

(Last update April 2026)

Teaching Evaluation Graph Generator

This tool automates the extraction of teaching evaluation metrics from historical course evaluation PDFs and visualizes them over time using line graphs.

See README for more details on the code or see my teaching evaluation dashboard at https://pisanorg.github.io/yusuf/graphs/

(Last update April 2026)

UW Course & Professor Finder

A web app from UW time schedule data so users can quickly answer:

The app supports all three UW campuses — Bothell, Tacoma, and Seattle — with a drill-down UI: select campus → select department → filter by course, professor, quarter, year.

See README for more details on the code or use it at https://uwcourses.netlify.app/

(Last update April 2026)

The Algorithmic Professor? AI Ethics in the Classroom

A classroom exercise on what students think of the professors’ use of AI in their teaching from generating slides to grading assignments with AI.

The assignment description and the summary report can be found here.

(Completed in April 2026)

CS Prof vs Gemini Prompts

Previously I had used Gemini to create slides. This time it claimed it cannot create slides. This is a summary of my “discussion” with Gemini trying to understand why it is refusing and trying to figure out a better prompt to get it to do what it had done before. You can read my “discussion” here

(Completed in March 2026)

History of AI slides by Gemini Pro

I asked (guided?) Gemini Pro to create a set of slides on the History of Artificial Intelligence that I plan to use in my CSS 382 Introduction to Artificial Intelligence course in Spring at University of Washington Bothell.

I provided History of Artificial Intelligence page from Wikipedia as a source. The slides produced by Gemini are here. I think it did a good job.

(Completed in March 2026)


Yusuf Pisan Computing & Software Systems (CSS) University of Washington Bothell