Computer Science Pedagogy

This post is a work in progress where I will collect pedagogical tips about teaching Computer Science distilled from my 15+ years’ teaching experience. They are phrased as advice to teachers, but...

Python Simple Dice Game

Here’s a simple program in Python that demonstrates some important fundamental concepts in computer programming. The program simulates two players taking it in turns to roll a 6-sided dice, and keeps track...

User Login with Python and SQLite

In this lesson you will learn how to create a basic login script with Python and SQLite. SQLite is ideal for small-scale data-driven Python applications. It is a lightweight, self-contained, serverless database...

Python Trace Tables

The ability to trace the values of variables during program execution is a great aid in ensuring your code is doing what it is supposed to do and in avoiding logic errors...

Visualizing Bubble Sort with p5.js

Click on the canvas to refresh the animation I wanted to make a visualization for an algorithmic problem involving backtracking when I noticed the solution was remarkably similar to Bubble Sort. As...