David and Goliath — The Physics of the Sling
Projectile Motion & Biomechanics

David and Goliath — The Physics of the Sling

A shepherd boy, a giant, and the science hidden inside a spinning stone.

Projectile Motion & Biomechanics12-Month Curriculum 10h

The Story

The Valley of Elah

Three thousand years ago, in a dusty valley between two hills, two armies faced each other. The Israelites stood on one hill, the Philistines on the other, and between them lay a valley that neither side dared cross. They had been staring at each other for forty days.

The reason was a man named Goliath.

Goliath was enormous — nearly three metres tall. He wore a bronze helmet, a coat of scale armour weighing sixty kilograms, and carried a spear with an iron tip the size of a weaving beam. Every morning, he walked into the valley and shouted: "Send your best warrior to fight me."

No one volunteered.

The Shepherd Boy

Then David arrived. He was not a soldier — he was a shepherd boy from Bethlehem, bringing bread and cheese to his older brothers. He was young, lean, and had never worn armour. But he had spent years protecting his father's sheep from wolves and lions, and he carried a sling.

Not a slingshot with rubber bands. David's sling was an ancient weapon: a leather pouch attached to two cords, each about a metre long. You place a stone in the pouch, swing it in wide circles above your head, and release one cord at exactly the right moment.

King Saul tried to give David his armour. David put it on, took a few steps, and took it off. "I cannot wear this." Instead, he picked up five smooth stones from a stream and walked toward Goliath with nothing but his sling.

The Physics of the Moment

Goliath laughed. A boy with a sling? He lumbered forward, weighed down by sixty kilograms of armour, moving slowly because heavy things are hard to accelerate.

David ran toward him — light, fast. He loaded a stone and began spinning it. Around and around the stone went, accelerating with every revolution. David's arm provided centripetal force — pulling inward while the stone's natural tendency was to fly outward in a straight line.

The stone wanted to escape. David held it in a circular path, building speed with every loop, storing energy like winding a spring tighter.

Then he released one cord.

The stone flew. Released from its circular prison, it shot forward in a straight line — not level, but in a gentle upward arc that curved back down under gravity. A parabolic trajectory. David had spent years calibrating this arc against wolves and lions. The stone was not a guess — it was a calculation, refined by ten thousand practice throws.

It struck Goliath in the forehead — the one spot not covered by his helmet. A small stone, perhaps 50 grams, but travelling at roughly 35 metres per second. Its kinetic energy depended on the square of its speed. Double the speed, four times the energy. David's stone was small but blindingly fast, and speed matters more than weight.

All that energy delivered to a single point. The stone's contact area was tiny — perhaps two square centimetres — which meant the pressure was enormous. The same force spread over a dinner plate would be harmless. Concentrated on a pebble-sized point, it was devastating.

Goliath fell face-first into the dust.

What David Really Knew

David didn't know the equations. He didn't know the words centripetal or kinetic or parabolic. But he knew, in the way that anyone who practises for years comes to know, that spinning makes things fast, that release angle determines where the stone lands, that a small fast stone hits harder than a large slow one, and that a point impact does more damage than a flat one.

He knew the physics. He just knew it in his hands.

The end.

Try It Yourself

Choose your level. Everyone starts with the story — the code gets deeper as you go.

Story Progress

0%

Ready to Start Coding?

Here is a taste of what Level 1 looks like for this lesson:

Level 1: Explorer — Python
import numpy as np
import matplotlib.pyplot as plt

v = 35            # launch speed (m/s)
g = 9.8           # gravity
angles = np.arange(10, 85, 5)
ranges = v**2 * np.sin(np.radians(2 * angles)) / g

plt.bar(angles, ranges, color='sandybrown', edgecolor='saddlebrown')
plt.xlabel("Launch angle (°)")
plt.ylabel("Range (m)")
plt.title("David's Sling: Range vs Launch Angle")
plt.axvline(x=45, color='red', linestyle='--', label='45° = max')
plt.legend()
plt.show()  # Which angle wins?

This is just the first of 6 coding exercises in Level 1. By Level 4, you will build: Build a Projectile Range Calculator.

By Level 4, enrolled students build: Build a Projectile Range Calculator

Free

Level 0: Listener

Stories, science concepts, diagrams, quizzes. No coding.

You are here

Enrolled

Levels 1-4

Python, NumPy, Matplotlib, real projects, mentorship.

Sign Up Free

Stay Updated

Join Waitlist

Get notified when enrollment opens for your area.

Notify Me

Level 0 is always free. Coding levels (1-4) are part of our 12-Month Curriculum.