In the bouncing ball program, inspect the code, where you'll find
ball.pos = ball.pos + (ball.p/ball.mass)*dt
So there's no mystery about what integration algorithm is being used: here it's the simplest first-order integration.
In the orbit program you'll find this:
dist = dwarf.pos - giant.pos
force = G * giant.mass * dwarf.mass * dist / mag(dist)**3
giant.p = giant.p + force*dt
dwarf.p = dwarf.p - force*dt
for star in [giant, dwarf]:
star.pos = star.pos + star.p/star.mass * dt
This is first-order Euler-Cromer, which Aaron mentioned, in which you calculate the forces in terms of the initial positions, then update the momenta, then update the positions using the updated momentum. This particular sequence of operations can be shown to give better results among first-order integration algorithms than other sequences. (Note that the statements are vector statements.)