Blog
I rarely write blog posts, but when I do, I like to post them here. Why? Because I can add whatever interactive components I want. I don't have a specific topic, so you'll find a variety of posts here of things that come to my mind (all CS related, of course).
You can also filter the posts by tag:
- The prompt coding mental modelJanuary 09, 2025
Some students treat coding like prompting an AI, expecting the computer to "figure it out." This highlights the need for tools that reinforce control flow and state understanding.
- Tail Recursion in Python: Implementing a Tail Recursion Elimination DecoratorJanuary 08, 2025
In this post I discuss tail recursion elimination in Python.
- Teaching greedy algorithms with interactive componentsJanuary 07, 2025
Greedy algorithms can be tricky to grasp without hands-on experience. To help my students develop intuition for these strategies, I’ve created interactive components for classic problems like Activity Selection and Huffman Coding. This post explores how these tools enhance learning and my plans for future improvements.
- A Visual Tracer for Teaching ProgrammingJuly 24, 2024 December 15, 2024
An idea for an IDE specifically designed for novice programmers, with a focus on visualizing the flow of execution in a program.
- Visualizing Sorting Algorithms: Teaching with Interactive VideosJune 12, 2024
I created interactive visualizations to help students see sorting algorithms in action. Using React, Remotion, and Astro, I animated steps from CLRS pseudo-code, allowing students to experiment and analyze behavior.
- Teaching CS as an Interface Design ProblemMarch 01, 2024
Teaching CS1 is not just about explaining concepts. It's about correcting students' mental models of how the computer works. We can think of teaching CS as an interface design problem.
- Gaze Interaction on Rainy DaysSeptember 09, 2023
Exploring gaze interaction in mixed reality, this post discusses using gaze depth for 3D interactions and proposes the idea of using virtual raindrops as a cue for selecting interactive layers in a user interface.
- Python 3.8's Walrus Operator is (almost) perfect for Jupyter NotebooksFebruary 29, 2020
Assignment expressions, AKA the walrus operator, is (arguably) one of the coolest new features of Python 3.8. In this post I show how it can be used to make Jupyter Notebooks more readable and concise.
- A queue with two stacksJuly 29, 2016 January 25, 2025
Google interview question: implement a queue using two stacks.
- Means, Medians and ImagesJuly 08, 2016 September 06, 2024
Means and medians are some of the first concepts we learn in any intro to statistics course. It turns out that it's pretty useful for image processing. Find out how in this post.