Software Engineering and CS Pedagogy

Teaching Inheritance

Inheritance in object-oriented programming is a difficult subject to teach. Existing Computer Science curriculum, while effective at introducing the syntax of inheritance, does not show students how the technique is used in real-world software projects. This post tries to explain why inheritance is so tricky to teach well, and dives into Ada’s fresh approach to the subject.

Lessons from One Week Teaching React

Cohort 9 was the first time that we taught React at Ada. While we all agreed the rollout was successful, we still learned a lot from the process! This post attempts to document some of that wisdom.

Debugging CSS Performance with Chrome’s Profiling Tools

This is the story of how I found and fixed a performance problem in a React webapp. I’ve debugged many slow programs but never in the context of the web, so this was a great opportunity to experiment with the tools and grow my skill set. My problem turned out to be particularly tricky to analyze, but with the help of Chrome’s performance tools, some manual profiling and a careful scientific approach I was able to find a solution.


Ada’s complete curriculum, as well as all of our projects, are available for free on GitHub. These are collaborative, living documents that have been built over many years by many talented hands, and it would be ridiculous to take all the credit. However, I’ve put an enormous amount of time and energy into this project, and I would be remiss if I didn’t include it here.

Here are three pieces of curriculum I’ve written for Ada that I’m particularly proud of: