This document describes an interactive textbook and software library called Resonance for teaching mechanical vibrations using computational thinking and experimentation. The course uses Jupyter notebooks to mix prose, math, code and visualizations. Students use the open source Resonance Python library and JupyterHub environment to simulate and analyze vibrational systems. Initial experiences were positive, though introducing programming was challenging. The goal is for students to solve vibrations problems by running simulations without deep theoretical knowledge.