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...

Algorithmic Thinking with Python part 3 – Divide and Conquer Strategy

Divide and Conquer is a very powerful technique for solving computational problems. In the last article in this series, we looked at decrease and conquer, which is included by some authors under...

Flappy Bird with HTML5

I can think of no better way to learn the skills needed for modern web development than writing games using HTML5. Also Flappy Bird is fun. So for your enjoyment and edification,...

HTML5 Breakout Game

Here is fun HTML5 version of the classic retro computer game Breakout. Use the paddle to direct the ball to hit all the yellow bricks, using either the left/right arrow keys or...

Algorithmic Thinking with Python part 1 – Brute Force Algorithms

Many computational problems can be solved by trying all possible candidate solutions until the correct solution to the problem is found. This approach is often called Exhaustive Search or Brute Force Search....

Musical Bubble Sort in Python

I am a firm believer in offering a wide variety of perspectives on the topics I teach in Computer Science. I also like to make connections between Computer Science and other subjects....

Metacognition with Python – Directional Idea Maps

Computer programmers in general spend a fair bit of time engaged in algorithmic thinking. The idea of metacognition is basically “thinking about thinking”, with an implied agenda of improving our thinking. It...

The Stack Data Structure in Python

The stack is a wonderfully simple data structure which despite its simplicity makes many powerful algorithms possible. Some of the uses for a stack data structure in software development are: The Depth-First...

Python Databases – SQLite Tutorial Part 1

Working with databases is a fundamental skill in software development. In this article we will look at how to work with databases in Python using SQLite. SQLite is a library that provides...